为什么 Google 的 BigTable 被称为 NoSQL 数据库? [英] Why Google's BigTable referred as a NoSQL database?

查看:18
本文介绍了为什么 Google 的 BigTable 被称为 NoSQL 数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

来自维基百科:

值得注意的生产实现[NoSQL 数据库] 包括 Google 的BigTable,亚马逊的 Dynamo 和卡桑德拉.

Notable production implementations [of NoSQL databases] include Google's BigTable, Amazon's Dynamo and Cassandra.

但 Google 的 BigTable确实有一些 SQL 变体,称为 GQL.

But Google's BigTable does have some variant of SQL, called GQL.

我错过了什么?

推荐答案

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

NoSQL is an umbrella term for all the databases that are different from 'the standard' SQL databases, such as MySQL, Microsoft SQL Server and PostgreSQL.

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

These 'standard' SQL databases are all relational databases, feature the SQL query language and adhere to the ACID properties. These properties basically boil down to consistency.

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

A NoSQL database is different because it doesn't support one or more of these key features of the so-called 'SQL databases':

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

其中大部分功能齐头并进.

Most of these features go hand in hand.

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

Consistency is where most NoSQL databases differ from SQL databases. You can pull the plug from a SQL database and it will make sure your data is still consistent and uncorrupted. NoSQL databases tend to sacrifice this consistency for better scalability. Google's Bigtable also does this.

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

SQL databases revolve around normalized, relational data. The database ensures that these relations stay valid and consistent, no matter what you throw at it. NoSQL databases usually don't support relations, because they don't support the consistency to enforce these relations. Also, relational data is bad for performance when the data is distributed across several servers.

图形数据库是个例外.这些被认为是 NoSQL 数据库,但具有关系数据.事实上,这就是他们的全部意义所在!

An exception are graph databases. These are considered NoSQL databases, but do feature relational data. In fact, that's what they're all about!

SQL 语言专为关系数据库(即所谓的SQL 数据库")而设计.由于大多数 NoSQL 数据库与关系数据库有很大不同,因此它们不需要 SQL.此外,一些 NoSQL 数据库具有根本无法用 SQL 表达的特性,因此需要不同的查询语言.

The SQL language was designed especially for relational databases, the so-called 'SQL databases'. Since most NoSQL databases are very different from relational databases, they don't have the need for SQL. Also, some NoSQL databases have features that simply cannot be expressed in SQL, thus requiring a different query language.

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

Last, but not least, NoSQL is simply a buzzword. It basically means 'anything but the old and trusty MySQL server in the attic', which includes a lot of alternative storage mechanisms. Even a simple text file can be considered a NoSQL solution :)

这篇关于为什么 Google 的 BigTable 被称为 NoSQL 数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆