In this article, we will look at the basics of NoSQL and advantages/disadvantages.

NoSQL stands for Not Only SQL. It is widely used in big data and other real-time web applications. It supports handling variety of data: structured, semi-structured and unstructured.

What is NoSQL?

– It is non-relational

            . It doesn’t adhere to relational data model 

             . Its key-value pairs, document-oriented, column oriented, graph-based databases.

– It is distributed

            . Data is distributed across several nodes in a cluster

– Offer no support for ACID Properties (Atomicity, Consistency, Isolation, Durability) & it adheres to CAP theorem (Consistency, Availability and Partition Tolerance)

– No fixed table schema

            . Don’t mandate for the data to adhere to any schema structure

Types of NoSQL Databases:

  1. Key-value: Stores data as key-value pairs

Ex. User for shopping cart, web user data analysis

  • Document:  Stores data in collection containing documents (e.g., JSON)

Ex. Used for Real time analytics, logging

  • Column: Each storage block has data from only one column

Ex. Analyse web user actions, sensor feeds

  • Graph: Stores data in nodes.

Ex. Recommendation, up-sell/cross-sell, network modelling

TypeDatabases
Key-ValueAmazon Dynamo DB, Redis, Oracle No SQL, Riak, AeroSpike, Berkeley DB, Membase, Infinity DB, Couchbase, Voldemort
DocumentMongoDB, CouchDB, Mark Logic, DocumentDB, Informix, RavenDB , Cosmos DB
ColumnCassandra, Maria DB, HBase, Hypertable, Apache Parquet, Apache Kudu, Crate DB
GraphNeo4J, Infinite Graph, Graph DB, Memgraph, Fauna DB

Advantages of NoSQL Database:

  • Supports variety of huge data – Structured, semi-structured and unstructured
  • Scalability:
    • It can scale up and down rapidly
    •  It will be able to handle 1,00,000 + database reads & write per second
    •  Able to distribute data across 100+ cluster nodes in multiple data centers
    • Able to store 1 billion + documents
  • Schema flexibility
  • Low operational cost & easy to implement
  • Relaxation on data consistency
  • Supports multiple node replication & partitioning
    • Sharding: Supports auto-sharding and automatically spread data across multiple servers so that when server goes down, it pulls up backup quickly without data loss & application downtime
    • Replication: Multiple copies of data stored across multiple servers across data centers for high availability and fault tolerance.

Disadvantages of NoSQL Database:

  • Doesn’t support JOINs
  • Doesn’t have SQL interface
  • No easy integration with application supporting SQL

Hope this article was helpful.