来自维基百科:

NOSQL数据库]值得注意的生产实现包括Google的Bigtable,Amazon的Dynamo和Cassandra。

但谷歌的BigTable 有一些 SQL 变体,称为 GQL.

我缺少什么?

有帮助吗?

解决方案

NoSQL 是所有不同于“标准”SQL 数据库的数据库的总称,例如 MySQL、Microsoft SQL Server 和 PostgreSQL。

这些“标准”SQL 数据库都是关系数据库,具有 SQL 查询语言并遵循 酸性特性. 。这些属性基本上可以归结为 一致性.

NoSQL 数据库有所不同,因为它不支持所谓的“SQL 数据库”的以下一个或多个关键功能:

  • 一致性
  • 关系数据
  • SQL语言

大多数这些功能都是齐头并进的。

一致性

一致性是大多数 NoSQL 数据库与 SQL 数据库的不同之处。您可以从 SQL 数据库中拔出插头,它将确保您的数据仍然一致且未损坏。NoSQL 数据库往往会牺牲这种一致性来获得更好的可扩展性。Google 的 Bigtable 也做到了这一点。

关系数据

SQL 数据库以规范化的关系数据为中心。无论您添加什么内容,数据库都会确保这些关系保持有效和一致。NoSQL 数据库通常不支持关系,因为它们不支持强制执行这些关系的一致性。此外,当数据分布在多个服务器上时,关系数据也会降低性能。

一个例外是 图数据库. 。这些被视为 NoSQL 数据库,但确实具有关系数据。事实上,这就是他们的全部目的!

SQL语言

SQL 语言是专门为关系数据库(即所谓的“SQL 数据库”)而设计的。由于大多数 NoSQL 数据库与关系数据库有很大不同,因此它们不需要 SQL。此外,某些 NoSQL 数据库具有无法用 SQL 表达的功能,因此需要不同的查询语言。

最后但并非最不重要的一点是,NoSQL 只是一个 流行语. 。它基本上意味着“除了阁楼里旧的、值得信赖的 MySQL 服务器之外的任何东西”,其中包括 很多 替代存储机制。即使是简单的文本文件也可以被视为 NoSQL 解决方案:)

其他提示

当人们说“的NoSQL”他们通常是指是什么“非关系”。据我所知BigTable的不配备主/外键,连接,或任何类型的关系演算。

这BigTable的特征在于包括词语“SELECT”的查询的语法的事实和“WHERE”并不意味着它粘附到关系数据库的原理。它的更便利,或一个“钩”,以使单一实体型的匹配更熟悉的程序员从关系数据库来。

  

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

嗯,这是整点。他们确实有语言,无(t)的SQL。只要被开的分类足够的理由。

这是你应该看看在通用于人NoSQL数据库(图形,文档,大表......)的唯一的事情是,他们不回答SQL查询。

支持SQL对数据内部是如何组织和算法,你可以使用一个巨大的限制。 NoSQL的拒绝那些限制实施替代算法来改进是一个完整的SQL遵守受害者的重要功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top