RDBMS (8)

Why is SQL so pular again after so much hype about NoSQL? @Tom-Armstrong

Why is SQL so popular again after so much hype about NoSQL?

 Tom Armstrong
Tom Armstrong, 3 years as SSMS database support developer, 2 years as SSMS DBA/SQL developer

This question infers that SQL lost popularity after the advent of NoSQL. I would argue that it did not.

You must compare what the two technologies are, and what they are used for.

SQL is for “structured” data. Data that is fairly predictable. So an entity such as persons address will generally always have the same fields (e.g. House number, street, city, postcode, country). This is generally best in SQL. It can be indexed, queried against, reported on, and stored in a relatively efficient manner.

However NoSQL is very good for unstructured data. Typically “Big data” is unstructured because of the range of information that it can contain. Big data could be a full credit report which may be provided in XML or JSON and contain thousands of columns if imported into a SQL database. This table would become unmanageable wide and be inefficient to maintain. Also the structure of data like credit reports can change often leading to updates to your table, indexes, procedures, triggers, application code, reports etc etc etc.

Other unstructured data could be the finger tap pattern when tracking how a person navigates around an app or website on their phone. This is nearly impossible to get into a structured format efficiently and without diluting the richness of the data.

These types of big data very quickly become very large collections of data, and expensive to store on a SQL database system in their raw format.

NoSQL provides a method of querying this data and interrogating it.

Very often (in my experience) NoSQL is used for exploratory work to understand the data manually, or to extract specific information out of big data into a data warehouse where SQL is again used. There are other uses which would only use NoSQL but generally NoSQL and SQL would be used in my systems for very different purposes.

So at the moment SQL is still popular. NoSQL HAS specific benefits for specific applications, but for a typical transactional database, SQL is still very popular.

Having said that, NoSQL is a much less mature technology, and exciting developments come up often, so who knows what the future will hold…