54

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

4

8 回答 8

104

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

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

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

  • CouchDB是一个非关系型数据库。他们称之为面向文档的数据库。
  • Amazon SimpleDB也是一种通过 Web 服务以分布式方式访问的非关系型数据库。亚马逊还有一个名为Dynamo的分布式键值存储,它支持它的一些 S3 服务。
  • DynomiteKai是受 Amazon Dynamo 启发的开源解决方案。
  • BigTable是谷歌使用的专有数据存储解决方案,并使用他们的谷歌文件系统技术实现。Google 的 MapReduce 框架使用 BigTable。
  • Hadoop是一种受 Google 的 MapReduce 启发的开源技术,它服务于类似的需求,用于分发超大规模数据存储的工作。
  • Scalaris是一个分布式事务键/值存储。也不是关系型的,也不使用 SQL。这是德国柏林 Zuse 研究所的一个研究项目。
  • RDF是一种存储语义数据的标准,其中数据和元数据是可互换的。它有自己的查询语言 SPARQL,表面上和 SQL 很像,但实际上完全不同。
  • Vertica是一个高度可扩展的面向列的分析数据库,专为分布式(网格)架构而设计。它确实声称是关系型和 SQL 兼容的。它可以通过亚马逊的弹性计算云使用。
  • 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 年代初期。它是一种流行的键值存储,易于嵌入到各种应用程序中。该技术目前归甲骨文公司所有。

另请参阅 Richard Jones 的这篇精彩文章:“ Anti-RDBMS:分布式键值存储列表”。他更详细地描述了其中一些技术。

可以肯定的是,关系数据库有弱点。自首次引入数据建模需求以来,人们一直在争辩说他们并没有处理所有的数据建模需求。

年复一年,研究人员提出了管理数据的新方法以满足特殊要求:要么处理不适合关系模型的数据关系的要求,要么要求完成数据处理的高规模或速度要求在分布式服务器集合上,而不是中央数据库服务器。

尽管这些先进技术在解决它们设计的专门问题方面做得很好,但关系数据库仍然是满足大多数业务需求的良好通用解决方案。SQL 不会消失。


我在 php|Architect 杂志上写了一篇关于非关系数据库的创新,以及关系与非关系数据库中的数据建模的文章。http://www.phparch.com/magazine/2010-2/september/

于 2008-11-12T02:24:59.913 回答
25

到目前为止,我在答案中缺少图形数据库。对象的图形或网络在编程中很常见,在数据库中也很有用。它可以有效地处理半结构化和互连的信息。图数据库引起广泛关注的领域包括语义网和生物信息学。提到了RDF,它实际上是一种表示图的语言。以下是图形数据库区域中正在发生的事情的一些指针:

我是Neo4j项目的一部分,该项目是用 Java 编写的,但也绑定到 Python、Ruby 和 Scala。有些人将它与 Clojure 或 Groovy/Grails 一起使用。还有一个不断发展的GUI 工具

于 2009-03-26T22:26:22.440 回答
10

可能不是回答这个问题的最佳地点,但我想分享这个由 Steve Yen 创建的 noSQL 世界分类法(请在http://de.slideshare.net/northscale/nosqloakland-200911021找到它)

  1. 键值缓存

    • 内存缓存
    • 重新缓存
    • 连贯性
    • 
无限期
    • 极端规模
    • 
jboss缓存
    • 速度
    • 兵马俑</li>
  2. 键值存储

    • 
键空间
    • 
耀斑
    • 无图式
    • 
内存云 </li>
  3. 最终一致的键值存储

    • 发电机
    • 
伏地魔
    • 
炸药
    • 
子记录
    • 
蒙古数据库
    • 
燕尾数据库
  4. 有序键值存储

    • 东京暴君
    • 光云
    • 
纳米数据库
    • 卢西奥
    • 
内存缓存数据库
    • 
演员</li>
  5. 数据结构服务器

    • redis </li>
  6. 元组存储

    • 千兆空间
    • 
坐标
    • 
阿帕奇河
  7. 对象数据库

    • 佐佩数据库
    • db4o
    • 
浅滩</li>
  8. 文件存储

    • 沙发数据库
    • 蒙哥
    • 
长耳兔
    • 
XML 数据库
    • 
直通数据库
    • 
CloudKit
    • 
坚持不懈
    • 
里亚克芭蕉
    • 
标量</li>
  9. 宽柱状存储

    • 大表
    • Hbase
    • 卡桑德拉
    • 超表
    • 
开放网络
于 2011-03-19T10:26:01.590 回答
2

要了解下一代数据库领域正在进行的学术研究,请查看以下内容:http ://www.thethirdmanifesto.com/

关于 SQL 语言作为关系模型的正确实现,我引用维基百科,“SQL,最初作为关系数据库的标准语言被推,在几个地方偏离了关系模型。当前的 ISO SQL 标准没有提及关系模型或使用关系术语或概念。但是,如果不使用某些 SQL 功能,则可以使用 SQL 创建符合关系模型的数据库。

http://en.wikipedia.org/wiki/Relational_model(在 2010 年 3 月 28 日的“SQL 和关系模型”一节中引用

于 2010-03-28T11:15:43.430 回答
1

不要迂腐,但我想指出,至少 CouchDB 不是基于 SQL 的。我希望下一代 SQL 能让 SQL 少很多……丑陋且不直观。

于 2008-11-12T02:05:24.883 回答
1

有一些特殊的 XML 数据库,如 MarkLogic 和 Berkeley XMLDB。他们可以索引 xml-docs,并且可以使用 XQuery 查询它们。我期待 JSON 数据库,也许它们已经存在。做了一些谷歌搜索,但找不到一个。

于 2009-03-22T17:30:34.413 回答
0

SQL 自 1970 年代初就已经存在,所以我认为它不会很快消失。

也许'新(-ish)sql'会oql(见http://en.wikipedia.org/wiki/ODBMS

于 2008-11-12T02:15:26.577 回答
0

我还听说过 Jim Starkey 的 NimbusDB

Jim Starkey 是“创造”Interbase 的人

谁在 Vulcan(火鸟前叉)上工作

Falcon for MySQL 的创始人是谁

于 2009-04-08T22:00:22.903 回答