当前位置:  开发笔记 > 数据库 > 正文

为什么谷歌的BigTable被称为NoSQL数据库?

如何解决《为什么谷歌的BigTable被称为NoSQL数据库?》经验,为你挑选了2个好方法。

来自维基百科:

[NoSQL数据库]的着名生产实现包括谷歌的BigTable,亚马逊的Dynamo和Cassandra.

但谷歌的BigTable 确实有一些SQL的变种,称为GQL.

我错过了什么?



1> Niels van de..:

NoSQL是所有与"标准"SQL数据库不同的数据库的总称,如MySQL,Microsoft SQL Server和PostgreSQL.

这些"标准"SQL数据库都是关系数据库,具有SQL查询语言并遵循ACID属性.这些属性基本上归结为一致性.

NoSQL数据库是不同的,因为它不支持所谓的"SQL数据库"的一个或多个这些关键功能:

一致性

关系数据

SQL语言

大多数这些功能齐头并进.

一致性

一致性是大多数NoSQL数据库与SQL数据库不同的地方.您可以从SQL数据库中拔出插件,它将确保您的数据仍然一致且未损坏.NoSQL数据库倾向于牺牲这种一致性以获得更好的可伸缩性.Google的Bigtable也是这样做的.

关系数据

SQL数据库围绕规范化的关系数据.数据库确保这些关系保持有效和一致,无论您抛出什么.NoSQL数据库通常不支持关系,因为它们不支持一致性来强制执行这些关系.此外,当数据分布在多个服务器上时,关系数据对性能不利.

图表数据库是一个例外.这些被认为是NoSQL数据库,但具有关系数据的特征.事实上,这就是他们的全部!

SQL语言

SQL语言专为关系数据库而设计,即所谓的"SQL数据库".由于大多数NoSQL数据库与关系数据库非常不同,因此它们不需要SQL.此外,一些NoSQL数据库具有无法在SQL中表达的功能,因此需要不同的查询语言.

最后,但并非最不重要的,NoSQL只是一个流行语.它基本上意味着"除阁楼中旧的和可靠的MySQL服务器之外的任何东西",其中包括许多替代存储机制.即使是简单的文本文件也可以被认为是NoSQL解决方案:)



2> Larry Lustig..:

当人们说"NoSQL"时,他们通常所说的是"非关系型".据我所知,BigTable没有主键/外键,JOIN或任何类型的关系演算.

BigTable具有包含单词"SELECT"和"WHERE"的查询语法这一事实并不意味着它遵循关系数据库的原则.对于来自关系数据库的程序员来说,单实体类型的匹配更为熟悉,这更方便了一个"钩子".

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有