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:
- 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
Type | Databases |
Key-Value | Amazon Dynamo DB, Redis, Oracle No SQL, Riak, AeroSpike, Berkeley DB, Membase, Infinity DB, Couchbase, Voldemort |
Document | MongoDB, CouchDB, Mark Logic, DocumentDB, Informix, RavenDB , Cosmos DB |
Column | Cassandra, Maria DB, HBase, Hypertable, Apache Parquet, Apache Kudu, Crate DB |
Graph | Neo4J, 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.