Structure et Flexibilité


Les bases NoSQL proposent des structures variées et très flexibles : clefs-valeurs, documents JSON, graphes, etc. Plusieurs concepts centraux pour les bases relationnelles, sont absents ou facultatifs en NoSQL, ce qui participe au gain en flexibilité : structure table/colonnes/ligne, types de données fixes, clefs étrangères, jointures.

Distribution, réplication et redondance

Les SGBD NoSQL sont adaptés pour le stockage distribué / réparti, sur plusieurs serveurs à la fois. La base est stockée par un réseau de serveurs, nommé cluster. Chaque serveur est un nœud du cluster. Le réseau est robuste et continue de fonctionner, même en cas de défaillance de certains nœuds.

Chaque donnée est répliquée sur plusieurs nœuds (replica). La panne de quelques nœuds n’occasionne pas de perte de données, ou d'inaccessibilité des données.

Enfin, plusieurs des clusters de secours peuvent être créés, capables de faire fonctionner la base avec toutes ses données. Si le premier cluster tombe en panne, la relève est prise. On parle de redondance.

Scalabilité

La distribution de la base permet une scalabilité horizontale (scale out). Pour augmenter le volume de stockage ou les performances, il suffit d’augmenter le nombre de serveurs.

A contrario, les bases relationnelles sont difficilement distribuables, et sont améliorées par scalabilité verticale (scale up). Il faut alors augmenter la capacité de stockage et les performances de l’unique serveur qui fait tourner la base, ce qui est limité et plus coûteux.

Langage de requête

Pour interagir avec un SGBDR, on lui transmet des requêtes SQL. Les SGBD NoSQL se passent généralement du SQL, qui est remplacé par une API Rest plus basique.

Il existe néanmoins quelques exceptions ou des SGBD NoSQL possédant des langages proches du SQL, comme Cassandra, avec le CQL (Cassandra Query Language).