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:[...]})OutputNo fixed schemaDocument store
Erreurs courantes
- Assuming NoSQL needs no data modeling
- Document structure and indexes still need design
Termes associés
SQL
SQL (Structured Query Language) est le langage de requête standard des bases de données relationnelles, définissant et manipulant les données de façon déclarative (DDL/DML/DQL/DCL). GLOSSAIRE
ACID
ACID désigne les quatre propriétés des transactions relationnelles : atomicité (tout ou rien), cohérence (contraintes maintenues), isolation (concurrence sans interférence), durabilité (persistance après commit). GLOSSAIRE
BASE
BASE est le modèle NoSQL à cohérence faible : fondamentalement disponible, état souple, éventuellement cohérent ; il échange la forte cohérence contre disponibilité et scalabilité. GLOSSAIRE
CAP Theorem
Le théorème CAP énonce qu'en cas de partition réseau, un système distribué ne peut satisfaire qu'une seule des deux propriétés entre cohérence (C) et disponibilité (A) ; les trois ne peuvent tenir simultanément. GLOSSAIRE