Database decision criteria

Decision criteria for a (NoSQL) database

We base our main criteria on the CAP theorem.
This theorem, proposed by Eric Brewer, states that it is impossible for a distributed computer system to simultaneously provide more than two out of three of the following guarantees:
1) Consistency
Every read receives the most recent write or an error
2) Availability
Every request receives a (non-error) response – without guarantee that it contains the most recent write
3) Partition tolerance
The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes
In other words, the CAP Theorem states that in the presence of a network partition, one has to choose between consistency and availability.
Note that consistency as defined in the CAP Theorem is quite different from the consistency guaranteed in ACID database transactions.
(from Wikipedia)

This lead to the drawing of a triangle, of which each vertex represent one of the three characteristics.
Any solution can be associated to one of the line joining 2 vertices, like in the following 2 drawing:

or, the same but with more details and software name:


Beside this first generic criteria, we have summarized various positive and negative point for many NoSQL solutions in the next pages.