AnnoncePrésentation de MongoDB 8.0, la plus rapide des MongoDB ! En savoir plus >
AnnonceVoyage AI rejoint MongoDB pour développer des applications d'IA plus précises et plus fiables sur Atlas. En savoir plus >

Qu’est-ce que NoSQL ?

Déployez un cluster NoSQL gratuitement
Essayez une base de données NoSQL avec Atlas

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 se déclinent en plusieurs types en fonction de leur modèle de données. Les principaux types 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 utilisateur é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 ?

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 de 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 sont apparus : les bases de données orientées document, les bases de données clé-valeur, les bases de données orientées 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 document

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 orientées document 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.

Exemples de bases de données orientées document : MongoDB et Couchbase. Un document type se présente comme suit :

 

 

Bases de données clé-valeur

Les bases clé-valeur sont un type de base de données plus simple dans lequel 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. Une vue simplifiée des données stockées dans une base de données clé-valeur est présentée ci-dessous :

 

 

Magasins de données orientés colonne

Les bases orientées 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 bases orientées 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 bases orientées colonnes. Voici un exemple typique de stockage de données dans une base orientée colonnes :

 

name id email dobcity
Foo bar12345 foo@bar.com Some city
Carn Yale34521bar@foo.com 12-05-1972

 

Bases de données graphiques

Une base de données graphique stocke les données sous 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 offre également des capacités de parcours de graphes grâce à l’étape $graphLookup du pipeline d’agrégation. Voici un exemple de la façon dont les données sont stockées :

Bases de données multimodèles

Les bases de données multimodèles prennent en charge plusieurs types de modèles de données NoSQL afin que les développeurs puissent choisir en fonction des exigences de leur application. Ces bases de données disposent d’un moteur de base de données unifié qui peut gérer plusieurs modèles de données au sein d’une instance de base de données. CosmosDB et ArangoDB en sont des exemples.

Comparaison rapide des types de bases de données – NoSQL

Chacune des bases de données NoSQL présente des fonctionnalités différentes. Par exemple, les bases de données graphiques peuvent mieux convenir à l’analyse des relations complexes et des schémas entre les entités, tandis que les bases de données orientées document offrent un moyen plus souple et plus naturel de stocker et d’extraire de grands volumes de données de types comparables à ceux des documents. Le choix de la base de données dépend du cas d’utilisation que vous souhaitez développer.

Pour en savoir plus, consultez Comprendre les différents types de bases de données NoSQL.

Bref historique des bases de données NoSQL

Les bases de données NoSQL sont apparues à la fin des années 2000, lorsque le coût du stockage a considérablement diminué. L’époque où il fallait créer un modèle de données complexe et difficile à gérer pour éviter la duplication des données est révolue. Les bases de données NoSQL sont optimisées pour la productivité des développeurs.

Alors que les coûts de stockage diminuaient rapidement, la quantité de données que les applications devaient stocker et interroger augmentait. Ces données étant de formes et de tailles différentes – structurées, semi-structurées et non structurées – il devenait quasiment impossible de définir le schéma à l’avance. Les bases de données NoSQL permettent aux développeurs de stocker d’énormes quantités de données non structurées, ce qui leur offre une grande flexibilité.

Au début des années 2000, un article publié par Google à propos de BigTable, la base de données orientée colonnes, a décrit toutes les possibilités qu’offre un système de stockage distribué. L’année 2009 a été marquée par l’essor des bases de données NoSQL, avec l’arrivée de deux bases de données orientées document, MongoDB et CouchDB.

Dans les années 2010, différents types de bases de données NoSQL sont apparus et l’adoption de NoSQL s’est généralisée, les entreprises étant de plus en plus axées sur les données.

En outre, le Manifeste Agile gagnant en popularité, les ingénieurs en informatique repensaient la manière dont ils développaient les logiciels. Ils ont dû s’adapter rapidement à l’évolution des exigences, itérer et apporter des modifications à l’ensemble de leur pile logicielle, jusqu’à la base de données. Les bases de données NoSQL leur ont offert cette flexibilité.

Le cloud computing étant aussi en plein essor, les développeurs ont commencé à utiliser des clouds publics pour héberger leurs applications et leurs données. Ils souhaitaient pouvoir distribuer les données sur plusieurs serveurs et dans plusieurs régions afin de rendre leurs applications résilientes, les répartir au lieu de les augmenter et les géolocaliser de manière intelligente. Certaines bases de données NoSQL, telles que MongoDB Atlas, offrent ces fonctionnalités.

En raison de la croissance exponentielle de la digitalisation, les entreprises collectent aujourd’hui autant de données non structurées que possible. Pour pouvoir analyser et tirer des informations exploitables en temps réel de ces mégadonnées, les entreprises ont besoin de solutions modernes qui vont au-delà du simple stockage. Elles ont besoin d’une plateforme qui permette de répartir, de transformer et de visualiser les données facilement, de créer des tableaux de bord, des rapports et des graphiques, et de travailler avec l’IA et des outils de business intelligence pour accélérer leur productivité. En raison de leur nature flexible et distribuée, les bases de données NoSQL comme MongoDB excellent dans ces tâches.

Caractéristiques des bases de données NoSQL

Les bases de données NoSQL sont flexibles, évolutives et distribuées. Différents types de bases de données NoSQL ont leurs propres fonctionnalités uniques.

De manière générale, les bases de données NoSQL présentent les caractéristiques suivantes :

Conformité BASE

Les bases de données NoSQL sont conformes au modèle BASE (Basic Availability Soft State Eventual Consistency) qui donne la priorité à la disponibilité plutôt qu’à la cohérence. La disponibilité de base fait référence à la capacité du système à tolérer une défaillance partielle (comme la perte d’un nœud). L’état souple signifie que le système autorise des incohérences temporaires avant d’atteindre automatiquement la cohérence au fil du temps. La conformité BASE garantit une haute disponibilité, un traitement plus rapide des données, l’évolutivité et la flexibilité. Cependant, il est possible de configurer MongoDB pour assurer la conformité ACID multidocuments.

Découvrez tous les avantages des bases de données NoSQL.

Exemple de base de données relationnelle vs base de données NoSQL

Considérons un exemple de stockage d’informations concernant un utilisateur et ses loisirs. Nous devons stocker le prénom, le nom, le numéro de téléphone portable, la ville et les loisirs de cet utilisateur.

Dans un système de gestion de bases de données relationnelles (SGBDR), nous créerions probablement deux tables : une pour les utilisateurs et une pour les loisirs.

Afin de récupérer toutes les informations associées à un utilisateur et à ses loisirs, les informations des tables Utilisateurs et Loisirs devront être regroupées.

Le modèle de données que nous concevons pour une base de données NoSQL dépend du type de base de données NoSQL que nous choisissons. Examinons comment stocker les mêmes informations concernant un utilisateur et ses loisirs dans une base de données orientée document comme MongoDB.

Pour récupérer toutes ces informations, un seul document peut être extrait de la base de données. Aucune jointure n’est nécessaire, ce qui permet d’accélérer les requêtes.

Pour voir une version plus détaillée de cet exemple de modélisation de données, consultez Correspondance des termes et concepts entre SQL et MongoDB.

Différences entre les bases de données SGBDR et les bases de données NoSQL

Il existe de nombreuses différences entre les systèmes de gestion de bases de données relationnelles et de bases de données non relationnelles. L’une des principales différences est la manière dont les données sont modélisées dans la base de données. Voici les principales différences entre chaque fonctionnalité :

Modélisation des données

NoSQL : les modèles de données varient en fonction du type de base de données NoSQL utilisée (par exemple, clé-valeur, orientée document, graphique ou colonnes), et sont adaptés aux données semi-structurées et non structurées.

SGBDR : un SGBDR utilise une structure de données tabulaires, les données étant représentées sous la forme d’un ensemble de lignes et de colonnes ; ce modèle convient aux données structurées.

Schéma

NoSQL : fournit un schéma flexible dans lequel chaque ensemble de paires document/ligne/colonne/clé-valeur peut contenir différents types de données. Il est plus facile de modifier le schéma, si nécessaire, du fait de sa flexibilité.

SGBDR : schéma fixe dans lequel chaque ligne doit contenir les mêmes types de colonnes prédéfinies. Il est difficile de modifier le schéma une fois les données stockées.

Langage de requête

NoSQL : varie en fonction du type de base de données NoSQL utilisé. Par exemple, MongoDB utilise MQL et Neo4J utilise Cypher.

SGBDR : ce système utilise un langage de requête structuré (SQL).

Évolutivité

NoSQL : NoSQL est conçu pour le scaling vertical et horizontal.

SGBDR : un SGBDR est conçu pour le scaling vertical. Cependant, il permet d’étendre les capacités limitées du scaling horizontal.

Relations de données

NoSQL : les relations peuvent être imbriquées, explicites ou implicites.

SGBDR : les relations sont définies par des clés étrangères et accessibles à l’aide de jointures.

Type de transaction

NoSQL : les transactions sont conformes au modèle ACID ou au modèle BASE.

SGBDR : les transactions sont conformes au modèle ACID.

Performance

NoSQL : NoSQL convient au traitement en temps réel, à l’analyse big data et aux environnements distribués.

SGBDR : SGBDR convient aux charges de travail transactionnelles et aux opérations de lecture intensives.

Cohérence des données

NoSQL : offre une cohérence finale dans la plupart des cas.

SGBDR : offre une grande cohérence des données.

Calcul distribué

NoSQL : l’une des principales raisons de l’introduction de NoSQL était le calcul distribué ; les bases de données NoSQL prennent en charge le stockage de données distribuées, le scaling vertical et horizontal via le partitionnement, la réplication et le clustering.

SGBDR : les SGBDR prennent en charge le calcul distribué par le biais du clustering et de la réplication. Cependant, ces systèmes sont moins évolutifs et flexibles car ils n’ont pas été conçus à l’origine pour prendre en charge une architecture distribuée.

Tolérance aux pannes

NoSQL : NoSQL intègre une tolérance aux pannes et une haute disponibilité grâce à la réplication des données.

SGBDR : les SGBDR utilisent des mécanismes de réplication, de sauvegarde et de récupération. Cependant, comme ils sont spécifiquement conçus pour ces mécanismes, il peut être nécessaire d’implémenter des fonctionnalités supplémentaires comme la reprise après sinistre lors du développement de l’application.

Partitionnement des données

NoSQL : s’effectue par le biais du sharding et de la réplication.

SGBDR : prend en charge le partitionnement basé sur des tables et l’élimination des partitions.

Apprenez-en davantage sur le partitionnement des données ici.

Mappage de données aux objets

NoSQL : NoSQL stocke les données de différentes manières, par exemple sous forme de documents JSON, de magasins orientés colonnes ou de paires clé-valeur. Il fournit une abstraction via les frameworks ODM (mappage données-objets) pour travailler avec les données NoSQL de manière orientée objet.

SGBDR : un SGBDR s’appuie davantage sur le mappage des données aux objets, de sorte que l’intégration entre les colonnes de la base de données et le code de l’application orienté objet est transparente.

Pour en savoir plus sur les différences entre les bases de données relationnelles et les bases de données NoSQL, lisez l’article Bases de données NoSQL vs SQL.

Cas d’utilisation NoSQL

Les systèmes de base de données NoSQL sont utilisés dans presque tous les secteurs, pour l’analyse en temps réel, la gestion de contenu, les applications IoT, les systèmes de recommandation, la détection des fraudes, la gestion des catalogues de produits et de nombreuses autres activités. Les cas d’utilisation vont des plus critiques (par exemple, stockage de données financières et dossiers médicaux) aux plus ludiques et futiles (par exemple, stockage des données IoT provenant d’un bac à litière intelligent pour chat).

Quand faut-il utiliser NoSQL ?

Au moment de choisir une base de données NoSQL, les décideurs s’appuient généralement sur un ou plusieurs critères de sélection :

  • Développement Agile rapide
  • Stockage de données structurées et semi-structurées
  • Volumes de données très élevés
  • Exigences d’une architecture à répartition horizontale
  • Paradigmes d’application modernes tels que les microservices et le streaming en temps réel

Pour plus d’informations sur les critères énoncés ci-dessus, consultez Quand utiliser les bases de données NoSQL et Explorer des exemples de bases de données NoSQL.

Idées reçues sur les bases de données NoSQL

Au fil des ans, de nombreuses idées fausses concernant les bases de données NoSQL se sont répandues au sein de la communauté des développeurs. Dans cette section, nous abordons deux des idées reçues les plus courantes.

Idée reçue : les données relationnelles sont mieux adaptées aux bases de données relationnelles

L’idée courante selon laquelle les bases de données NoSQL ou les bases de données non relationnelles ne stockent pas correctement les données relationnelles est fausse. Les bases de données NoSQL peuvent stocker des données relationnelles, mais elles les stockent différemment des bases de données relationnelles.

En réalité, par rapport aux bases de données relationnelles, beaucoup considèrent que la modélisation des données relationnelles dans les bases de données NoSQL est plus facile que dans les bases de données relationnelles, car les données associées n’ont pas besoin d’être réparties entre les tables. Les modèles de données NoSQL permettent d’imbriquer des données connexes dans une structure de données unique.

Idée reçue : les bases de données NoSQL ne prennent pas en charge les transactions ACID

L’idée courante selon laquelle les bases de données NoSQL ne prennent pas en charge les transactions ACID est une autre idée reçue. Certaines bases de données NoSQL, comme MongoDB, prennent en effet en charge les transactions ACID.

Notez que la manière dont les données sont modélisées dans les bases de données NoSQL peut éliminer le besoin de transactions impliquant plusieurs enregistrements dans de nombreux cas d’utilisation. Prenons l’exemple précédent où nous avons stocké des informations concernant un utilisateur et ses loisirs à la fois dans un modèle relationnel et dans un magasin de documents. Pour garantir que ces informations sont toutes actualisées ensemble dans une base de données relationnelle, nous devons utiliser une transaction pour mettre à jour les enregistrements dans deux tables. Pour faire de même dans un magasin de documents, nous pouvons mettre à jour un seul document, sans nécessiter de transaction multi-enregistrements.

Pour en savoir plus sur les idées reçues, lisez l’article Tout ce que vous savez sur MongoDB est faux.

Tutoriel sur les requêtes NoSQL

Vous pouvez commencer avec MongoDB, la base de données NoSQL la plus populaire au monde, selon DB-Engines. La façon la plus simple de démarrer avec MongoDB est d’utiliser MongoDB Atlas. Atlas est la base de données entièrement gérée en tant que service de MongoDB. Atlas propose un niveau gratuit à vie, que vous pouvez utiliser pour explorer le produit. Consultez le tutoriel MongoDB Atlas pour commencer.

Pour continuer à interagir avec vos données, vous pouvez utiliser Atlas Data Explorer pour insérer de nouveaux documents, modifier des documents existants et supprimer des documents.

Lorsque vous êtes prêt à lancer des requêtes plus avancées qui agrègent vos données, créez un pipeline d’agrégation. Le framework d’agrégation est un outil incroyablement puissant pour l’analyse de vos données. Pour en savoir plus, suivez le cours gratuit de MongoDB University M121 sur le framework d’agrégation MongoDB.

Lorsque vous souhaitez visualiser vos données, consultez la page MongoDB Atlas Charts. Les Charts vous permettent de créer des tableaux de bord remplis de visualisations de vos données.

Résumé

Les bases de données NoSQL offrent de nombreux avantages, notamment des modèles de données flexibles, un scaling horizontal, des requêtes ultra-rapides et une facilité d’utilisation pour les développeurs. Les bases de données NoSQL sont disponibles dans une variété de types, notamment des magasins de documents, des bases de données clé-valeur, des magasins orientés colonnes, des bases de données graphiques et des bases de données multimodèles.

MongoDB est la base de données NoSQL la plus populaire au monde. Apprenez-en davantage sur MongoDB Atlas, et essayez la version gratuite.

Vous avez hâte d’en savoir plus maintenant que vous avez votre propre compte Atlas ? Rendez-vous sur le site MongoDB University où vous pourrez suivre une formation en ligne gratuite dispensée par des ingénieurs de MongoDB et obtenir une certification MongoDB. Les guides de démarrage rapide sont un autre excellent point de départ ; ils vous permettront de vous familiariser rapidement avec votre langage de programmation préféré.

FAQ

Cet article a été écrit par Lauren Schaefer, conceptrice en développement MongoDB.

En savoir plus sur les principales différences entre les bases de données NoSQL et SQL

Ressources NoSQL connexes

En savoir plus

Commencez avec MongoDB Atlas dès aujourd’hui

Commencez en quelques secondes. Nos clusters gratuits sont fournis avec une capacité de stockage de 512 Mo afin que vous puissiez tester des exemples de données et vous familiariser avec notre plateforme.
Essai gratuitContacter le service commercial
PREMIERS PAS :
  • Plus de 125 régions dans le monde
  • Exemples de jeux de données
  • Authentification permanente
  • Chiffrement de bout en bout
  • Outils de ligne de commande