What is NoSQL database?

The name NoSQL itself tells us that it is "non-SQL" or "non-relational" database. Around 30 years back when the data used to be non-changing and smaller in size, traditional relational databases were more prominent like ORACLE, Postgres and so on which had fixed schemas. But during the last decade, the data has grown exponentially and it is also changing quickly. The traditional databases have failed to handle this BIG DATA effectively. So there was a need to introduce the database that can adapt itself with ever-changing data and that can handle the enormous size of data. And thus NoSQL databases came into the picture.

Nowadays NoSQL databases have been referred to as "Not Only SQL" databases which means that these databases may support SQL like query languages and can be a part of polygot persistent architecture along with other relational databases. The data structures used in the NoSQL database are more efficient than the data structures used by the relational database which makes the operations faster in the NoSQL database. Below are some of the features of NoSQL databases:

1. Flexibility: NoSQL databases offer flexible schema which makes NoSQL databases suitable for structured and unstructured data.

2. Scalability: NoSQL databases are scalable. It scale-out by using distributed clusters of hardware rather than scaling by adding expensive servers.

3. High Functionality: NoSQL provides high functional APIs and data types

4. High Performance: NoSQL database are designed for specific data models and access patterns that enable high performance

Most of the NoSQL databases offer "eventual consistency" in which database changes are propagated to all the nodes eventually, so queries for data might not get the updated data immediately or might lead to inaccurate data, a problem called as stale reads. Some NoSQL database also exhibits data loss. The other disadvantages include transaction management problems, Backup issues, and large document sizes in some of the NoSQL databases like MongoDB.

Types of NoSQL databases:

1. Key-Value: Key-Value stores use an associative array as a data model, the data is represented as key-value pairs where each key appears at most once in the collection. Some of the examples of Key-value stores are Memcached and Redis.

2. Document Store: In the document store, the data is represented as an object or JSON like document because it is an efficient and intuitive data model. MongoDB is one such example of the document store

3. Graph: This kind of database are suitable for the data which exhibits a relationship between them and can be represented in the form of a graph consisting of elements with finite relationships between them. Popular databases include Neo4j and Giraph.


Comments

Popular posts from this blog

Tricky Questions or Puzzles in C

Program to uncompress a string ie a2b3c4 to aabbbcccc

Number series arrangement puzzles