-
08-07-2019 - |
题
我正在学习传统的关系数据库( PostgreSQL)并做了一些研究,我遇到了一些新型数据库。 沙发数据库, 细雨, , 和 斯卡拉里斯 仅举几例,接下来要处理的数据库技术是什么?
解决方案
我会说下一代 数据库, ,而不是下一代 SQL。
SQL 是一种用于查询和操作关系数据库的语言。SQL 由国际标准规定。尽管该标准经过修订,但它似乎始终在关系数据库范式内工作。
以下是目前受到关注的一些新的数据存储技术:
- 沙发数据库 是一个非关系型数据库。他们称之为面向文档的数据库。
- 亚马逊简单数据库 也是通过Web服务以分布式方式访问的非关系数据库。亚马逊还有一个分布式键值存储,称为 发电机, ,为其部分 S3 服务提供支持。
- 炸药 和 凯 是受 Amazon Dynamo 启发的开源解决方案。
- 大表 是 Google 使用的专有数据存储解决方案,并使用其 Google 文件系统技术实现。Google 的 MapReduce 框架使用 BigTable。
- Hadoop 是一项受 Google MapReduce 启发的开源技术,可满足类似的需求,用于分发超大规模数据存储的工作。
- 斯卡拉里斯 是分布式事务键/值存储。也不是关系型的,并且不使用SQL。这是德国柏林 Zuse 研究所的一个研究项目。
- RDF 是存储语义数据的标准,其中数据和元数据是可以互换的。它有自己的查询语言SPARQL,表面上类似于SQL,但实际上完全不同。
- 维蒂卡 是一个高度可扩展的面向列的分析数据库,专为分布式(网格)架构而设计。它确实声称是关系型的并且兼容 SQL。它可以通过亚马逊的弹性计算云使用。
- 绿梅 是一个大规模数据仓库DBMS,它同时实现了MapReduce和SQL。
- XML 根本不是 DBMS,它是一种交换格式。但某些 DBMS 产品使用 XML 格式的数据。
- 数据库管理系统, 或对象数据库,用于管理复杂的数据。主流中似乎没有任何占主导地位的 ODBMS 产品,这可能是因为缺乏标准化。标准 SQL 正在逐渐获得一些 OO 功能(例如可扩展的数据类型和表)。
- 细雨 是一个关系数据库,它的很多代码都取自MySQL。它包括旨在管理可扩展“云计算”系统架构中的数据的各种架构更改。据推测,它将继续使用标准 SQL 并进行一些 MySQL 增强。
- 卡桑德拉 是一个高度可扩展、最终一致、分布式、结构化的键值存储,由 Amazon Dynamo 的一位作者在 Facebook 开发,并为 Apache 项目做出了贡献。
- 伏地魔计划 是一个非关系型、分布式、键值存储系统。LinkedIn.com 使用它
- 伯克利数据库 也值得一提。它不是“下一代”,因为它的历史可以追溯到 20 世纪 90 年代初。它是一种流行的键值存储,可以轻松嵌入到各种应用程序中。该技术目前归甲骨文公司所有。
另请参阅理查德·琼斯的这篇好文章:”反关系型数据库管理系统:分布式键值存储列表。”他更详细地描述了其中一些技术。
可以肯定的是,关系数据库也有弱点。人们一直在争论,自首次引入之日起,他们并没有处理所有数据建模需求。
年复一年,研究人员想出新的数据管理方法来满足特殊要求:处理不适合关系模型的数据关系的要求,或者要求在分布式服务器集合而不是中央数据库服务器上完成数据处理的大规模容量或速度的要求。
尽管这些先进技术在解决其设计的专门问题方面发挥了巨大作用,但关系数据库仍然是满足大多数业务需求的良好通用解决方案。SQL 不会消失。
我在 php|Architect 杂志上写了一篇关于非关系数据库的创新以及关系数据库和关系数据库中的数据建模的文章。非关系数据库。 http://www.phparch.com/magazine/2010-2/september/
其他提示
我丢了 图数据库 到目前为止的答案中。对象图或网络在编程中很常见,并且在数据库中也很有用。它可以有效地处理半结构化和互连的信息。图数据库引起广泛关注的领域包括语义网络和生物信息学。提到了RDF,其实它是一种表示图的语言。以下是图形数据库区域中正在发生的事情的一些提示:
- 图 - 更好的数据库抽象
- Graphd,Freebase 的后端
- Neo4j开源图数据库引擎
- AllegroGraph RDFstore
- 生物信息学的 Graphdb 抽象层
- Directed Edge 推荐引擎背后的 Graphdb
我是其中的一部分 新4j 项目,它是用 Java 编写的,但也绑定到 Python、Ruby 和 Scala。有些人将它与 Clojure 或 Groovy/Grails 一起使用。还有一个 图形用户界面工具 不断发展。
可能不是回答这个问题的最佳地点,但我想分享 Steve Yen 创建的 noSQL 世界的分类法(请在以下位置找到它) http://de.slideshare.net/northscale/nosqloakland-200911021)
键值缓存
- 内存缓存
- 重新缓存
- 连贯性
- 英菲尼斯潘
- 超大规模
- jboss缓存
- 速度
- 陶土
键值存储
- 键空间
- 耀斑
- 无模式
- 内存云
最终一致的键值存储
- 发电机
- 伏地魔
- 炸药
- 子记录
- 蒙古数据库
- 燕尾数据库
有序键值存储
- 东京暴君
- 光云
- 国家MDB
- 卢西奥
- 内存缓存数据库
- 演员
数据结构服务器
- 雷迪斯
元组存储
- 千兆空间
- 坐标
- 阿帕奇河
对象数据库
- 佐普数据库
- 数据库4o
- 浅滩
文件存储
- 沙发数据库
- 蒙戈
- 长耳大野兔
- XML数据库
- 通过数据库
- 云套件
- 佩尔韦韦雷
- 里克·芭蕉
- 斯卡拉里斯
宽柱状商店
- 大表
- 数据库
- 卡桑德拉
- 超表
- 凯
- 开放式网络
要了解下一代数据库领域正在进行的学术研究,请查看以下内容: http ://www.thethirdmanifesto.com/
关于SQL语言作为关系模型的正确实现,我引用维基百科,“SQL,最初作为关系数据库的标准语言推送,偏离了几个地方的关系模型。当前的ISO SQL标准未提及关系模型或使用关系术语或概念。但是,如果不使用某些SQL功能,则可以使用SQL创建符合关系模型的数据库。“
http://en.wikipedia.org/wiki/Relational_model (参考部分“SQL和关系模型”于2010年3月28日
不要迂腐,但我想指出,至少CouchDB不是基于SQL的。而且我希望下一代SQL可以使SQL少得多......非常简单和非直观。
有一些特殊的XML数据库,如MarkLogic和Berkeley XMLDB。他们可以索引xml-docs,并且可以使用XQuery查询它们。我期待JSON数据库,也许它们已经存在。做了一些谷歌搜索,但找不到一个。
自20世纪70年代初以来,SQL一直存在,所以我认为它不会很快消失。
也许'new(-ish)sql'将是oql(参见 http://en.wikipedia .ORG /维基/ ODBMS )
我也听说过Jim Starkey的NimbusDB
Jim Starkey是“创造”的人。 Interbase的
谁在Vulcan(Firebird fork)上工作
谁是Falcon for MySQL的开始