Saturday, 9 March 2013

Why NoSQL databases?


Before moving on to “Why” these NoSQL databases, let’s consider “What” are these NoSQL databases....


  • Simply the NoSQL databases are not using SQL and they are not relational. 
  • Second, NoSQL is designed for distributed data stores for very large scale data needs. 


NoSQL databases provide a simple, lightweight mechanism for storage and retrieval of data and they provide higher scalability and availability than traditional relational databases. 

These NoSQL databases usually do not use a 'SQL' approach for storing data. In simple terms they do not store the data in the form of “tables”. On the other hand they use looser consistency models to achieve horizontal scaling (that is “scaling up”) and higher availability (as the database is distributed in several commodity computers). 

These no SQL databases are commonly used by prominent internet companies such as Face book, Google, Amazon which have challenges in working with large volume of data and the typical RDBMSs cannot handle.

So in these companies, data is partitioned or distributed among several machines. Then the performance and size related limitations can be handled efficiently. As the data is distributed among several machines, traditional “join” operations cannot be used. However we could be able to obtain a distributed, fault-tolerant architecture. 

So now let’s move on to why these No SQL databases....

#1.  Flexible scaling

In traditional databases, the database administrators relied heavily on scaling up the database. That is buying bigger servers as database load increases. But in NoSQLs they can rather use scaling out. That is the distribution of the database across multiple hosts as the load increases.

RDBMS do not scale out easily on commodity clusters. But these NoSQL databases are designed in a way, so that they can take the advantage of new nodes. And also they are designed to work efficiently with low-cost commodity hardware.

#2. Can handle lots of data

The companies which are overloaded practically with data volumes cannot use RDBMSs to handle their data. But NoSQL databases can handle a large amount of data.

#3. Requires less management

RDBMS systems can be maintained only with the support of expensive and highly trained DBAs. But NoSQL data bases can be maintained with less management as it uses automatic repair, data distribution, and simpler data models.

#4. Economic

NoSQL databases have the capability to use clusters of cheap commodity servers to manage high data and transaction volumes. Therefore it is economic than purchasing high capacity single servers.

#5. Flexible data models

NoSQL databases such as Key Value stores and document databases allow the application to store virtually any structure it wants. But even the minor changes to the data model of RDBMSs need to be carefully carried out as it affects the whole databases.