Fondamentaux des modèles NoSQL : Clé-valeur, distribution, imbrication, schema-less

Fondamental

  • Logique de dépôt uniquement (stocker et retrouver) ;

  • c'est la couche applicative qui fait tout le travail (traitement, cohérence...).

Modèle de stockage clé-valeur

Les données sont des valeurs auxquelles on accède par une clé artificielle.

Les données ne sont plus des lignes stockées dans des tables.

Identification

Les clés d'identification sur des clés artificielles, en général unique à l'échelle de la BD, voire du monde :

  • Object Identifiers (OID)

  • Universally Unique IDentifier (UUID)

  • Uniform Resource Identifier (URI)

Pointeurs physiques

On stocke des pointeurs physiques pour relier les données.

Imbrication

Structure des valeurs stockées connue par le serveur (RO, JSON, XML, structure interne de type colonne...)

Partitionnement et distribution (sharding)

Les données sont partitionnées horizontalement et distribuées sur les nœuds d'un cluster.

On utilise par exemple une clé de hashage pour distribuer les données.

Schema-less

Les bases NoSQL se fondent sur une approche dite schema-less, c'est à dire sans schéma logique défini a priori.

L'équivalent du CREATE TABLE en SQL n'est soit pas nécessaire, soit même pas possible ; on peut directement faire l'équivalent de INSERT INTO.

Cela apporte de la souplesse et de la rapidité, mais se paye avec moins de contrôle et donc de cohérence des données.

Le mouvement NoSQL tend à réintégrer des fonctions de schématisation a priori, à l'instar de ce qui se fait en XML : le schéma est optionnel, mais conseillé en contexte de contrôle de cohérence.