Introduction
Pendant longtemps, les bases de données relationnelles (SQL) ont dominé le stockage et la gestion des données. Cependant, avec l'évolution des besoins en stockage de données, une nouvelle catégorie de bases de données est apparue : les bases de données NoSQL.
Ce cours vous introduira aux concepts clés du NoSQL, ses avantages et inconvénients, ainsi que les différentes familles de bases de données NoSQL.
Pourquoi le NoSQL ?
Limites du modèle relationnel (SQL)
Le modèle relationnel SQL présente plusieurs limites :
- Difficulté d'extension horizontale : La cohérence stricte des données empêche la répartition facile sur plusieurs serveurs.
- Jointures coûteuses : Les données sont réparties dans plusieurs tables, ce qui nécessite des jointures complexes et coûteuses en ressources.
- Incompatibilité des types de données : Les types de données SQL ne correspondent pas toujours aux types utilisés dans les langages de programmation modernes.
- Rigidité du schéma : Obligation de définir précisément les structures de données à l'avance, avec une difficulté à les modifier par la suite.
Qu'est-ce que le NoSQL ?
NoSQL signifie Not Only SQL. Il ne remplace pas SQL mais le complète dans des cas spécifiques où la flexibilité, la performance et l'évolutivité sont essentielles.
Avantages et inconvénients du NoSQL
Avantages
- Performance accrue : Le NoSQL ne vérifie pas systématiquement la cohérence des données, ce qui accélère les opérations.
- Facilité d'extension horizontale : Possibilité de distribuer les données sur plusieurs serveurs à moindre coût.
- Flexibilité du schéma : Stockage simplifié sous forme de paires clé-valeur ou documents structurés (JSON/XML).
- Open-source : La plupart des bases NoSQL sont gratuites et open-source.