Prajwal Tuladhar’s Blog
 
programming, life and some random thoughts

Jan 18 2010

SQL and NoSQL - the rant continues

Published by Prajwal Tuladhar at 11:13 pm under Scalability

It’s been quite sometime I’ve been subscribing to Planet CouchDB and it’s a great resource for getting new information about NoSQL technologies especially CouchDB.

From the same source, I got chance to read these two interesting blog posts. One was about criticizing Amazon SimpleDB and overall NoSQL technologies and other one being answer to that criticism.

One can find large number of articles and blog posts arguing SQL and NoSQL group. It seems like whole database world has been divided into two camps just like during Cold War: capitalism and socialism (I won’t select which one is capitalism and communism, decide yourself :) ).

In my opinion, all these arguments and counter arguments are kind of unnecessary because both of these tools are quite powerful in their respective context.

I often find people giving example of foo company using foo tools / technology and are doing great job scaling their overall architecture.

People often give example of Google, Yahoo! and Facebook when they have to make points about SQL and NoSQL but it is also to be considered that these companies are being able to scale with such an efficiency by not using only SQL or only using NoSQL technology.

Google, for example uses its BigTable, a column based database technology (one of the instances of NoSQL horizon) for indexing the web while they also use MySQL in significant ratio, in fact they have also provided patches for MySQL. And same is true for Facebook and Yahoo!.

Databases are hammers; MapReduce is a screwdriver

The article is quite interesting read differentiating normal databases (SQL) and MapReduce, a Google developed technology for aggregating large sets of data in distributed environment which is also used by number of NoSQL technologies like: MongoDB, CouchDB and many others.

I think the same concept can be used for SQL and NoSQL.

SQL is a hammer while NoSQL is a screwdriver

So, instead of ranting which is superior to each other, it would be better to combine them both and use them to create scalable + robust architecture. And Technology Agnostic design and Technology Agnostic Architecture (that include database in abstract term i.e. using SQL and/or NoSQL as demand by the context) are the most important things to consider when talking about scalability.

Update: When people used the term NoSQL, it would be better if they mean Not Only SQL rather than No SQL.


  • Definitely. Perhaps I was rebutting too hard against the original article there, but I definitely agree with you. Originally I'd intended to try and point out that both solutions are valid but I could see how those points might've gotten lost amidst the "this argument is horrid," remarks.

    I'm looking forward to the day that both communities can sit down and write out reasons for and against lots of different data storage models for a whole host of given problems.
  • Nice post Prajwal. My impression is that those speaking about NoSQL are not really saying that NoSQL fits all solutions. It is the audience that transforms this into a NoSQL vs SQL/RDBMS/etc debate. In fact on MyNOSQL I have a specific category: hybrid NoSQL solutions and there are quite a few solutions/presentations and videos covering this exact topic. Another aspect that we need to always keep in mind is that not all of us are Google (even if we probably wish to be), so most of the time we will not need exactly the same things.
  • Agreed!
    I think still in most the context, combining SQL and NoSQL can give you the leverage and power to create a scalable and robust storage architecture but making never ending argument and counter-argument can only blur those possibilities.
blog comments powered by Disqus

RSS Feed
Subscribe by email
Follow me @ Twitter