Notable production implementations
[of NoSQL databases] include Google’s
BigTable, Amazon’s Dynamo and
Cassandra.
But Google’s BigTable does have some variant of SQL, called GQL.
What am I missing?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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.
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.
A NoSQL database is different because it doesn’t support one or more of these key features of the so-called ‘SQL databases’:
Most of these features go hand in hand.
Consistency
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.
Relational data
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.
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 language
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.
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 🙂