下一代数据库

时间:2008-11-12 02:02:43

标签: sql database nosql non-relational-database

我正在学习传统的关系数据库(使用PostgreSQL)并进行一些研究我遇到了一些新类型的数据库。 CouchDBDrizzleScalaris仅举几例,下一个要处理的数据库技术是什么?

8 个答案:

答案 0 :(得分:103)

我会说下一代数据库,而不是下一代SQL。

SQL是一种用于查询和操作关系数据库的语言。 SQL由国际标准决定。虽然标准已经修订,但它似乎总是在关系数据库范例内工作。

以下是一些目前受到关注的新数据存储技术:

  • CouchDB是一个非关系型数据库。他们称之为面向文档的数据库。
  • Amazon SimpleDB也是通过Web服务以分布式方式访问的非关系数据库。亚马逊还有一个名为 Dynamo 的分布式键值存储,它为一些S3服务提供支持。
  • DynomiteKai是受Amazon Dynamo启发的开源解决方案。
  • BigTable是Google使用的专有数据存储解决方案,使用其Google文件系统技术实施。 Google的MapReduce框架使用BigTable。
  • Hadoop是一款受Google MapReduce启发的开源技术,可满足类似需求,可分发大型数据存储的工作。
  • Scalaris是分布式事务键/值存储。也不是关系,也不使用SQL。这是德国柏林Zuse研究所的一项研究项目。
  • RDF是存储语义数据的标准,其中数据和元数据是可互换的。它有自己的查询语言SPARQL,它在表面上类似于SQL,但实际上完全不同。
  • Vertica是一个高度可扩展的面向列的分析数据库,专为分布式(网格)架构而设计。它声称是关系和SQL兼容的。它可以通过亚马逊的Elastic Compute Cloud使用。
  • Greenplum是一个高级数据仓库DBMS,它实现了MapReduce和SQL。
  • XML根本不是DBMS,它是一种交换格式。但是有些DBMS产品使用XML格式的数据。
  • ODBMS或对象数据库用于管理复杂数据。在主流中似乎没有任何主流的ODBMS产品,可能是因为缺乏标准化。标准SQL逐渐获得一些OO功能(例如可扩展的数据类型和表)。
  • Drizzle是一个关系数据库,从MySQL中提取了大量代码。它包括旨在管理可扩展“云计算”系统架构中的数据的各种架构更改。据推测,它将继续使用标准SQL和一些MySQL增强功能。
  • Cassandra是一个高度可扩展,最终一致,分布式,结构化的键值存储,由Amazon Dynamo的作者之一在Facebook开发,并为Apache项目做出了贡献。
  • Project Voldemort是一个非关系型分布式键值存储系统。它在LinkedIn.com上使用
  • Berkeley DB也值得一提。它不是“下一代”,因为它可以追溯到1990年代早期。它是一种流行的键值存储,易于嵌入各种应用程序中。该技术目前归Oracle公司所有。

另见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找到它)

  1. <强>键 - 值缓存

    • 分布式缓存
    • repcached
    • 相干
    • 在音响nispan
    • eXtremescale
    • 的jbosscache
    • 速度
    • terracoqa
  2. <强>键 - 值存储

    • 密钥空间
    • FL是
    • 无架构
    • RAMCloud
  3. 最终一致的键值存储

    • 发电机
    • 伏地
    • Dynomite
    • 子记录
    • MongoDB的
    • Dovetaildb
  4. <强>有序键值店内

    • tokyotyrant
    • lightcloud
    • NMDB
    • luxio
    • memcachedb
    • actord
  5. 数据结构服务器

    • redis的
  6. <强>元组存储

    • GigaSpaces的
    • 坐标
    • apacheriver
  7. 对象数据库

    • ZopeDB
    • db4o的
    • 浅滩
  8. 文档商店

    • CouchDB的
    • 蒙戈
    • 贾卡拉比特
    • XMLDatabases
    • ThruDB
    • CloudKit
    • Perservere
    • RiakBasho
    • Scalaris
  9. 宽柱状商店

    • BigTable的
    • HBASE
    • 卡桑德拉
    • Hypertable的
    • KAI
    • OpenNep

答案 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的开始