EventJoin us at AWS re:Invent 2024! Learn how to use MongoDB for AI use cases. Learn more >>

Comprendre les bases de données SQL et NoSQL

En 2024, le volume du marché du big data devrait atteindre 84 milliards de dollars pour la première fois. Étant donné qu'environ 2,5 quintillions d'octets de données sont générés chaque jour dans le monde (BDAN.com, 2024), cette croissance du marché est tout à fait logique et constitue l'un des facteurs déterminants du développement et de l'utilisation exponentiels des systèmes de bases de données.

Deux des types de bases de données les plus couramment utilisés sont les bases de données SQL (par exemple, les relational databases (bases de données relationnelles)) et les bases de données NoSQL. Lisez la suite pour en savoir plus sur les bases de données SQL et NoSQL, leur fonctionnement, les cas d'utilisation courants, ainsi que les avantages et les inconvénients de chaque type de base de données.

Table des matières

Le SQL, qui signifie langage de requête structuré, est un langage de programmation spécifique à un domaine (par exemple, un langage destiné à une tâche ou à un problème spécifique) qui est couramment utilisé pour des tâches telles que l'insertion, la mise à jour, les requêtes et la suppression de données dans une base de données. Le langage SQL est également utilisé pour créer et modifier les schémas de base de données (par exemple, les règles de formatage des données, la structure des tables et des index) et pour définir les paramètres d'accès et d'administration de la base de données.

Qu’est-ce que les données structurées ?

Les données structurées sont des données organisées dans un format cohérent et prédéfini, souvent composées de caractères alphanumériques. Les transactions financières, les inventaires ou les listes de clients, qui sont souvent stockés dans des bases de données SQL (par exemple, des relational databases), en sont des exemples.

Qu’est-ce qu’une base de données SQL ?

Lorsque le terme « base de données SQL » est utilisé, il fait référence à un type de base de données où SQL est le langage de programmation principal utilisé pour créer et gérer cette base de données. Les interfaces de programmation d'applications (API) SQL contiennent des groupes de fonctions qui permettent aux développeurs d'exécuter et de gérer des opérations de base de données sans avoir à créer des commandes SQL individuelles à plusieurs reprises.

Qu'une base de données SQL soit utilisée pour stocker les transactions d'un détaillant ou les informations financières d'une entreprise, les bases de données SQL font partie d'un type de base de données appelé relational databases.

Relational databases

Les relational databases ou systèmes de gestion de bases de données relationnelles (SGBDR), stockent les données dans des lignes et des colonnes qui sont utilisées pour former des tableaux. Un lien entre les deux tableaux (ou plus) peut être créée à l'aide d'une clé étrangère. Ces clés étrangères (par exemple, des identifiants uniques) maintiennent des relations prédéfinies entre les tableaux.

Exemple : une relational database d'e-commerce contenant des informations sur les clients, les produits et les commandes

une relational database d'e-commerce contenant des informations sur les clients, les produits et les commandes

Il est important de noter que les relational databases sont créées et gérées à l'aide d'un schéma fixe. Un schéma fixe signifie que toutes les données introduites dans la base de données doivent être précisément alignées sur des normes de formatage prédéfinies, ce qui limite les types de structures de données que les relational databases peuvent stocker. Par exemple, elles ne sont pas en mesure de traiter des données non structurées (par exemple, des informations dont le format n'est pas cohérent et qui ne sont pas alignées sur un modèle de données prédéfini), mais elles sont excellentes pour prendre en charge des informations transactionnelles ou financières qui comprennent des données structurées ou des types de données semi-structurées (par exemple, des données dont le format est cohérent et qui sont alignées sur un modèle de données prédéfini).

Exemples de bases de données SQL

Il existe différents exemples de bases de données SQL, notamment :

Il est important de noter que d'autres types de bases de données peuvent également établir des relations entre les données. Dans le cas des bases de données tabulaires normalisées (par exemple, les bases de données SQL ou relational databases), ces relations sont exprimées à l'aide de clés étrangères ou de tables d'intersection. Dans le cas des systèmes de gestion de bases de données (SGBD) tels que MongoDB (par exemple, une base de données NoSQL), ces relations sont établies en intégrant ou en référençant des données.

Not only Structured Query Language (NoSQL)
Qu'est-ce que le NoSQL ?

NoSQL, qui signifie Not only SQL, est une approche de système de gestion de base de données utilisée pour ingérer, stocker et récupérer des données non structurées et semi-structurées dans une base de données. Cela signifie que les données qui ne peuvent pas être analysées ou comptées par les relational databases traditionnelles (par exemple, SQL) peuvent rester dans leur format d'origine et être intégrées dans une base de données NoSQL. La raison pour laquelle on les appelle NoSQL est que ces bases de données peuvent gérer des modèles de données non tabulaires et non relationnels et prendre en charge des langages de requête de type SQL.

Qu'est-ce que des données non structurées ?

Les données non structurées sont des données qui n’ont pas de modèle de données prédéfini ou d’organisation cohérente. En outre, les données non structurées, telles que les publications sur les médias sociaux, peuvent être mises à jour et changer rapidement, alors que les données structurées, telles que les transactions bancaires, ont un taux de changement beaucoup plus faible. Les images, les fichiers audio, les vidéos et les cartes sont des exemples de données non structurées.

Qu'est-ce qu'une base de données NoSQL ?

Les bases de données NoSQL sont des bases de données qui utilisent un schéma flexible adapté aux données non structurées et semi-structurées tout en utilisant une méthode de stockage de données non tabulaire.

L'utilisation d'un schéma flexible permet aux bases de données NoSQL d'ingérer des données non structurées dans leur format d'origine (par exemple, .txt, .JPG, MP3), ce qui n'est pas possible avec les bases de données SQL car toutes les données doivent être alignées sur un format prédéfini. De plus, lorsque les bases de données NoSQL stockent des données, des modèles de données flexibles sont utilisés afin que les fichiers de données non structurés puissent avoir des structures de données différentes et être toujours stockés dans la même collection.

Pour en savoir plus, suivez notre tutoriel sur les bases de données NoSQL.

Types de bases de données NoSQL

Il existe différents types de bases de données NoSQL, notamment :

  • Bases de données de documents : les bases de données de documents, parfois appelées bases de données axées sur des objets, stockent les données dans des documents similaires aux objets JSON (JavaScript Object Notation), bien qu'elles ne soient pas des stockages JSON. Elles utilisent les pilotes renvoyés par les objets natifs vers le langage de programmation utilisé par le développeur sans avoir besoin d'un mappeur relationnel d'objets (ORM). Chaque document est traité comme un enregistrement et peut contenir des valeurs telles que des nombres, des tableaux, des objets, des chaînes de caractères ou même des caractères booléens. En outre, des paires clé-valeur, des documents imbriqués ou d'autres données structurées peuvent être inclus. Un fournisseur populaire de ces bases de données NoSQL est MongoDB.
  • Bases de données clé-valeur : les bases de données clé-valeur collectent, récupèrent et stockent les données sous forme de groupes de paires clé-valeur. Cela signifie que chaque enregistrement de données est représenté par une clé unique et une valeur associée. La clé est utilisée pour récupérer la valeur correspondante dans la base de données. Par exemple, dans une base de données clé-valeur de design d’intérieur, une clé peut être « couleur » et la valeur « violet ». Les fournisseurs les plus populaires de ces systèmes de base de données NoSQL sont AWS et ScyllaDB.
  • Bases de données par familles de colonnes : les bases de données par familles de colonnes organisent les données en colonnes plutôt qu'en lignes, ce qui est utile lorsque vous travaillez avec de vastes ensembles de données peu approfondis. En fait, elles sont parfois appelés « bases de données à colonnes larges ». Ici, chaque ligne comporte un ensemble différent de colonnes, les colonnes étant ensuite rassemblées en « familles ». Ces modèles de données sont utiles lorsque vous travaillez avec des ensembles de données à grande échelle qui bénéficient d'une mise à l'échelle horizontale pour optimiser les performances. Les fournisseurs populaires de ces bases de données NoSQL incluent Apache Cassandra et HBase.
  • Bases de données graphiques : les bases de données graphiques stockent les données dans des nœuds et des arêtes. Les nœuds stockent généralement des informations sur les personnes, les lieux et les objets, tandis que les arêtes stockent des informations sur les relations entre les nœuds. Les bases de données graphiques sont d'excellents outils pour interroger les structures de graphiques (par exemple, les réseaux sociaux, les hiérarchies). Les fournisseurs populaires de ces bases de données NoSQL incluent Neo4j, AWS et Kibana.
Principales différences entre les bases de données SQL et NoSQL

Bien que les bases de données SQL et NoSQL offrent toutes deux des fonctionnalités précieuses, il est important de comprendre les principales différences entre elles.

Modèle de stockage de base de données

La différence entre les systèmes de bases de données SQL et NoSQL en ce qui concerne le stockage des données est flagrante. Plus précisément, les bases de données SQL stockent les données dans des tableaux contenant des lignes et des colonnes, tandis que les systèmes NoSQL stockent les données à l'aide de diverses méthodes en fonction du type de données non structurées ingérées (par exemple, documents JSON, appariement clé-valeur, regroupement familial, nœuds/arêtes de graphique).

Type de données

Alors que les bases de données NoSQL, parfois appelées bases de données non relationnelles, sont capables d'ingérer, de stocker et d'extraire des données non structurées, les bases de données SQL (par exemple, les relational databases classiques) ne le sont pas. Les bases de données SQL ne peuvent ingérer, stocker et récupérer que des données structurées. Cela est dû à la différence entre les schémas SQL et NoSQL utilisés.

Schémas

Les bases de données SQL s'appuient sur un schéma de données strict et prédéfini sur lequel les données à ingérer doivent s'aligner. Cependant, les bases de données NoSQL utilisent des schémas flexibles qui leur permettent d'ingérer des données dans leurs différents formats natifs.

Évolutivité

Il est important pour les administrateurs de bases de données de planifier la croissance et l’expansion de leurs systèmes de base de données. Il s’agit d’un autre point de différenciation clair entre les bases de données SQL et NoSQL.

Illustration de la mise à l'échelle verticale et horizontale

Bases de données SQL

Les bases de données SQL sont traditionnellement mises à l’échelle verticalement. Cela signifie que des ressources (par exemple, des unités centrales, du stockage ou de la mémoire) sont ajoutées à un seul serveur. Bien que cela puisse limiter la croissance possible, puisqu'il n'y a qu'un seul serveur à capacité finie, il y a plusieurs raisons à ce choix :

Bases de données NoSQL

Les systèmes de bases de données NoSQL sont souvent configurés dans ce que l'on appelle un système distribué. Cela signifie qu'un certain nombre d'ordinateurs indépendants (par exemple, des nœuds) sont reliés par un réseau et travaillent ensemble pour atteindre des objectifs communs. Le fait de faire partie d'un système distribué signifie également que la mise à l'échelle horizontale par rapport à la mise à l'échelle verticale peut être utilisée.

La mise à l'échelle horizontale consiste à augmenter les ressources et la capacité disponibles d'un système distribué en ajoutant des nœuds (par exemple, des ordinateurs, des serveurs) à ce système. Ce faisant, davantage de nœuds sont disponibles pour prendre en charge la charge de travail du système. De plus, il n'y a pratiquement aucune limite à la taille de la base de données du point de vue de la capacité, car des nœuds supplémentaires constamment être ajoutés.

En savoir plus sur la mise à l'échelle des bases de données.

Cas d'utilisation de la technologie de base de données SQL par rapport à la technologie NoSQL

Alors que les bases de données SQL excellent dans la gestion de données relationnelles structurées tout en maintenant l'intégrité transactionnelle et en exécutant des requêtes complexes, les bases de données NoSQL sont inégalées dans la requête et le stockage de données non structurées ou semi-structurées, tout en offrant une évolutivité et une flexibilité illimitées.

Cela dit, les cas d'utilisation jouent un rôle déterminant dans le choix entre les bases de données SQL et NoSQL (par exemple, les bases de données non relationnelles et relational databases). Voici un résumé des points forts et des cas d'utilisation associés aux bases de données SQL et aux bases de données NoSQL.

Cas d'utilisation de la base de données SQL

Les principales caractéristiques des bases de données SQL se prêtent aux cas d’utilisation suivants :

Conformité réglementaire

Étant donné que la structure des bases de données SQL se prête à la conformité ACID, elles sont souvent utilisées pour stocker des données qui doivent répondre à certaines normes gouvernementales ou industrielles.

Les cas d’utilisation ci-dessous impliquent tous un certain niveau de conformité ACID.

Bases de données transactionnelles

Les bases de données transactionnelles stockent des données qui résultent d'une interaction entre deux ou plusieurs parties.

Exemples :

  • Bases de données des points de vente des détaillants (PoS)
  • Bases de données des ordonnances et des commandes médicales
  • Services bancaires aux entreprisess
  • Bases de données comptables et financières

Systèmes de planification des ressources de l'entreprise (ERP)

Les systèmes ERP sont utilisés pour aider les entreprises à gérer les processus qui sont essentiels aux opérations, à la gestion des employés, à la production, et plus encore.

Exemples :

  • Bases de données des ressources humaines
  • Systèmes de gestion de la chaîne d'approvisionnement
  • Systèmes de gestion des risques
Cas d'utilisation de bases de données NoSQL

Bien qu'il soit courant de penser que les bases de données NoSQL (non relationnelles, par exemple) ne sont pas conformes à l'ACID, certaines le sont. MongoDB est l'un des principaux exemples de base de données NoSQL, base de données conforme à la norme ACID.

En gardant cela à l'esprit, voici quelques exemples de cas d'utilisation courants des bases de données NoSQL :

Bases de données transactionnelles

Les bases de données transactionnelles peuvent également être prises en charge par les bases de données NoSQL dans la mesure où elles sont utilisées pour stocker des données non structurées qui résultent d'une interaction entre deux ou plusieurs parties.

Exemples :

  • Dossiers de patients nécessitant des capacités de base de données non relationnelles (par exemple, dossiers de patients, photos et vidéos de radiographie/scanner)
  • Dossiers d'assurance (par exemple, photos d'accidents automobiles, documentation sur les blessures)
  • Bases de données de documents juridiques (par exemple, dépositions, plaidoiries, dossiers)

Bases de données orientées document et gestion des actifs numériques (DAM)

Les bases de données orientées document et la gestion des actifs numériques stockent et gèrent des documents, des images, des contenus multimédias, des vidéos et bien plus encore.

Exemples :

  • Bibliothèques en ligne (par exemple, bibliothèques juridiques, bibliothèque du Congrès en ligne)
  • Plateformes d'édition numérique telles que Kindle ou Nook
  • Services de diffusion en continu de médias tels que Netflix et Hulu
  • Plateformes de partage de photos en ligne telles que Instagram ou Meta

Analyse de graphiques et de réseaux

Les bases de données de graphiques et de réseaux sont excellentes pour gérer des structures de données telles que les moteurs de recommandation, les réseaux sociaux et l'analyse de réseaux associée, étant donné leur capacité à identifier et à analyser des relations non intuitives au sein d'éléments de données interconnectés.

Exemples :

  • Analyse des réseaux sociaux (par exemple, indicateurs quant aux publications et utilisateurs)
  • Détection des fraudes qui isole les transactions inhabituelles ou d'autres anomalies
  • Graphiques de connaissances (par exemple, quadrants de produits/services de Gartner)

Plateformes de l'internet des objets (IoT)

Les plateformes IoT sont souvent employées pour stocker et analyser les données des capteurs et les métadonnées des appareils en temps réel.

Exemples :

  • Systèmes de maison intelligente (par exemple, Google Nest, Amazon Alexa)
  • Systèmes de ville intelligente (par exemple, fonctionnement des feux de circulation)
  • Collecte d'informations météorologiques

FAQ

Qu'est-ce que le SQL ?

Le Structured Query Language (langage de requête structuré, ou SQL) est un langage de programmation spécifique à un domaine, couramment utilisé pour des tâches telles que l'insertion, la mise à jour, l'interrogation et la suppression de données dans une base de données. Il s'agit du langage de programmation commun utilisé pour créer et gérer des relational databases.

Qu’est-ce que les données structurées ?

Les données structurées sont des données organisées dans un format cohérent et prédéfini, souvent composées de caractères alphanumériques. Les transactions financières, les inventaires ou les listes de clients, qui sont souvent stockés dans des bases de données SQL (par exemple, des relational databases), en sont des exemples.

Qu'est-ce qu'une relational database ?

es relational databases ou systèmes de gestion de bases de données relationnelles (SGBDR), stockent les données dans des lignes et des colonnes qui sont utilisées pour former des tableaux. Un lien entre les deux tableaux (ou plus) peut être créée à l'aide d'une clé étrangère. Ces clés étrangères (par exemple, des identifiants uniques) maintiennent des relations prédéfinies entre les tableaux.

Pourquoi les relational databases stockent-elles uniquement des données structurées ?

En raison du schéma fixe utilisé par les bases de données SQL (par exemple, les relational databases), ces systèmes de bases de données ne sont pas en mesure de prendre en charge les structures de données disparates des données non structurées telles que les fichiers vidéo, les photos ou les fichiers texte.

Qu’est-ce que le NoSQL ?

Not only SQL (NoSQL) est une approche de système de gestion de base de données (DBMS) utilisée pour ingérer, stocker et récupérer des données non structurées et semi-structurées dans une base de données.

Qu’est-ce que des données non structurées ?

Les données non structurées sont des données qui n’ont pas de modèle de données prédéfini ou d’organisation cohérente. En outre, les données non structurées, telles que les publications sur les médias sociaux, peuvent être mises à jour et changer rapidement, alors que les données structurées, telles que les transactions, ont un taux de changement beaucoup plus faible. Les images, les fichiers audio, les vidéos et les cartes sont des exemples de données non structurées.

Qu’est-ce qu’une base de données NoSQL ?

Les bases de données NoSQL sont des bases de données qui utilisent un schéma flexible adapté aux données non structurées et semi-structurées tout en utilisant une méthode de stockage de données non tabulaire.

Pourquoi une base de données NoSQL peut-elle stocker des données non structurées alors que les bases de données SQL ne le peuvent pas ?
L'utilisation d'un schéma flexible permet aux bases de données NoSQL d'ingérer des données non structurées dans leur format d'origine (par exemple, .txt, .JPG, MP3), ce qui n'est pas possible avec les bases de données SQL car toutes les données doivent être alignées sur un format prédéfini.
Quels sont les types de bases de données NoSQL ?

Les types de bases de données NoSQL les plus courants sont les suivants :

  • Bases de données orientées document
  • Bases de données de valeurs clés
  • Bases de données de familles de colonnes
  • Bases de données graphique
Quelles sont les principales différences entre les bases de données NoSQL et les bases de données SQL ?

Les principales différences entre les bases de données SQL et les bases de données NoSQL sont les suivantes :

  • Modèles de stockage des bases de données.
  • Types de données.
  • Schémas.
  • Évolutivité.

Démarrer avec MongoDB Atlas

Découvrez les avantages de l’utilisation de MongoDB, la première base de données NoSQL, sur le cloud.
Commencez gratuitement !