我正在学习传统的关系数据库(使用PostgreSQL)并进行一些研究我遇到了一些新类型的数据库。 CouchDB,Drizzle和Scalaris仅举几例,下一个要处理的数据库技术是什么?
答案 0 :(得分:103)
我会说下一代数据库,而不是下一代SQL。
SQL是一种用于查询和操作关系数据库的语言。 SQL由国际标准决定。虽然标准已经修订,但它似乎总是在关系数据库范例内工作。
以下是一些目前受到关注的新数据存储技术:
另见Richard Jones的这篇好文章:“Anti-RDBMS: A list of distributed key-value stores。”他详细介绍了其中一些技术。
关系数据库有缺点,可以肯定。人们一直在争论自从它首次推出之日起它们就没有处理所有数据建模要求。
年复一年,研究人员提出了管理数据以满足特殊要求的新方法:处理不适合关系模型的数据关系的要求,或者需要数据的大规模数量或速度的要求处理是在分布式服务器集合上完成的,而不是中央数据库服务器。
即使这些先进技术能够很好地解决它们所针对的专业问题,但关系数据库仍然是满足大多数业务需求的通用解决方案。 SQL不会消失。
我在php | Architect杂志上写过一篇关于非关系数据库创新和关系数据库与非关系数据库数据建模的文章。 http://www.phparch.com/magazine/2010-2/september/
答案 1 :(得分:25)
到目前为止,我在答案中缺少图形数据库。对象的图形或网络在编程中很常见,并且在数据库中也很有用。它可以有效地处理半结构化和互连的信息。图形数据库引起很多兴趣的领域包括语义网和生物信息学。提到了RDF,它实际上是一种代表图形的语言。这里有一些指向图数据库区域内发生的事情:
我是Neo4j项目的一部分,该项目是用Java编写的,但也绑定了Python,Ruby和Scala。有些人将它与Clojure或Groovy / Grails一起使用。还有一个GUI tool不断发展。
答案 2 :(得分:10)
可能不是最好的回答这个问题,但我想分享一下由Steve Yen创建的noSQL世界的分类(请在http://de.slideshare.net/northscale/nosqloakland-200911021找到它)
<强>键 - 值缓存强>
<强>键 - 值存储强>
最终一致的键值存储
<强>有序键值店内强>
数据结构服务器
<强>元组存储强>
对象数据库
文档商店
宽柱状商店
答案 3 :(得分:2)
要了解下一代数据库领域正在进行的学术研究,请查看以下内容:http://www.thethirdmanifesto.com/
关于SQL语言作为关系模型的正确实现,我引用维基百科,“SQL,最初作为关系数据库的标准语言推出,偏离了几个地方的关系模型。当前的ISO SQL标准没有提到关系模型或使用关系术语或概念。但是,如果不使用某些SQL特性,则可以使用SQL创建符合关系模型的数据库。“
http://en.wikipedia.org/wiki/Relational_model(参见2010年3月28日的“SQL和关系模型”一节
答案 4 :(得分:1)
不要迂腐,但我想指出,至少CouchDB不是基于SQL的。而且我希望下一代SQL可以使SQL少得多......非常简单和非直观。
答案 5 :(得分:1)
有一些特殊的XML数据库,如MarkLogic和Berkeley XMLDB。他们可以索引xml-docs,并且可以使用XQuery查询它们。我期待JSON数据库,也许它们已经存在。做了一些谷歌搜索,但找不到一个。
答案 6 :(得分:0)
自20世纪70年代初以来,SQL一直存在,所以我认为它不会很快消失。
也许'new(-ish)sql'将是oql(参见http://en.wikipedia.org/wiki/ODBMS)
答案 7 :(得分:0)
我也听说过Jim Starkey的NimbusDB
Jim Starkey是“创建”Interbase的人
谁在Vulcan(Firebird fork)上工作
谁是Falcon for MySQL的开始