UNDERSTANDING THE BASICS OF NOSQL DATABASE
Published: 2022-04-04 20:51:04

## What Is 'NOSQL'?


Simply No/Non Structured Query Language [SQL].
It Can Also Be said to be 'Not Only SQL'.

A NoSQL Database is a mechanism for storage and retrieval of data, it is saved in JSON documents instead of columns and rows used by relational databases. NoSQL databases are used in real-time web applications and huge data. They may support SQL-like queries as well. That is why it is sometimes referred to as Not only SQL.


![NoSql](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t2nuvqfx5wyy75gfylsg.jpg)





## A Brief History Of NoSQL

"NoSQL" was only coined in the early 21st century, triggered by the needs of Web 2.0 companies. NoSQL developed at least in the beginning as a response to web data, the need for processing unstructured data, and the need for faster processing. The NoSQL model uses a *distributed database system*, meaning a system with multiple computers. The non-relational system is quicker, uses an ad-hoc approach for organizing data, and processes large amounts of differing kinds of data. For general research, NoSQL databases are the better choice for large, unstructured data sets compared with relational databases due to their speed and flexibility.

Limited SQL scalability has prompted the industry to develop and deploy a number of NoSQL database management systems, with a focus on performance, reliability, and consistency. The trend was driven by proprietary NoSQL databases developed by Google and Amazon. Eventually, open-source systems like MongoDB, Cassandra, and Hyper-table brought NoSQL within reach of everyone. 

##Storage Type

NoSQL uses data{JSON} storage optimized for specific purposes. Normally, NoSQL stores data in one of four categories:

1. Key-Value storage
2. Document storage
3. Wide Column storage
4. Graph database


![four categories](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q8xnfc69v4it841b8cui.jpg)


1. A key-value database[Storage] is a type of nonrelational database that uses a simple key-value method to store data. A key-value database stores data as a collection of key-value pairs in which a key serves as a unique identifier. Both keys and values can be anything, ranging from simple objects to complex compound objects.

2. A Document Store, also called a Document-Oriented Database, is similar to Key-Value Stores, but differ in the way the data gets processed, is a system designed for storage, retrieval, and managing “document-oriented information,” which is also referred to as semi-structured data.

3. A Wide-column database is a type of NoSQL database in which the names and format of the columns can vary across rows, even within the same table. Wide-column databases are also known as column family databases. 

4. A Graph Database is essentially a collection of relationships. Each memory (a node) symbolizes an entity (a business, person, or object). Each memory/node is connected to another. The connection is called an “edge” and represents a relationship between two nodes.

##List of Common NoSQL Databases



![examples](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xsuw7qfv8q8rhqm6gi9a.jpeg)


MongoDB: open-source and document-oriented NoSQL database. Uses JSON like documents to share the data and is written in C++.MongoDB is a very popular and highly scalable database.

REDIS: stands for *Remote Dictionary Server*. It is composed in ANSI C language, authorized under BSD, and is famous for a key-value store. Its an open-source database. It is an in-memory but persistent on-disk database.

Amazon DynamoDB: uses a NoSQL database model, allows documents, graphs & columnar amount of data models.

Cassandra: it was developed at Facebook for inbox search. It is a distributed data storage system to handle large amounts of structured data. Cassandra is written in Java. It offers Cassandra Query Language (CQL), a SQL-like language for querying the Cassandra Database.

Apache HBase: distributed and non-relational Hadoop database ideally suited for storing Big data. Designed for the BigTable database by Google etc .

Neo4j: It is a graph database management system developed by Neo4j, Inc. Described by its developers as an ACID-compliant transactional database with native graph storage and processing.

#When To Use NoSQL 


* HANDLING OF DIFFERENT FORMS OF DATA
A NoSQL database enables developers to handle and evolve the structure of several different forms of data efficiently. NoSQL databases are better designed to handle, store, and model structured, semi-structured, and even unstructured data in a single database.



* When you are required to follow modern software development practices, in your work place or open source contributions.


* NEED FOR A FASTER PACE OF DEVELOPMENT
If you need to fast-track your application development, NoSQL may be your best choice. The pace of development with NoSQL databases is a lot faster than with an SQL database.


* If you are using schema-less data.



I hope this article has helped you to have a better understanding of the NoSQL database and the various terms related to it. Thank you for reading.