NoSQL Databases

NoSQL has become a popular term but a more descriptive one would be non-relational for describing these kinds of database systems. Non-relational databases are not a new thing, they were commonly used in early mainframe computers.

NoSQL Use Cases

The CAP Theorem

The CAP theorem was proposed by Eric Brewer in 2000. It is often used to generalize tradeoffs between different types of databases. According to the CAP theorem you can at most only guarantee 2 out of 3 desirable properties:

Available in the meaning always being able to read from and write to. Relational Databases trend towards consistency and availability (CA) whereas NoSQL databases trend towards available and partition tolerance (AP).

CAP tradeoffs may be somewhat irrelevant if you don't aim to serve a huge number of simultaneous clients. Non-relational databases do not automatically solve scalability issues but offer some flexibilities that typical relational DBMS lack.

Types of NoSQL Databases

Key-Value Store

Document Stores

Wide Column Stores

Big Table/Tabular DBs

Graph Databases

Object Databases

A Selection of NoSQL Databases

CouchDB

MongoDB

Cassandra

Riak

Redis