There is a lot of hype around No-SQL databases, even to the point where people are saying that the relational database (RDBMS) model is obsolete. I develop corporate applications and use relational databases to do this, so the talk about how relational databases are obsolete has prompted me to look further into both technologies.
At the most basic level people make the mistake of assuming that it’s a one or the other arguement. This sort of thinking is incorrect though. No-SQL is not a replacement for relational databases and the two technologies are designed to address very different issues.
So What Exactly is a No-SQL Database?
No-SQL stands for Not Only SQL. This type of database became popular in 2009 and since then a large number of No-SQL platforms have arisen.
The basic attributes shared by No-SQL databases are that they are schema-free, are easy replicated, have a simple API (they do not use SQL as a query language), they are not ACID, and they are intended for efficiently storing & querying huge amounts of data.
No-SQL databases are typically used as stores for:
- BigTable data
- Cloud based data
- Graph plot data
- Key-value data
- XML data
When to Use a No-SQL Database
No-SQL databases are optimized for read and append operations, and perform very well in situations where a relational database would bog down. They are especially when large amounts of data have to be queried and where speed is more important than consistency.
For example if one were designing a banking application where data integrity is key, then a relational database would definitely still be the best solution. Conversely, if one were developing a document storage system or a mapping application then a No-SQL solution makes the most sense to use. Each database type has its advantages and disadvantages and which to use depends on the task at hand.
In general, relational databases enforce ACID. This is the commonly known acronym for Atomicity, Consistency, Isolation, and Durability.
ACID is great when dealing with most corporate data but creates a problems when huge data becomes a factor.
Most No-SQL solutions ease up on or drop the Consistency requirement of ACID to become more Available and Partitioned, so some No-SQL systems are termed BASE. BASE stands for Basically Available, Soft-state, Eventually consistent.
Looking at the pros and cons of relational and No-SQL database platforms it is clear that relational databases are not obsolete or on their way out, as many sensationalists try to argue.
Both types of database have a clear purpose the same way that a hammer has a use that is not that of a screwdriver.
To argue that the faster performance of No-SQL solutions makes relational databases obsolete makes absolutely no sense in my opinion. Both relational and No-SQL paradigms have their specific roles to play, and when a programmer understands this properly, then both of these tools can be used for what they are best at.