NoSQL is a term which is used for describing non relational databases, which are at the same time high performing ones. Variety of data models are utilised by these databases. These data models generally include columnar, key-value, graph, and document. They have become popular because of the simple reason that they are highly available, scalable, easy to develop, and essentially resilient.
Multiple resources associated with NoSQL databases –
- Data Model
NoSQL is the short form of Non-relational databases, which don’t enforce a schema generally. For retrieving column sets, values, and semi-structured JSON/XML/other documents that have attributes related to them, NoSQL databases are used.
- ACID properties
Trading of some ACID properties of RDBMS happen for an enhanced data model, having horizontal scaling facility. NoSQL databases are therefore used in places where traditional RDBMS fail to overcome architectural challenges.
High performance is ensured through implementation of network latency, size of underlying cloud structure, and calling application.
Distributed low-cost hardware clusters are used for increasing throughput without having the requirement of increasing latency.
Application developers can store as well as retrieve in-memory data structures by using APIs that are object based. The apps, with the help of partition keys, can look up column sets, key value pairs, or semi-structured documents that contain serialised objects/attributes of apps.
Tools that are offered by NoSQL databases include management of clusters as well as scaling. It must be pointed out that apps are nothing but main interface to underlying data.
Types of NoSQL Databases –
There are basically 4 kinds of NoSQL databases and they are Columnar Databases, In-Memory Key-Value Stores, Graph Databases, and Document Databases. While the columnar databases, writing/reading columns are optimized instead of the row data. Semi-structured data in the form of documents are stored with the help of document databases. The edges, which are nothing but vertices and directed links, are stored with the help of Graph databases. In-Memory Key-Value Stores have been optimized to deal with read-heavy application workloads.