- NoSQL is a type of database design that allows for storage and retrieval of data that is modeled in ways other than the tabular relations used in relational databases.
- It stands for "Not Only SQL" to emphasize that they may support SQL-like query languages.
- NoSQL databases are often used in big data and real-time web applications because of their flexibility, scalability, and speed.
There are four main types of NoSQL databases:
- Key-Value Stores: These are the simplest type of NoSQL databases. Each key is associated with one and only one value in a collection. Examples include
Redis and DynamoDB.
- Document Databases: These pair each key with a complex data structure known as a document. Documents can contain many different key-value pairs, or key-array pairs, or even nested documents. Examples include
MongoDB and CouchDB.
- Column-Family Databases: These store data in columns instead of rows and are highly scalable. Examples include
Cassandra and HBase.
- Graph Databases: These are used to store information about networks, such as social connections. Examples include
Neo4J and Amazon Neptune.
NoSQL is:
- Scalable:
- Can scale to manage increasing amounts of data
- They can be distributed across multiple servers to improve their performance and avoid any single point of failure.
- Good at handling alot of through-put, which is good for big data
- Non-relational:
- There is no fixed schema for say join operations
- Can store what ever you want
- Distributed:
- They can be stored across multiple nodes, which makes them fault talurent