Qu’est-ce que NoSQL ?
Les bases de données NoSQL (ou « not only SQL ») stockent les données différemment des tables relationnelles. Les bases de données NoSQL sont disponibles dans différents types en fonction de leur modèle de données, dont les principaux sont document, clé-valeur, orientée colonnes et graphique. Elles fournissent des schémas flexibles et s’adaptent facilement à de grandes quantités de big data et à des charges d’utilisateurs élevées.
Dans cet article, vous apprendrez ce qu’est une base de données NoSQL, pourquoi (et quand !) vous devriez en utiliser une, et comment démarrer.
Sommaire
- Qu’est-ce qu’une base de données NoSQL ?
- Types de bases de données NoSQL
- Brève histoire des bases de données NoSQL
- Caractéristiques d'une base de données NoSQL
- Exemple de base de données relationnelle vs NoSQL
- Différences entre les RGBDR et les bases de données NoSQL
- Cas d'utilisation NoSQL
- Quand faut-il utiliser NoSQL ?
- Idées reçues sur les bases de données NoSQL
- Tutoriel sur les requêtes NoSQL
- Résumé
- FAQ
Qu'est-ce qu'une base de données NoSQL ?
Le terme « base de données NoSQL » est couramment employé pour désigner toute base de données non relationnelle. Certaines personnes disent que le terme « NoSQL » signifie « non-SQL », tandis que d'autres pensent qu’il signifie « pas seulement SQL ». Quoi qu’il en soit, la plupart s’accordent à dire que les bases de données NoSQL stockent les données de manière plus naturelle et plus flexible. NoSQL, contrairement à SQL, est une approche de la gestion des bases de données, tandis que SQL n’est qu’un langage de requête, semblable aux langages de requête des bases de données NoSQL.
Types de bases de données : NoSQL
Au fil du temps, quatre grands types de bases de données NoSQL ont émergé : les bases de données de documents, les bases de données clé-valeur, les magasins orientés colonnes et les bases de données graphiques. De nos jours, les bases de données multimodèles sont aussi de plus en plus utilisées.
Bases de données orientées documents
Une base de données orientée document stocke des données dans des documents de manière comparable aux objets JSON (JavaScript Object Notation). Chaque document contient des paires de champs et de valeurs. Les valeurs peuvent être de différents types, notamment des chaînes, des nombres, des valeurs booléennes, des tableaux ou d’autres objets. Les bases de données de documents offrent un modèle de données flexible, parfaitement adapté aux ensembles de données semi-structurées et généralement non structurées. Elles prennent également en charge les structures imbriquées, ce qui facilite la représentation de relations complexes ou de données hiérarchiques.
MongoDB et Couchbase sont des exemples de bases de données de documents. Un document standard est semblable à ce qui suit :
Bases de données clé-valeur
Un magasin clé-valeur est un type de base de données plus simple où chaque élément contient des clés et des valeurs. Chaque clé est unique et associée à une seule valeur. Elles sont utilisées pour la mise en cache et la gestion de session et offrent des performances élevées en lecture et en écriture, car elles stockent généralement les éléments en mémoire. Amazon DynamoDB et Redis en sont deux exemples. Voici une vue simple de données stockées dans une base de données clé-valeur :
Magasins orientés colonnes
Les magasins orientés colonnes stockent les données dans des tables, des lignes et des colonnes dynamiques. Les données sont stockées dans des tables. Toutefois, contrairement aux bases de données SQL traditionnelles, les magasins orientés colonnes sont flexibles, différentes lignes pouvant comporter différents ensembles de colonnes. Ces bases de données peuvent utiliser des techniques de compression de colonne pour réduire l’espace de stockage et améliorer les performances. La taille importante des lignes et des colonnes permet une récupération efficace des données disparates et volumineuses. Apache Cassandra et HBase sont des exemples de magasins orientés colonnes. Voici un exemple classique de la façon dont les données sont stockées dans une structure orientée colonnes :
name | id | dob | city | |
---|---|---|---|---|
Foo bar | 12345 | foo@bar.com | Some city | |
Carn Yale | 34521 | bar@foo.com | 12-05-1972 |
Bases de données graphiques
Une base de données graphique stocke les données sous la forme de nœuds et d'arêtes. Les nœuds stockent généralement des informations sur les personnes, les lieux et les objets (comme les noms), tandis que les arêtes stockent des informations sur les relations entre les nœuds. Ce mécanisme fonctionne bien pour les données fortement connectées, où les relations ou les schémas ne sont pas toujours évidents au départ. Les bases de données graphiques Neo4J et Amazon Neptune en sont des exemples. MongoDB fournit également des fonctionnalités de balayage de graphe à l’aide de l’étape $graphLookup du pipeline d’agrégation. Voici un exemple de la façon dont les données sont stockées :