Time and again, you’ll find blog posts like this one here telling you the same “truths” about SQL vs. NoSQL:
(OneWebSQL being a competitor of jOOQ, see a previous article for a comparison)
Usually, those blogs aim for the same arguments being:
- Performance (“SQL” can “never” scale as much as “NoSQL”)
- ACID (you don’t always need it)
- Schemalessness (just store any data)
For some funny reason, all of these ideas have led to the misleading term “NoSQL”, which is interpreted by some as being “no SQL”, by others as being “not only SQL”. But SQL really just means “Structured Query Language”, and it is extremely powerful in terms of expressing relational context. It is well-designed for ad-hoc creation of tuples, records, tables, sets and for mapping them to other projections, reducing them to custom aggregations, etc. Note the terms “map/reduce”, which are often employed by NoSQL evangelists.
For good reasons, the Facebook Query Language (FQL), one of the leading NoSQL query languages, closely resembles SQL although it operates on a completely different data model. Oracle too, has jumped on the “NoSQL” train and sells its own product. It won’t be very long until the two types of data storage will merge and can be queried by an ISO/IEEE standardised SQL:2015 (or so). Because the true spirit of “NoSQL” does not consist in the way data is queried. It consists in the way data is stored. NoSQL is all about data storage. So, sooner or later, you will just create “traditional” tables along with “graph tables” and “hashmap tables” in the same database and join them in single SQL queries without thinking much about today’s hype.
“NoSQL” should be called “SQL with alternative storage models” and queried with pure SQL!
One thought on ““NoSQL” should be called “SQL with alternative storage models””
I have no doubt that some NoSQL ideas become a part of future RBMSes. During web1.0 era there was a trend to keep the data in XML files (or databases). Now we’ve XML types in modern databases. We have to wait.