Relational databases have been around us for more than 20 years now. Needless to say, they are mature and an obvious choice for storing data used for performing CRUD operations. RDBMS are usually used for storing structured data which can be manipulated and retrieved using standard SQL queries. In RDBMS, a data is also associated with metadata for e.g. the column name of table and its data type. RDBMS also provides ACID transactions.
Limitations of RDBMS
NoSQL
NoSQL databases overcome the limitations of RDBMS. They are non-relational, schema-less, horizontally scalable, provide auto-sharding and can handle big data efficiently. There are several types of NoSQL databases based on how the values are stored – key-value, document, graph, column families – and there are several vendors which provide each type of NoSQL database. There are around 150 NoSQL databases available at present and all are open-source. Most of these databases are deployed on cloud and thus utilize the huge computing capability and storage provided by horizontally scaled nodes. They also provide transparent load balancing.
NoSQL databases dynamically replicate data on multiple nodes for high availability. This is also called as auto-sharding.
While RDBMS provides ACID transactions, NoSQL supports BASE – Basically Available, Soft state and Eventually consistent.
Document databases such as MongoDB store data in JSON. A key is used to identify and retrieve document.
MongoDB also provides tunable consistency. The data stored in various nodes of MongoDB database can either be consistent or eventually consistent based on whether the database is read-intensive or write-intensive respectively.
NoSQL Applications
Will NoSQL replace RDBMS?
No. NoSQL will augment RDBMS. The application architects can decide which data to be stored in NoSQL database and RDBMS and can use the combination of both.
Points to consider before selecting NoSQL
Oracle NoSQL Database (ONDB)
Oracle provides two editions of NoSQL Database – Community Edition and Enterprise Edition. Following are its key features:
The ACID transaction support and external table support are the two interesting features of ONDB. The external table support allows data to be queried using Select queries of SQL.