NoSQL Databases

NoSQL databases are other type of databases which provide a mechanism to store and retrieve data other than the tabular form used in RDBMS.
NoSQL databases are schema-free, consistent, support easy replication, have simple API and can handle huge amount of data.
The main objective of NoSQL databases are:
- Simplicity of design.
- Horizontal scaling.
- Finer control over availability.
NoSQL database is faster than RDBMS because it uses different data structure compared to relational database. NoSQL database can store both structured and non-structured data like audio files, video files, documents, etc.
NoSQL database can be divided in three types according to its data storing nature:
- Key-value Store
- Column Store
- Document Store

Key-value Store
These databases are designed to store data in key-value pairs. These databases don?t have any schema and each data value contains an indexed key and a value for that key.
The popular examples of Key-value store databases are: Cassandra, DynamoDB, BerkeleyDB, Riak etc.
Column Store
These databases are used to store data in cells. These cells are grouped in columns of data, and these columns are further grouped into Column families. These column families can contain any number of columns.
The popular examples of Column store databases are: BigTable, HBase, and HyperTable etc.
Document Store
These databases follow the basic idea of key-value stores where “documents” contain complex data and each document is assigned with a unique key, which is used to retrieve the document.
These databases are used to store, retrieve, and manage document-oriented information, also known as semi-structured data.
The popular examples of document store databases are: CouchDB , MongoDb etc.