Non-Relational Structured Query Language (NoSQL)
Database systems that are not table-based and do not use the SQL language are commonly referred to as NoSQL. Such database systems are often preferred for large-scale, distributed applications.
NoSQL databases take a document-based approach, such as JSON, XML, or other document types, rather than using tables and columns as in relational database systems. These documents are identified by a specific key or ID and each document has different fields. This type of structure can be more efficient, especially when working with a wide variety of flexible data types.
NoSQL databases are often associated with high performance, high scalability, high availability, and database management that requires less configuration. As such, it has become a popular choice for large-scale web applications, cloud-based applications, and other distributed applications.
There are several types of NoSQL databases, these are:
Key-value storage: Holds a key and a corresponding value for each item. For example, Redis is one such database.
Column family storage: It holds records consisting of several columns held under a particular key. Apache HBase is one such database.
Document storage: Holds documents containing several fields, held under a specific key. MongoDB is one such database.
Graph storage: Used to store and manage graph data. Neo4j is one such database.
NoSQL databases are designed to meet the needs of modern applications that work with big data. However, as with any database system, NoSQL databases have their own advantages and disadvantages and should be chosen according to the right use cases.
Examples of NoSQL databases are:
MongoDB: Known as document database. It stores JSON-like documents and is featured with scalable, high-performance and fast query processing.
Cassandra: Known as a distributed, column family database. It is scalable and high-performing, and works efficiently when working with large datasets.
Redis: Known as key-value store. It stores data in memory and provides fast access. It’s also ideal for a variety of use cases such as sequencing, transaction logging, and chat applications.
Neo4j: Known as graphical database. It is used to store and manage relational data and works with graphic elements such as lines, nodes, and features.
Couchbase: Known as key-value and document database. It offers high performance, scalability and fast data processing features.
Amazon DynamoDB: Known as a key-value and document database. It is offered as a fully managed service and provides scalability, high performance and high availability.
Riak: Known as a distributed key-value store. It provides high scalability, high availability and high performance.
These are just a few examples, the number of NoSQL databases is constantly growing and there may be different types preferred for different use cases.