Vue d'ensemble : Structure NoSQL et concepts clés

Pour mieux comprendre le fonctionnement des bases de données NoSQL, cette page aborde les sujets suivants :

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

Une base de données NoSQL, abréviation de "not only SQL (Structured Query Language)", est une base de données non relationnelle conçue pour gérer des structures de données diverses et flexibles. La définition NoSQL fait référence aux bases de données qui prennent en charge plusieurs modèles, notamment les documents, les graphes, les clés-valeurs, les colonnes larges et les magasins vectoriels, offrant ainsi une plus grande évolutivité et une meilleure adaptabilité que les bases de données SQL traditionnelles, qui reposent sur des tables structurées et des schémas fixes.

La signification de NoSQL a évolué avec les progrès des processeurs, de la mémoire vive, de l'informatique en nuage et des interactions avec l'IA, permettant aux bases de données modernes de gérer efficacement de grands ensembles de données en temps réel. En donnant la priorité aux mise à l'échelle horizontale Les bases de données NoSQL garantissent une distribution transparente des données sur plusieurs nœuds, ce qui en fait le choix privilégié pour l'IA, le big data et l'analyse en temps réel, où les bases de données traditionnelles ont souvent du mal à suivre.

RÉSUMÉ

NoSQL fait référence aux bases de données qui stockent les données dans des formats flexibles en utilisant des modèles tels que les documents, les magasins clés-valeurs et les magasins vectoriels. Leur évolutivité et leurs performances les rendent idéales pour les applications modernes qui nécessitent un accès en temps réel et gèrent d'importantes charges de travail dynamiques.

Quelle est la différence entre SQL et NoSQL ?

Bases de données SQL et NoSQL diffèrent dans leur manière de stocker et d'interroger les données. Les bases de données SQL s'appuient sur des tableaux avec des colonnes et des lignes pour récupérer et écrire des données structurées, tandis que les bases de données NoSQL utilisent des modèles de données flexibles mieux adaptés aux données non structurées et semi-structurées.

SQLLe langage SQL, introduit pour la première fois dans les années 1970, est aujourd'hui utilisé par les développeurs et les analystes de données du monde entier pour trouver des données stockées dans des systèmes relationnels et établir des rapports à leur sujet. Les bases de données SQL sont idéales pour les applications qui exigent l'intégrité des données et utilisent des relations structurées et des requêtes standardisées (par exemple, les logiciels de planification des ressources de l'entreprise). Bien que NoSQL existe depuis les années 1960, mais le terme a été inventé pour la première fois au début des années 2000, lorsqu'il est devenu crucial pour les développeurs d'utiliser des bases de données capables de stocker et d'extraire des données pour des applications en temps réel.

Il convient de noter que le langage SQL s'est développé pour prendre en charge les modèles d'accès NoSQL. Par exemple, de nombreuses bases de données relationnelles prennent désormais en charge le type de données JSON (JavaScript Object Notation). Certaines bases de données ont même étendu SQL pour interroger directement les structures JSON, notamment Couchbase, qui prend en charge SQL++ (SQL for JSON).

RÉSUMÉ

La différence entre les bases de données SQL et NoSQL réside dans leur structure et leurs cas d'utilisation. Les bases de données SQL utilisent des tables, ce qui les rend idéales pour les applications qui nécessitent une structure rigide et des données normalisées. En revanche, les bases de données NoSQL utilisent des modèles flexibles, ce qui les rend mieux adaptées au traitement des données non structurées et semi-structurées, tout en permettant un accès en temps réel.

Types de bases de données NoSQL

Il s'agit des types les plus populaires de modèles d'accès aux bases de données NoSQL :

  • Magasins clé-valeur regroupent des données associées dans des tables indépendantes où les enregistrements sont identifiés par des clés uniques pour faciliter la recherche. Elles ont juste assez de structure pour refléter la valeur des bases de données relationnelles tout en ajoutant les avantages de performance et d'accessibilité d'une structure d'accès aux données NoSQL. Les données clés-valeurs sont facilement stockées dans un cache où les données fréquemment consultées sont conservées en mémoire pour une lecture rapide. Les écritures, les mises à jour et les nouvelles demandes de lecture sont acheminées de manière programmatique vers le stockage permanent. Les magasins de valeurs clés donnent la priorité aux vitesses d'accès atomiques plutôt qu'à la cohérence, à l'isolation et à la durabilité.
  • Bases de données documentaires stockent principalement des informations sous forme de documents logiques, y compris des documents JSON. Par exemple, ces systèmes peuvent également stocker des documents XML ou des objets binaires. En raison de la nature flexible du format et du degré de contrôle qu'il offre aux développeurs, les bases de données documentaires sont privilégiées lors de la création d'applications axées sur les données.
  • Bases de données à colonnes larges et à colonnes stocker des données par des colonnes plutôt que des lignesqui optimise les performances des requêtes pour les charges de travail analytiques et le traitement des données à grande échelle. Comme les magasins de valeurs clés, les bases de données à colonnes multiples ont une structure NoSQL de base tout en préservant la flexibilité, le traitement des données et les capacités d'agrégation.
  • Recherche dans les bases de données permettent aux utilisateurs d'interroger des données semi-structurées et non structurées telles que des pages web, des documents, des cartes, des documents JSON et XML. Ils utilisent des index inversés spécialisés pour localiser des mots-clés dans des corps de texte afin de trouver des données pertinentes, un peu comme lorsqu'on cherche quelque chose en ligne sur Google.
  • Bases de données graphiques utilisent des structures graphiques telles que des nœuds, des arêtes et des propriétés pour définir les relations entre les éléments de données stockés. Les bases de données graphiques sont utiles pour identifier les modèles de relations dans les non structuré et semi-structuré Les bases de données graphiques permettent d'analyser les informations, de créer des réseaux sociaux, des assemblages de pièces, des structures organisationnelles et des ontologies. Les bases de données graphiques sont largement utilisées dans les moteurs de recommandation, la reconnaissance des schémas de fraude, les fonctions prédictives de l'IA et la mise en relation des réseaux sociaux.
  • Bases de données de séries chronologiques permettent aux utilisateurs de suivre l'évolution des données dans le temps et de détecter les anomalies dans les graphiques des cours boursiers, les journaux des machines, les moniteurs de santé et les systèmes d'alerte. Comme les données de séries temporelles changent rapidement, ces bases de données génèrent des quantités massives d'informations, ce qui peut poser des problèmes de mise à l'échelle.
  • Bases de données vectorielles permettent d'améliorer la précision des modèles génératifs d'IA en fournissant des indices (vecteurs) qui les aider à trouver les "bonnes" réponses dans leurs données d'apprentissage. Les bases de données vectorielles fonctionnent dans le cadre des processus de génération augmentée par récupération (RAG) pour stocker les encastrements vectoriels qui contribuent à réduire les hallucinations de l'IA générative et à maintenir la progression du modèle.
RÉSUMÉ

Les modèles populaires d'accès aux données NoSQL comprennent les magasins de valeurs clés, les bases de données documentaires, les bases de données à colonnes et à colonnes larges, les bases de données de recherche, les bases de données graphiques, les bases de données de séries temporelles et les bases de données vectorielles. Ces types NoSQL présentent chacun des caractéristiques uniques, telles que l'évolutivité, la flexibilité des schémas et l'efficacité des requêtes. Vous devez les étudier en profondeur pour décider quelle base de données NoSQL utiliser.

Pourquoi utiliser NoSQL ?

Les entreprises privilégient les bases de données NoSQL pour leur capacité à gérer de grands volumes de données diverses et croissantes. Les avantages spécifiques des bases de données NoSQL sont les suivants

  • Évolutivité : Les bases de données NoSQL évoluent horizontalement en distribuant les données sur plusieurs serveurs, ce qui les rend idéales pour les charges de travail importantes.
  • Flexibilité : Contrairement aux bases de données relationnelles, NoSQL permet le stockage de données sans schéma, ce qui facilite le stockage et la gestion de données non structurées ou semi-structurées.
  • Haute performance : Optimisées pour des lectures et des écritures rapides, les bases de données NoSQL réduisent la complexité des requêtes et améliorent les temps de réponse des applications en temps réel.
  • Différents modèles de données : Les bases de données NoSQL favorisent les modèles de données clé-valeur, document, colonne large, recherche et série temporelle, ce qui les rend idéales pour de multiples cas d'utilisation.
  • Big data et traitement en temps réel : NoSQL est conçu pour traiter des quantités massives de données, ce qui le rend idéal pour analyse des données (big data), l'IdO, la mise en cache et la gestion des sessions.
  • Informatique en nuage et informatique distribuée : Les bases de données NoSQL fonctionnent bien dans les environnements en nuage en garantissant une haute disponibilité et une tolérance aux pannes dans les systèmes distribués.
  • Développement et itération plus faciles : Avec NoSQL, les développeurs peuvent tirer parti de leurs compétences SQL existantes et utiliser une base de données qui s'intègre à des outils familiers, les environnements de développement intégrés (IDE)et des cadres.

La base de données NoSQL polyvalente de Couchbase est particulièrement bien adaptée aux applications d'intelligence artificielle, car elle offre les avantages suivants :

1. Haute performance et faible latence

  • Architecture de type "mémoire d'abord" : Utilise une conception de mémoire distribuée pour des lectures et des écritures rapides, réduisant ainsi la latence de l'inférence du modèle d'IA.
  • Des temps de réponse inférieurs à la milliseconde : L'accès aux données en temps réel est garanti, ce qui est crucial pour des cas d'utilisation tels que moteurs de recommandationLes services d'information et d'éducation sont également utilisés dans le domaine de la santé, de la détection des fraudes et de l'analyse prédictive.

2. Évolutivité et architecture distribuée

  • Échelle multidimensionnelle : Peut évoluer horizontalement ou verticalement pour gérer des ensembles massifs de données d'IA et des charges de travail croissantes.
  • Réplication croisée des centres de données (XDCR) : Prend en charge les déploiements d'IA multirégion et multicloud avec une haute disponibilité.

3. Stockage de données multimodèle et flexible

  • Base de données NoSQL basée sur JSON : Stocke des données non structurées et semi-structurées, ce qui est essentiel pour les applications d'intelligence artificielle qui traitent des ensembles de données variés.
  • Prise en charge de la recherche vectorielle : Aide les développeurs à créer des applications utilisant la recherche vectorielle et s'intègre à LangChain et LlamaIndex.

4. Capacités intégrées en matière d'IA et d'analyse

  • SQL pour JSON (SQL++) : Requête de type SQL avec indexation, recherche plein texte et analyse pour la formation et l'inférence de modèles d'IA.
  • Traitement des événements et des flux : Active des informations en temps réel sur l'IA à l'aide de fonctions intégrées et d'une architecture pilotée par les événements.
  • Intégration avec les cadres AI/ML : Travaille avec TensorFlow, PyTorch et Apache Spark pour l'entraînement et le déploiement de modèles d'IA.

5. Multicloud et déploiement de l'IA en périphérie

  • Environnement multicloud : Fonctionne sur Amazon Web Services (AWS), Microsoft Azure et Google Cloud, ce qui permet aux développeurs de mettre au point et de déployer des applications d'IA sur le cloud de leur choix.
  • Prise en charge de l'informatique de pointe : Idéal pour les applications d'IA en temps réel sur les appareils mobiles et IoT, réduisant la dépendance au cloud et améliorant les temps de réponse.

6. Sécurité et conformité

  • Sécurité de niveau entreprise : Fournit un chiffrement intégré, un contrôle d'accès basé sur les rôles (RBAC) et une conformité aux réglementations telles que GDPR, HIPAA et SOC 2.
  • Isolement des données et gouvernance : Prend en charge la surveillance de la conformité et la détection des fraudes basées sur l'IA.

7. Efficacité des coûts

  • Des performances élevées à moindre coût : Réduit les coûts de l'infrastructure en nuage en gérant efficacement les ressources et en minimisant le transfert de données.
  • Base de données multimodale : Il permet aux développeurs de stocker et d'interroger plusieurs types de données, ce qui réduit le besoin de bases de données supplémentaires et permet d'économiser sur les coûts d'intégration potentiels, les frais de licence et les dépenses liées à l'informatique en nuage.

Les cas d'utilisation spécifiques pour les applications d'IA avec Couchbase sont les suivants :

  • Recommandations personnalisées : Commerce électronique et services de diffusion en continu
  • Détection de la fraude et analyse des risques : Banque et cybersécurité
  • Chatbots et IA agentique: Assistance à la clientèle et assistants virtuels
  • IoT et IA de pointe: Dispositifs intelligents et systèmes autonomes
RÉSUMÉ

Les entreprises privilégient les bases de données NoSQL pour leur flexibilité, leur évolutivité et leur haute performance dans le traitement de grands volumes de données diverses et croissantes. En outre, les bases de données NoSQL utilisent la mise à l'échelle horizontale, distribuant les données sur plusieurs serveurs pour maintenir les performances au fur et à mesure que les charges de travail augmentent. Ces capacités les rendent bien adaptées aux applications d'IA, aux systèmes IoT, aux services adaptatifs sur le terrain, ainsi qu'à la mise en cache et à la gestion des sessions.

Les entreprises du Global 2000 adoptent rapidement les bases de données NoSQL pour alimenter leurs applications critiques :

Tutoriel NoSQL

Comment les bases de données NoSQL se comparent-elles aux bases de données relationnelles ? Voyons cela de plus près. Le tutoriel suivant illustre une application NoSQL utilisée pour gérer des CV. Elle interagit avec les CV en tant qu'objet (c'est-à-dire l'objet utilisateur), contient un tableau pour les compétences et une collection pour les postes. Par ailleurs, l'écriture d'un CV dans une base de données relationnelle nécessite que l'application "déchiquette" (normalise) l'objet utilisateur.

Pour stocker ce CV, l'application devrait insérer six lignes dans trois tableaux, comme illustré dans le tableau suivant Figure 1.
Un système de gestion de base de données relationnelle qui normalise les objets en lignes de données dans plusieurs tables.
Cliquer pour agrandir

De plus, la lecture de ce profil nécessiterait que l'application lise six lignes de trois tableaux, comme illustré dans le tableau suivant Figure 2.
Un système de gestion de base de données relationnelle renvoyant les données en double
Cliquer pour agrandir

JSON élimine non seulement le décalage d'impédance objet-relationnel, mais aussi la surcharge des cadres de mappage objet-relationnel (ORM). Il simplifie le développement des applications car les objets peuvent être lus et écrits sans être normalisés (c'est-à-dire qu'un seul objet peut être lu ou écrit comme un seul document), comme l'illustre l'exemple suivant Figure 3.
Une application utilisant JSON pour stocker des objets contenant des données imbriquées sous forme de documents uniques
Cliquer pour agrandir

Qu'en est-il de l'interrogation et du langage SQL ?

Certains diront que l'interrogation des bases de données NoSQL est plus difficile, mais il s'agit là d'une idée fausse. La flexibilité inhérente aux bases de données NoSQL orientées documents leur permet de gérer aussi bien les données structurées que non structurées, et de nouveaux outils permettent d'effectuer des requêtes plus rapidement que jamais.

Couchbase prend en charge SQL++qui permet aux développeurs de tirer parti de la puissance de SQL et de la flexibilité de JSON. Il prend en charge non seulement les instructions SELECT / FROM / WHERE standard, mais aussi l'agrégation (GROUP BY), le tri (SORT BY), les jointures (LEFT OUTER / INNER) et l'interrogation de tableaux et de collections imbriqués. En outre, les performances des requêtes peuvent être améliorées grâce à des index composites, partiels et couvrants.


SELECT RTRIM(p.FirstName) + ' ' + LTRIM(p.LastName) AS Name, d.City
FROM AdventureWorks2025.Person.Person AS p
INNER JOIN AdventureWorks2025.HumanResources.Employee e ON p.BusinessEntityID = e.BusinessEntityID
INNER JOIN
(SELECT bea.BusinessEntityID, a.City
FROM AdventureWorks2025.Person.Address AS a
INNER JOIN AdventureWorks2025.Person.BusinessEntityAddress AS bea
ON a.AddressID = bea.AddressID) AS d
ON p.BusinessEntityID = d.BusinessEntityID
ORDER BY p.LastName, p.FirstName;

SELECT RTRIM(p.FirstName) || ' ' || LTRIM(p.LastName) AS Name, d.City
FROM AdventureWorks2025.Person.Person AS p
INNER JOIN AdventureWorks2025.HumanResources.Employee e ON p.BusinessEntityID = e.BusinessEntityID
INNER JOIN
(SELECT bea.BusinessEntityID, a.City
FROM AdventureWorks2025.Person.Address AS a
INNER JOIN AdventureWorks2025.Person.BusinessEntityAddress AS bea
ON a.AddressID = bea.AddressID) AS d
ON p.BusinessEntityID = d.BusinessEntityID
ORDER BY p.LastName, p.FirstName;
RÉSUMÉ

Les bases de données NoSQL stockent les données dans des documents JSON flexibles, ce qui élimine la nécessité d'un mappage objet-relationnel (ORM) complexe et facilite la gestion des données structurées et non structurées. Cette approche simplifie le développement d'applications en stockant et en récupérant les objets dans un seul document plutôt que de les diviser en plusieurs tables. Couchbase améliore encore ses capacités d'interrogation grâce à SQL++, qui prend en charge la syntaxe SQL familière.

Pourquoi les bases de données relationnelles ne sont pas à la hauteur

Les systèmes de gestion de bases de données relationnelles sont nés à l'époque des ordinateurs centraux et des applications d'entreprise - bien avant l'internet, le cloud, le big data, le mobile, l'intelligence artificielle et les entreprises massivement interactives d'aujourd'hui. Ces bases de données ont été conçues pour fonctionner sur un seul serveur - plus il est grand, mieux c'est - et leur conception visait à optimiser l'utilisation des ressources limitées pour le stockage, la mémoire vive et le traitement. Le seul moyen d'augmenter la capacité de ces bases de données était de mettre à niveau les serveurs (processeurs, mémoire et stockage). Au fil des décennies, la plupart des restrictions de conception initiales, notamment la normalisation, le typage fort des données et l'intégrité référentielle, ont été assouplies ou éliminées.

Les systèmes de gestion de bases de données NoSQL sont apparus en raison de la croissance exponentielle de l'internet et de l'essor des applications web. Google a publié le Document de recherche Bigtable en 2006, et Amazon a publié le Document de recherche sur la dynamo en 2007 - ces documents expliquent comment les deux entreprises ont conçu leurs bases de données pour répondre aux besoins évolutifs des entreprises. En fin de compte, les bases de données modernes se concentrent sur se développer avec agilité, répondre à l'évolution des besoinset éliminer la transformation des données.

RÉSUMÉ

Les bases de données relationnelles ont été conçues à l'origine pour des environnements à serveur unique afin d'optimiser les ressources limitées, mais au fur et à mesure que les besoins en données augmentaient, elles ont été confrontées à des problèmes d'évolutivité. Sous l'impulsion de l'essor de l'internet et des applications web, les bases de données NoSQL sont apparues pour remédier à ces limitations, en mettant l'accent sur l'agilité, l'évolutivité et la réduction de la complexité de la transformation des données.

Conclusion

Alors, à quoi servent les bases de données NoSQL et pourquoi sont-elles importantes ? À mesure que les entreprises se tournent vers l'intelligence artificielle - rendue possible par le cloud, le mobile, les médias sociaux, l'apprentissage automatique et les bases de données Technologies GenAI - Les développeurs et les équipes d'exploitation doivent créer et maintenir des applications web, mobiles et IoT plus rapidement et à plus grande échelle. NoSQL, flexible et performant, est de plus en plus la technologie de base de données qu'ils choisissent.

Milliers d'euros Entreprise du Global 2000 et des millions de développeurs travaillant dans des petites entreprises et des startups ont adopté NoSQL. Pour beaucoup, l'utilisation de NoSQL a commencé par un cache, une preuve de concept ou une petite application, puis s'est étendue à des applications critiques ciblées avant de devenir la base de tout développement d'application.

Avec les bases de données NoSQL, les entreprises peuvent se développer avec une plus grande agilité, opérer à n'importe quelle échelle et fournir les performances et la disponibilité requises pour répondre aux exigences des entreprises de l'économie numérique.

Vous cherchez une formation supplémentaire sur NoSQL ?

Apprenez à développer des applications évolutives et performantes en utilisant des données NoSQL.

Commencer à construire

Consultez notre portail pour développeurs afin d'explorer NoSQL, de parcourir les ressources et de commencer à utiliser les tutoriels.

Utiliser Capella gratuitement

Prenez en main Couchbase en quelques clics. Capella DBaaS est le moyen le plus simple et le plus rapide de démarrer.

Prendre contact

Vous souhaitez en savoir plus sur les offres Couchbase ? Laissez-nous vous aider.