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

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

问题描述

维基百科:


显着的实现
[NoSQL数据库]包括Google的
BigTable,Amazon的Dynamo和
Cassandra。

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数据库倾向于牺牲这种一致性以获得更好的可扩展性。

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天全站免登陆