我正在学习传统的关系型数据库(使用PostgreSQL),在研究中,我发现了一些新类型的数据库。其中有CouchDB, Drizzle和Scalaris等,下一个处理数据库技术会是什么呢?
我正在学习传统的关系型数据库(使用PostgreSQL),在研究中,我发现了一些新类型的数据库。其中有CouchDB, Drizzle和Scalaris等,下一个处理数据库技术会是什么呢?
我认为应该说下一代数据库,而不是下一代SQL。
SQL是用于查询和操作关系型数据库的一种语言。 SQL由国际标准规定。 虽然标准在修订,但它似乎总是在关系数据库范例内工作。
以下是一些备受关注的新数据存储技术(约为2008年我撰写此答案时):
还可以参考Richard Jones的这篇文章:“反关系型数据库:分布式键-值存储列表”,他详细描述了其中一些技术。
关系型数据库肯定有其弱点。自引入以来,人们一直在争论它们不能处理所有数据建模需求。
每年都有研究人员提出新的管理数据的方法,以满足特殊要求:要么是处理关系模型无法适应的数据关系,要么是需要对分布式服务器集合进行数据处理以满足高规模数据量或速度的要求,而不是在中央数据库服务器上进行。
尽管这些先进技术可以解决它们设计的专业问题,但关系型数据库仍然是大多数业务需求的一个好的通用解决方案。 SQL不会消失。
我在php|Architect杂志上写了一篇有关非关系型数据库创新以及关系型与非关系型数据库数据建模的文章。http://www.phparch.com/magazine/2010-2/september/
我是Neo4j项目的一部分,它是用Java编写的,但也有Python、Ruby和Scala的绑定。有些人使用它与Clojure或Groovy / Grails一起使用。还有一个GUI工具正在发展中。
可能不是回答这个问题的最佳地方,但我想分享一下由Steve Yen创建的noSQL世界分类法(请在http://de.slideshare.net/northscale/nosqloakland-200911021找到它)。
键值缓存
键值存储
最终一致的键值存储
有序键值存储
数据结构服务器
元组存储
对象数据库
文档存储
宽列存储
想要了解下一代数据库领域的学术研究情况,请查看此网站:http://www.thethirdmanifesto.com/
关于SQL语言作为关系模型的适当实现,我引用维基百科的话说:“SQL最初被推广为关系数据库的标准语言,但在几个方面偏离了关系模型,目前的ISO SQL标准没有提到关系模型或使用关系术语或概念,但是如果不使用某些SQL特性,则可以使用SQL创建符合关系模型的数据库。”
http://en.wikipedia.org/wiki/Relational_model (于2010年3月28日引用于“SQL和关系模型”章节)
不是要挑剔,但我想指出至少CouchDB不是基于SQL的。而且我希望下一代SQL能够使SQL变得更加美观和直观。
有些专门用于XML的数据库,比如MarkLogic和Berkeley XMLDB。它们可以对XML文档进行索引,并使用XQuery查询。我期待着JSON数据库,也许它们已经存在了。查了一些谷歌,但没找到。
SQL自20世纪70年代初就存在了,所以我认为它不会很快消失。
也许“新的(相对较新)SQL”将会是OQL(参见http://en.wikipedia.org/wiki/ODBMS)。
我也听说过Jim Starkey的NimbusDB。
Jim Starkey是“创造”Interbase的人
他曾经在Vulcan(一个Firebird分支)上工作
并且曾经参与MySQL的Falcon项目。