Why is Google BigTable referred to as a NoSQL database?

From Wikipedia:

Well-known manufacturing implementations [from NoSQL databases] include Google BigTable, Amazon Dynamo, and Cassandra.

But Google BigTable has some version of SQL called GQL .

What am I missing?

+1
source share
3 answers

NoSQL is an umbrella term for all databases other than "standard" SQL databases, such as MySQL, Microsoft SQL Server, and PostgreSQL.

These โ€œstandardโ€ SQL databases are relational databases, have a SQL query language, and conform to ACID properties . These properties basically come down to consistency.

The NoSQL database is different in that it does not support one or more of these key functions of the so-called "SQL databases":

  • Coherence
  • Relational data
  • SQL language

Most of these features go hand in hand.

Constancy

Consistency is where most NoSQL databases differ from SQL databases. You can pull the cork from the SQL database and make sure that your data is still consistent and intact. NoSQL databases tend to sacrifice this consistency for better scalability. Google Bigtable also does this.

Relational data

SQL databases revolve around normalized relational data. The database ensures that these relationships remain valid and consistent no matter what you throw on it. NoSQL databases generally do not support relationships because they do not maintain consistency to enforce these relationships. In addition, relational data is bad for performance when data is distributed between multiple servers.

The exception is graphical databases . They are considered NoSQL databases, but have a relational data function. In fact, this is what they are all about!

SQL language

The SQL language was developed specifically for relational databases, the so-called "SQL databases". Since most NoSQL databases are very different from relational databases, they do not need SQL. In addition, some NoSQL databases have functions that simply cannot be expressed in SQL, which requires a different query language.

Last but not least, NoSQL is just a buzzword . This basically means "nothing but an old and reliable MySQL server in the attic," which includes many alternative storage mechanisms. Even a simple text file can be thought of as a NoSQL solution :)

+17
source

When people say "NoSQL" what they usually mean, it is "non-relational." As far as I know, BigTable does not contain primary / foreign keys, JOINs or relational calculi of any type.

The fact that BigTable contains query syntax that includes the words "SELECT" and "WHERE" does not mean that it adheres to the principles of relational databases. This is more convenience or a โ€œhookโ€ so that matches of the single-user type are more familiar to programmers from relational databases.

+6
source

Google BigTable has some SQL option called GQL

Well, thatโ€™s the whole point. They have a No (t) SQL language. Only this mind is enough to be divided.

The only thing you should look for in general terms in any NoSQL databases (graph, document, large table ...) is that they do not respond to SQL queries.

SQL support has a huge limitation on how data is organized internally and the algorithms you can use. NoSQL rejects these restrictions to implement alternative algorithms to improve important functions that are victims of full SQL compliance.

0
source

Source: https://habr.com/ru/post/956370/


All Articles