📘 Cours : Introduction aux bases de
données NoSQL
1. Introduction
SQL (relationnel) : organisé en tables, lignes, colonnes, avec un schéma fixe.
NoSQL (Not Only SQL) : famille de systèmes de gestion de bases de données qui ne
reposent pas uniquement sur le modèle relationnel.
Conçu pour répondre aux besoins du Big Data, du temps réel, de la scalabilité et de
la souplesse des données.
2. Caractéristiques des bases NoSQL
Sans schéma rigide : flexibles, on peut ajouter de nouvelles propriétés sans redéfinir
la structure.
Évolutives horizontalement : ajout de serveurs (scalabilité) plus facile que les SGBD
relationnels.
Performances élevées : optimisées pour lecture/écriture rapide.
Adaptées aux données massives (volumineuses, variées, en évolution rapide).
Basées sur le principe BASE (Basically Available, Soft state, Eventually consistent)
contrairement à ACID (Atomicité, Cohérence, Isolation, Durabilité) des bases
relationnelles.
3. Les grands types de bases NoSQL
a) Bases clé–valeur
Principe : chaque élément est stocké sous forme clé → valeur.
Simples, très rapides pour rechercher une valeur à partir d’une clé.
Exemples : Redis, Riak, Amazon DynamoDB.
Cas d’usage : sessions utilisateurs, cache, paniers e-commerce.
b) Bases orientées documents
Les données sont stockées sous forme de documents JSON, BSON ou XML.
Structure flexible (chaque document peut avoir des champs différents).
Exemples : MongoDB, CouchDB.
Cas d’usage : applications web, gestion de contenu, réseaux sociaux.
c) Bases orientées colonnes
Organisation par colonnes au lieu de lignes (adapté aux données analytiques
massives).
Performantes pour l’agrégation et l’analyse.
Exemples : Apache Cassandra, HBase.
Cas d’usage : Big Data, IoT, statistiques en temps réel.
d) Bases orientées graphes
Les données sont représentées sous forme de nœuds (entités) et arêtes (relations).
Permettent de modéliser des réseaux complexes.
Exemples : Neo4j, OrientDB.
Cas d’usage : réseaux sociaux, moteurs de recommandation, analyse de fraude.
4. Différences SQL vs NoSQL
Critère SQL (relationnel) NoSQL (non relationnel)
Modèle de Basé sur des tables Basé sur des documents, clé-valeur,
données relationnelles colonnes, ou graphes
Fixe et structuré (doit être Flexible, souvent sans schéma
Schéma
défini à l'avance) (schema-less)
Requêtes spécifiques à chaque
Langage de SQL (Structured Query
système (ex : MongoDB query,
requête Language)
Gremlin...)
Verticale (ajouter plus de Horizontale (ajouter plus de
Scalabilité
puissance à un seul serveur) serveurs dans le réseau)
Optimisé pour les transactions Optimisé pour les grands volumes de
Performance
complexes et les relations données, haute disponibilité
Parfois limité ou partiel (BASE :
Transactions Oui (Atomicité, Cohérence,
Basically Available, Soft state,
(ACID) Isolation, Durabilité)
Eventually consistent)
MySQL, PostgreSQL, Oracle, MongoDB, Cassandra, Redis,
Exemples
SQL Server CouchDB, Neo4j
Systèmes bancaires, ERP, CRM,
Réseaux sociaux, IoT, big data,
Cas d’usage idéal applications avec relations
applications temps réel
complexes
Caractéristique SQL (Relationnel) NoSQL
5. Quand utiliser NoSQL ?
✅ Lorsque :
Le volume de données est énorme.
Les données sont non-structurées ou semi-structurées.
L’application doit être hautement disponible et scalable. (besoin de performance à
grande echelle)
Besoin de réactivité et performance en lecture/écriture.
❌ Éviter NoSQL si :
On a besoin d’une forte cohérence stricte et de transactions complexes (banques,
ERP).
Les données sont hautement structurées et relationnelles.
6. Exemples d’utilisation réelle
Facebook / Twitter : stockage des posts et interactions (documents + graphes).
Amazon / eBay : gestion des paniers et catalogues produits (clé–valeur, documents).
Netflix : recommandations personnalisées (graphes).
Google Bigtable : stockage massif et distribué (colonnes).
7. Conclusion
Les bases NoSQL complètent les bases relationnelles, elles ne les remplacent pas.
Elles sont adaptées aux nouvelles générations d’applications (web, cloud, big data).
Le choix dépend toujours du besoin fonctionnel et technique.