Aller au contenu
uencoder

NoSQL

NoSQL est le terme générique des bases de données non relationnelles, incluant les modèles document, clé-valeur, familles de colonnes et graphes, conçues pour l'évolutivité et des schémas flexibles.

Objectif

Répondre aux limites des bases relationnelles face aux volumes massifs de données, aux schémas flexibles et à la mise à l'échelle horizontale.

Mécanisme

Quatre grands types : document (MongoDB, documents JSON), clé-valeur (Redis, simple et rapide), familles de colonnes (Cassandra, lignes larges et creuses), graphe (Neo4j, dense en relations). Il troque une partie d'ACID contre la cohérence à terme BASE et la mise à l'échelle horizontale. Pas de schéma fixe (ou schéma flexible).

Cas d’usage

  • Mise à l'échelle horizontale de données massives
  • Schémas flexibles et dynamiques
  • Cache et stockage de sessions
  • Graphes sociaux et recommandations

Exemples

  • entrée
    db.users.insert({name:"Ada",tags:[...]})
    Output
    No fixed schema

    Document store

Erreurs courantes

Assuming NoSQL needs no data modeling
Document structure and indexes still need design

Termes associés

References