从维基百科:
[NoSQL数据库的]著名的生产实现包括Google的BigTable,亚马逊的Dynamo和Cassandra。
但是Google的BigTable 确实 有一些SQL变体,称为GQL。
我想念什么?
NoSQL是与“标准” SQL数据库不同的所有数据库(例如MySQL,Microsoft SQL Server和PostgreSQL)的总称。
这些“标准” SQL数据库都是关系数据库,具有SQL查询语言并遵守ACID属性。这些属性基本上可以归结为 一致性 。
NoSQL数据库的不同之处在于,它不支持所谓的“ SQL数据库”的以下关键功能中的一个或多个:
这些功能大多数都是齐头并进的。
一致性是大多数NoSQL数据库与SQL数据库不同的地方。您可以从SQL数据库中拔出插头,以确保您的数据仍然一致且未损坏。NoSQL数据库倾向于牺牲这种一致性以获得更好的可伸缩性。Google的Bigtable也这样做。
SQL数据库围绕规范化的关系数据。数据库确保这些关系保持有效和一致,无论您如何处理。NoSQL数据库通常不支持关系,因为它们不支持执行这些关系的一致性。同样,当数据分布在多个服务器上时,关系数据也不利于性能。
图数据库是一个例外。这些被认为是NoSQL数据库,但是具有关系数据。实际上,这就是他们的全部目的!
SQL语言是专门为关系数据库设计的,即所谓的“ SQL数据库”。由于大多数NoSQL数据库与关系数据库有很大的不同,因此它们不需要SQL。此外,某些NoSQL数据库具有无法用SQL表示的功能,因此需要使用不同的查询语言。
最后但并非最不重要的一点是,NoSQL只是一个 流行词 。基本上,它的意思是“除了阁楼上陈旧而值得信赖的MySQL服务器以外的任何东西”,其中包括 许多 替代性的存储机制。即使是简单的文本文件也可以被视为NoSQL解决方案:)