Simply put, a database is an organized collection of data. The first database appeared in the 60s by the name of Navigational DBMS (database management system), and later, in the 70s, a new type of database was created by Edgar Codd, an IBM employee. This new system was known as the “Relational database management system”, or simply: RDBMS (as you probably know it 🙂 – and it’s still popular today, although another database type gained ground in the last years, namely NoSQL (or, as some people call it: “Not only SQL”).
Of course, there are a lot of pros and cons for each of these database systems, but is one better than the other?
Definition
SQL is a special-purpose programming language used for managing data stored in a RDBMS. So “SQL” is not actually a database system, although when we speak about RDBMS, we immediately think of SQL.
NoSQL, on the other hand, is a database system that uses a new data model, which is different from the model used by relational databases. The data model of NoSQL databases (document-oriented) is more flexible, more scalable and it provides better performance.
Advantages & disadvantages
Some of the advantages of SQL / RDBMS: portability between devices, and the fact that SQL can retrieve large amounts of data from the database. SQL is used in companies where sensitive data is being used (such as banks), as SQL proved over the years that it can successfully handle such data. Another scenario where SQL proves to be very useful is in the case of complex and dynamic queries, for example when the relationships between various pieces of data are very intricate (or at least the data processing steps are complex in nature).
However, when you need to handle huge quantities of data, the disadvantage of SQL / RDBMS is that it’s slower than NoSQL alternatives. Also, other downsizes of SQL are: a steep learning curve, inconsistent implementations between different vendors etc.
The NoSQL market share keeps growing at a fast rate, which means that this new type of database has some advantages over the classical approach of relational databases. Because objects can be accessed directly, one of the strong points of NoSQL is a fast key-value access. Also, a NoSQL database can be easily scaled (just by adding more nodes), and it provides massive write performance.
The disadvantages of NoSQL databases are a lack of proper standardized interfaces, low maturity compared to the relational databases and there is no proper troubleshooting support for companies that use them.
To summarize: SQL / RDBMS are suitable for most enterprise data handling needs (and especially efficient when it comes to complex queries and data processing), whereas NoSQL is used in Big Data Processing (for example in cloud computing, or for backing very large online services such as Google or Twitter), where the data is not very complex but it has a considerable size (therefore fast key-value access and massive write performance is needed).
Most popular database systems
The most popular RDBMS solutions are:
Oracle – Banks and financial companies
MySQL – Facebook, YouTube
Microsoft SQL Server – Facebook
PostgreSQL – Bing, Reddit
The most popular NoSQL database systems are:
MongoDB – The New York Times
Big Table – Google
HBase – Facebook, Hulu
Although SQL and NoSQL are very different, they are not always in competition, as they serve different purposes. Many people understood this, and Hybrid SQL- NoSQL databases have succeeded to create a niche for themselves in recent years, although they are not so popular as SQL and NoSQL stand-alone solutions. Whatever the case, we live in a world where more and more data demands to be stored, so the need for new types of database systems is growing at a fast pace.