Initially, I thought NoSQL stands for NO TO SQL. I felt bad. But, realized later that it actually stands for Not Only SQL. Here is my take on SQL as of today!
SQL stands for Structured Query Language. It is used for querying the Relational Database Management Systems like Oracle, MySQL, and PostgreSQL.
RDBMS assures data consistency and avoids data redundancy. For that, it enforces a predefined schema and ACID transactions. Naturally, it comes at a cost on the performance.
The NoSQL story
With the worldwide penetration of the internet, the load on the web applications and on the back-end databases grew almost exponentially, during the 2000s. Enterprises started seeing an enormous amount of data being collected from various sources like transactions, comments, social media posts, machine metrics and etc., This data is mostly unstructured. RDBMS is not equipped to process unstructured data. Thus, NoSQL was born!
MongoDB, Cassandra, Redis, DynamoDB and etc., are some of the popular NoSQL databases. They moved the game from ACID to Eventual Consistency. For them, scalability is at the top of the agenda. Data redundancy is no longer taboo.
Though NoSQL databases were introduced to complement the RDBMS, many newcomers saw it as a replacement for RDBMS. For them, RDBMS is a dead horse. The SQL lost its relevancy. What … is it really?
The resurgent SQL
Like any other tool or technology, RDBMS and NoSQL databases address different sets of problems. It is true that much of the modern data processing is done using NoSQL databases. That doesn’t mean that they do not have issues.
One of the issues with NoSQL databases is the lack of a consistent way to query them. For example, the query you write against MongoDB is useless against DynamoDB.
That’s where the SQL became important again. It is a well-known fact that there is a large community that is still too good with SQL. To leverage the strength of the SQL, many of the NoSQL vendors started offering a SQL interface or at least a SQL-like interface. Here are some examples:
The cloud platform from Microsoft offers a SQL interface to query the underlying Cosmos NoSQL databases.
The topmost stream processing system offers Spark SQL as the primary interface to query the data streams.
The messaging system that is often found in most distributed systems offers KSQL interface to query the messages.
A popular log analytics tool supports SQL-like syntax to query the machine data.
And there can be many other NoSQL products in the same league like MongoDB Atlas Data Lake and etc.,
I don’t think the SQL is going anywhere. It is here to stay for some more time. Know SQL, it helps!