Famille de systèmes de gestion de bases de données conçus pour stocker et interroger des données non structurées ou semi-structurées (comme du JSON, du XML ou des graphes), avec une forte capacité d’évolution (scalabilité) et une flexibilité de schéma.
Une base de données NoSQL (qui signifie « Not Only SQL », et non « pas de SQL ») est un type de base de données plus souple que les bases relationnelles classiques.
- Alors qu’une base SQL range les données dans des tableaux bien organisés avec des colonnes fixes (nom, prénom, date…),
- une base NoSQL accepte des formats variés :
- des documents (comme des fichiers JSON avec des champs qui changent d’un enregistrement à l’autre),
- des paires clé-valeur (comme un dictionnaire : « email » → « user@domaine.fr »),
- des colonnes flexibles (où chaque ligne peut avoir ses propres colonnes),
- ou des graphes (pour représenter des relations entre personnes, objets, etc.).
Ce modèle est particulièrement utile quand :
- les données sont très nombreuses (millions ou milliards d’enregistrements),
- leur structure change souvent,
- ou quand on a besoin de répartir la charge sur plusieurs serveurs (scalabilité horizontale).
Exemple concret :
Sur un réseau social, chaque utilisateur peut avoir un nombre différent d’amis, de publications, de préférences… Une base NoSQL permet de stocker ces profils sans imposer le même schéma à tout le monde.
Principaux types de bases NoSQL :
| Type | Description | Exemples |
|---|---|---|
| Document | Stocke des objets au format JSON/BSON | MongoDB, CouchDB |
| Clé-valeur | Associe une clé unique à une valeur simple ou complexe | Redis, Memcached |
| Colonne | Organise les données par familles de colonnes | Apache Cassandra, ScyllaDB |
| Graphe | Représente des entités et leurs relations | Neo4j, Amazon Neptune |
Cas d’usage courants :
- Applications mobiles et web à fort trafic,
- Internet des objets (IoT) et capteurs,
- Recommandations personnalisées (ex. : « Vous aimerez aussi… »),
- Stockage de logs ou d’événements en temps réel.
NoSQL ne remplace pas SQL — les deux modèles sont complémentaires. On choisit NoSQL quand la flexibilité, la montée en charge ou la variété des données est plus importante que les garanties strictes d’intégrité transactionnelle (ACID) offertes par les bases relationnelles.