NoSQL key-value databases are simple and powerful to support large applications. They support the requirements of extreme web applications, which are scalability, performance, availability, and security.
NoSQL is a database platform consists of different database technologies. NoSQL is developed to address the critical issues like, ‘huge increase in the data volume’, ‘performance’, ‘frequency of data access’ and ‘processing speed’. On the other hand, RDBMS is not designed to face the above challenges of modern applications. Relational database is also not designed to take advantage of cheap commodity storage and processing power. So there is a need for NoSQL DB, which can be the best fit for modern age demanding applications.
There are different types of NoSQL databases. Let us have a brief look at their characteristics.
- Document database: This type of database is comprised of a key with an associated complex data structure. This complex data structure is known as document, which can itself hold key-value pairs, nested documents or even key-array pairs.
- Key-value store: This is the simplest NoSQL database. It stores every item with an attribute (known as key) and associated value.
- Graph database: This is typically used to store data about different networks. The data can be of networking sites, social connections etc.
- Wide-column store: It has characteristics of storing data columns together instead of data rows. These are suitable for query optimization over large datasets.
Simple and powerful NoSQL key-value databases: We have already discussed that the key-value model of NoSQL is the easiest and simplest model to implement. This model is based on an idea where a hash table is used to store the unique key and a pointer to a particular data item.
The original idea was to build a database for modern web applications which can scale rapidly. The initiation started some time in 2009 and then it grows rapidly. The NoSQL database technology can handle web scale very efficiently with thousands of servers in a clustered environment. And the NoSQL technology is also designed to support millions of users with extremely fast response time. The retrieval mechanism in NoSQL is much optimized to support the extreme performance requirement of modern age web applications.
The main design goal of key-value database was to increase the performance and the related features of web applications. To support these design goals, many relational database features have been left out. The main concentration was only on the features like scaling, performance, availability, optimization and security. The other important feature of NoSQL key-value database is the ‘sharding of data‘. This feature helps the scale-out architecture of NoSQL technology to support huge number of records. But this is again a problem area for traditional relational model.
So the simplicity of NoSQL key-value data store lies in its design itself. And the power of NoSQL comes from its features, which supports the extreme needs of the modern web based applications.
What are the suitable use cases for NoSQL key-value databases? Till now we have discussed about the powerful features of NoSQL key-value databases. Let us try to explore some of the use cases which are a perfect fit for this type of NoSQL DB.
- Applications which require horizontal scaling: Horizontal scaling in a distributed environment is always a challenge for traditional database management systems. NoSQL key-value database overcomes this by providing a platform which has very efficient scale-out architecture. So the advantage is that it can support millions of users and huge volume of data. Enterprise applications like social media, web, mobile and e-commerce are the perfect candidates for this type of NoSQL DB.
- Scalable BI and analytical applications: The volume and velocity of data is growing rapidly in most of the enterprises. So handling analytic applications with huge volume of data in a traditional RDBMS is very difficult. Many enterprises are wasting lot of valuable time, just to load, unload and query warehouses to support their analytics applications. In NoSQL key-value database, the same analytics job can be performed 10 to 50 times faster compared to traditional RDBMS.
- Applications which require synchronized online and offline data sets: In the age of smart devices, like tablet PCs, smart phones, mobile phones, sometimes applications run in a offline mode. NoSQL key-value architecture supports disconnected clients and allows mobile apps to run in an offline mode. And the synchronization is done when the application is again connected with the database server.
- Real time analytic applications: Real time analytics applications are very critical to manage. Most of these applications collect data from different sources and then perform real time analytics. These types of applications include stock market analysis, fraud detection, risk analysis etc. NoSQL key-value store is very much suitable for supporting these types of real time analytics applications.
- Small to medium sized embedded database applications: Many business applications need only basic data storage and retrieval. So they do not want to take the overhead of traditional RDBMSs. NoSQL key-value database allows these type of applications to embed a low cost DBMS engine and solve their problem.
Among various types of NoSQL databases, Key-value store is the simplest one and widely used across different applications.