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.
A relational database management system normalizing objects into rows of data in multiple 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.
A relational database management system returning duplicate data
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.
An application using JSON to store objects with nested data as single documents
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.