What is NoSQL DBMS?
NoSQL databases and management systems are currently popular in the storage industry. The coming of big data is the main reason behind the growth and popularity of NoSQL databases. The current database management systems are designed for structured data with predefined schema, but they find it very difficult to deal with semi-structured, unstructured or other forms of data, popularly known as big data. NoSQL database management systems are not a replacement for traditional RDBMS. They are here to deal with the unstructured data problem.
Database Management Systems:
Databases are storage spaces. These spaces are systematically organized to store different types of data in a structured way. This helps us to retrieve, and manage, whereas NoSQL stores unstructured and semi-structured data both.
A database management system is a set of software programs. It can handle storing, extracting and modifying data along with the administrative activities. All the relational databases have a predefined model that defines the structure of the data and the storage method. But in NoSQL storage, the schema is dynamically defined. There are different DBMSs for relational and non-relational models.
Till now, the unstructured data is first structured and then load into the RDBMS. Now, to deal with the big data, NoSQL provides a mechanism to store and retrieve data, modeled in a non-relational way, that is without tabular relation. There are several NoSQL databases available in the market to deal with specific cases of semi-structured, unstructured or other forms of data.
NoSQL DBMS is designed to manage unstructured data. It provides a schema-less model, high performance, scalability, distributed storage, cloud enablement.
Types of NoSQL DBMSs:
The unstructured data has four dimensions – volume, velocity, variety and complexity. So, the NoSQL DBMS is designed to have multiple operational models based on the data and target functionality. There are four types of NoSQL DBMSs:
Key-value-based NoSQL storage is the backbone of the non-relational model. The value of any data is stored with a matching key and the data is fetched with the help of the key. It has high performance with easy scalability support. The key-value-based model is suitable for storing basic information like user profiles, user sessions, shopping cart data, queuing and live information. These are not suitable for performing data-based query, multiple key-based operations or relationship-based fetching.
A column-based DBMS model stores related data in multiple columns and the related data is identified by a row key. It may have different columns for different rows. New columns can be added to any row at any point of time. It is suitable for storing large volumes of unstructured and non-volatile data. It is mostly used for log aggregation, blogging platforms. It is not recommended for the changing query pattern.
A document-based model is a key-value store. The document is stored in the value part and retrieved by the associated key. These documents must have a hierarchical and self-defining structure. It can be XML, JSON or in any other form. It is suitable for storing nested information, CMSs, web-based and real-time analytics, e-commerce applications, etc. It is not suitable for complex operations in multiple documents or complex queries.
A graph database stores entities with their relationships. These entities are known as nodes and they have their own properties and relations are known as edges. This is like a tree structure where all the nodes are connected based on their relationships. Graph databases are suitable where the data has strong relationships, like social networks. However, it is not suitable where the data model does not have strong relationships among the entities because the success of the graph is mainly dependent on the relationship-based model.
Please note that NoSQL DBMS has been introduced to support the unstructured data in RDBMS.
- SQL DBMS follows a strong schema-based relational model, but NoSQL DBMS has schema-less model.
- RDBMS supports vertical scaling and NoSQL DBMS supports horizontal scaling.
- RDBMS is known for atomicity, consistency, isolation and durability, but NoSQL DBMS does not have them.
As we see now, the volume of unstructured data is going to grow, so NoSQL has a bright future, but it will not replace RDBMS. The relational use cases have no problems whatsoever. Multiple storage technologies will coexist for sure, to meet various requirements.