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

Une base de données de documents est un type de base de données NoSQL qui stocke, gère et récupère les données dans un format flexible. Chacun de ces "documents" peut avoir sa propre structure unique, contrairement aux bases de données relationnelles, qui utilisent des tables rigides avec des lignes et des colonnes.

Cette flexibilité rend les bases de données de documents idéales pour gérer des données semi-structurées ou non structurées, comme les applications générées par IA ou les données de capteurs, dans les cas où les schémas traditionnels seraient trop restrictifs. Elles sont particulièrement populaires dans des cas d'utilisation tels que la gestion de contenu, l'e-commerce et l'analyse en temps réel.

Points à retenir

Une base de données de documents est un type de base de données NoSQL qui stocke les données dans des "documents" flexibles de type JSON.

Les bases de données de documents sont réputées pour les caractéristiques suivantes :

  • Modèles de données flexibles : chaque document peut avoir une structure unique, une conception conviviale pour les développeurs qui mappe directement les objets au code.
  • Évolutivité horizontale : conçues pour évoluer, les bases de données de documents s'adaptent facilement à l'augmentation des besoins.
  • Requêtes enrichies : un langage de requête puissant permet de filtrer, de trier et d'agréger des données de manière complexe.
  • Diversité des cas d'utilisation : les bases de données de documents sont idéales pour les données non structurées ou semi-structurées, et peuvent être utilisées dans de nombreux cas d'utilisation, comme les systèmes de gestion de contenu, les profils utilisateur, les dossiers médicaux et les catalogues de produits d'e-commerce.

Comment fonctionne une base de données de documents ?

Considérez une base de données de documents comme un classeur numérique intelligent. Les données sont regroupées dans des collections (les dossiers), chacune contenant des documents autonomes (les fichiers) pour une seule entité, comme un client ou un produit.

Contrairement à une table relationnelle rigide, chaque document peut avoir une structure unique. Par exemple, vous pouvez ajouter un champ "sustainability_rating" à un seul produit de votre catalogue d'e-commerce, sans modifier le schéma de tous les autres articles.

Document 1 :

{

id: 1

product_name: “blue shirt”

product_category: “shirt”

qty: 76

sustainability_rating: “moderate”

}


Document 2 :

{

id: 2

product_name: “green pants”

product_category: “pants”

qty: 44

}

Document 1 :

{

id: 1

product_name: “blue shirt”

product_category: “shirt”

qty: 76

sustainability_rating: “moderate”

}


Document 2 :

{

id: 2

product_name: “green pants”

product_category: “pants”

qty: 44

}

Les bases de données de documents sont adaptées aux applications qui exigent de la flexibilité, de l'évolutivité et un développement rapide, comme les applications d'IA, la gestion de contenu, l'e-commerce et l'analyse en temps réel.

Par exemple, un post sur les réseaux sociaux contient des données semi-structurées (des champs prévisibles comme un nom d'utilisateur, un code temporel et un nombre de "J'aime"), mais la structure est flexible. Un post peut inclure un tag de localisation facultatif, tandis qu'un autre peut contenir une liste d'utilisateurs tagués. En plus de ces données, le post peut contenir des données non structurées, comme une image ou une vidéo, une légende au format libre et une série de commentaires d'utilisateurs.

Une base de données de documents est conçue pour stocker toutes ces informations associées (du nom d'utilisateur structuré à l'image et aux commentaires non structurés) dans un seul "document" cohérent. Les développeurs peuvent ainsi exploiter les données réelles de façon très efficace, sans avoir à les modeler dans une structure rigide et prédéfinie.

Principales caractéristiques d'une base de données de documents

Les bases de données de documents se distinguent par un ensemble unique de caractéristiques architecturales conçues pour prendre en charge les modèles de développement modernes et l'efficacité des données.

Les documents sont regroupés dans des collections, comme les tables dans les bases de données relationnelles. Cependant, contrairement aux tables, les collections n'exigent pas que tous les documents aient la même structure, ce qui offre plus de flexibilité. Par exemple, imaginez des documents qui stockent le nom et l'adresse e-mail d'un client, mais différents modes de paiement. Un document peut stocker les informations relatives à une carte de crédit, tandis qu'un autre peut stocker le numéro d'acheminement et le numéro d'un compte courant.

En plus d'avoir sa propre structure unique, chaque document peut changer de format à mesure que des informations y sont ajoutées. En d'autres termes, la structure des données peut évoluer, et pas seulement les valeurs. C'est fondamentalement différent d'une base de données relationnelle, où toutes les lignes d'une table doivent être conformes aux mêmes colonnes prédéfinies, et seules les valeurs changent. Un schéma dynamique est particulièrement utile dans le vibe coding, où un seul prompt exprimant de nouvelles exigences métier peut refléter une modification d'un modèle de données.

Les bases de données de documents vous permettent d'interroger directement les champs d'un document, avec des index qui accélèrent les requêtes. Par exemple, vous pouvez rapidement trouver un utilisateur à partir de son adresse e-mail ou récupérer les commandes dont le prix est supérieur à un certain montant.

Les bases de données de documents sont conçues pour évoluer facilement en ajoutant des serveurs ou des clusters de manière fluide, avec peu ou pas de temps d'arrêt. Cette évolutivité les rend idéales pour les applications dont les besoins en données sont croissants ou imprévisibles.

Principaux cas d'utilisation des bases de données de documents

Les bases de données de documents sont largement adoptées pour les applications où la flexibilité, l'évolutivité et la rapidité sont essentielles. Voici quelques cas d'utilisation courants :

  • Systèmes de gestion de contenu (CMS) : gérez des contenus variés, des articles de blog aux descriptions de produits, et assurez-vous que les contenus sont diffusés et mis à jour de manière efficace.
  • Plates-formes d'e-commerce : alimentez des boutiques en ligne hautes performances, en gérant des catalogues de produits complexes, des comptes utilisateur et des transactions en temps réel.
  • Analyse en temps réel : traitez et analysez de grands volumes de données pour obtenir des insights précieux et prendre des décisions basées sur les données.
  • Applications mobiles et Web : créez des applications rapides et responsives qui offrent des expériences utilisateur fluides sur tous les appareils.
  • Internet des objets (IoT) : stockez et analysez de grandes quantités de données de capteurs pour alimenter des appareils et des systèmes intelligents.
  • Développement de jeux : créez des expériences de jeu immersives en gérant les données des joueurs, les états de jeux et les classements.
  • Applications de santé : stockez et gérez de façon sécurisée les informations sensibles des patients, de manière à fournir des soins de santé efficaces et précis.
  • Applications optimisées par l'IA : intégrez l'IA à un modèle de données capable d'évoluer rapidement et de suivre le rythme des prompts d'IA en constante évolution.
  • Cache d'IA : mettez en cache les résultats des services d'IA qui produisent des traductions, des classifications de données et plus encore pour réduire les coûts de diffusion.

Comparaison des bases de données de documents, clé-valeur et relationnelles

Les bases de données de documents, les bases de données relationnelles et les magasins de clés/valeurs gèrent tous des données, mais avec des priorités différentes en termes de structure, de flexibilité et de vitesse.

Fonctionnalité

entièrement gérée

Magasin de clés/valeurs

Bases de données relationnelles

Format des données

Documents riches et structurés

Paires clé/valeur simples

Tabulaire (lignes et colonnes)

Flexibilité

Élevée : chaque document peut être différent

Élevée : le nombre de colonnes peut varier d'une ligne à l'autre

Limitée : schéma prédéfini

Requête

Avancée, y compris les champs imbriqués

Par index clé ou secondaire pour des performances optimales

Requêtes complexes et avancées avec des opérations JOIN

Application idéale

Développement rapide et modèles de données évolutifs

Structures de données simples et recherches rapides

Cohérence forte des données et requêtes sur plusieurs tables

Fonctionnalité

entièrement gérée

Magasin de clés/valeurs

Bases de données relationnelles

Format des données

Documents riches et structurés

Paires clé/valeur simples

Tabulaire (lignes et colonnes)

Flexibilité

Élevée : chaque document peut être différent

Élevée : le nombre de colonnes peut varier d'une ligne à l'autre

Limitée : schéma prédéfini

Requête

Avancée, y compris les champs imbriqués

Par index clé ou secondaire pour des performances optimales

Requêtes complexes et avancées avec des opérations JOIN

Application idéale

Développement rapide et modèles de données évolutifs

Structures de données simples et recherches rapides

Cohérence forte des données et requêtes sur plusieurs tables

Bases de données de documents et bases de données relationnelles

Les bases de données de documents sont idéales dans les environnements dynamiques, comme les plates-formes d'e-commerce ou les applications mobiles, où les données évoluent rapidement ou prennent des formes variées. Leur flexibilité convient aux ensembles de données provenant de sources diverses ou ayant des schémas différents.

Les bases de données relationnelles, quant à elles, sont idéales pour les applications traditionnelles telles que les systèmes financiers ou la gestion des stocks, où la cohérence et la structure sont indispensables. Dans le secteur des services financiers, par exemple, le maintien d'un schéma strict garantit que chaque compte client utilise les mêmes types de données requis par la gouvernance.

Éléments à prendre en compte pour choisir entre les deux :

  • Structure : les bases de données relationnelles appliquent des schémas stricts, tandis que les bases de données de documents permettent à chaque enregistrement d'avoir une structure unique.
  • Relations : les bases de données relationnelles reposent sur des opérations JOIN pour connecter les tables, tandis que les bases de données de documents intègrent souvent les données associées dans un seul document pour y accéder plus rapidement.
  • Évolutivité : les bases de données relationnelles sont plus faciles à faire évoluer verticalement (ajout de ressources à un seul serveur), mais nécessitent des mécanismes complexes pour le scaling horizontal. Les bases de données de documents sont conçues pour un scaling horizontal sur plusieurs serveurs.
  • Flexibilité : les bases de données de documents s'adaptent facilement aux modèles de données changeants, tandis que les bases de données relationnelles nécessitent des efforts considérables pour modifier les schémas.

Les applications volumineuses et complexes, comme les jeux vidéo, peuvent s'appuyer sur une base de données de documents et une base de données relationnelle, chacune stockant différentes parties des données.

Base de données de documents et magasins de clés/valeurs

Les bases de données de documents et les magasins de clés/valeurs sont tous deux des bases de données NoSQL, mais ont des finalités différentes en fonction de la façon dont ils gèrent les données.

Bases de données de documents : les bases de données de documents étendent le concept de clé-valeur. Les documents peuvent inclure des données imbriquées, et les bases de données de documents offrent plus de flexibilité pour indexer ces données afin de rendre les requêtes performantes sur les valeurs des données imbriquées. Cette structure permet aux bases de données de documents de gérer différents ensembles de données et de prendre en charge des requêtes avancées.

Magasins de clés/valeurs : ces bases de données utilisent une structure simple de clés et de valeurs. Chaque clé est unique et pointe directement vers sa valeur. Cette simplicité rend les magasins de clés/valeurs extrêmement rapides pour les recherches. En revanche, ils ne sont pas idéaux pour gérer des données complexes ou hiérarchiques, car ils n'utilisent pas de langages de requête sophistiqués.

Quand utiliser chaque type ?

  • Choisissez un magasin de clés/valeurs pour les structures de données simples, comme la gestion des sessions utilisateur ou la mise en cache, où la rapidité des recherches est essentielle.
  • Choisissez une base de données de documents pour les applications avec des structures de données complexes et évolutives, comme la gestion de catalogues de produits ou de profils utilisateur.

Questions fréquentes sur les bases de données de documents

Firestore est une base de données de documents sans serveur et entièrement gérée de Google Cloud. Elle vous permet de stocker des données dans des documents flexibles et s'intègre parfaitement à d'autres services Google Cloud pour offrir une solution robuste et évolutive.

La différence réside dans la structure et la flexibilité. Les bases de données SQL, comme Cloud SQL ou Cloud Spanner, utilisent des tables rigides avec des lignes et des colonnes. Les bases de données de documents, comme Firestore, stockent les données dans des documents flexibles de type JSON, ce qui permet à la structure d'évoluer sans casser le schéma.

Avantages d'une base de données de documents

Une base de données de documents est un outil puissant permettant de répondre aux besoins modernes en matière de données. Voici quelques-uns de ses principaux avantages :

Flexibilité

Grâce à leurs schémas dynamiques, les bases de données de documents peuvent être utiles pour les applications dont les modèles de données changent fréquemment.

Performances

L'indexation intégrée et les schémas d'accès aux données efficaces rendent les bases de données de documents rapides, même lorsqu'elles gèrent des ensembles de données volumineux ou complexes.

Évolutivité

Avec le scaling horizontal, vous pouvez ajouter des serveurs à mesure que vos données augmentent, ce qui garantit des performances constantes pour les applications en pleine croissance. Les bases de données de documents peuvent également évoluer verticalement en ajoutant de la puissance de calcul à chaque nœud.

Expérience développeur

Vous pouvez mapper des documents JSON à des objets dans la base de données à l'aide d'une syntaxe que les développeurs connaissent bien. Mettez à jour les documents directement dans votre code.

Polyvalence des données

Les bases de données de documents sont idéales pour stocker, gérer et interroger différents types de données, y compris des informations non structurées et semi-structurées, ainsi que des métadonnées associées à des fichiers tels que des images et des vidéos.

Choisir Firestore pour vos besoins en base de données de documents

Firestore est une base de données de documents entièrement gérée qui simplifie la gestion des bases de données. Cette solution vous permet d'exploiter toute la puissance de Google Cloud et de sa plate-forme évolutive à l'échelle mondiale.

Que vous développiez une petite application ou une plate-forme mondiale, les fonctionnalités de Firestore sont conçues pour vous aider à avancer plus vite, tout en conservant flexibilité et performances.

  • Architecture sans serveur : Firestore est sans serveur, ce qui signifie qu'il n'y a aucune infrastructure à configurer ou à gérer. Firestore s'adapte automatiquement pour gérer vos charges de données, de zéro à des millions de connexions simultanées.
  • Intégration aux services Google Cloud : connectez-vous facilement à d'autres services Google Cloud tels que Cloud Functions, Cloud Run et BigQuery. Cela permet de créer des pipelines d'analyse et de traitement de données puissants, sans configurations complexes.
  • Compatibilité avec MongoDB : utilisez les pilotes, les outils et le code MongoDB pour vous connecter directement à Firestore. Vous pouvez ainsi très facilement migrer des applications existantes ou lancer de nouveaux projets avec des modèles familiers.
  • Mises à jour en temps réel : vos utilisateurs restent connectés grâce à la synchronisation des données en direct, intégrée directement à la plate-forme.
  • Évolutivité globale : gérez la croissance sans effort grâce à la capacité de Firestore à évoluer horizontalement tout en garantissant un accès à faible latence pour les utilisateurs du monde entier.
  • Convivial pour les développeurs : concentrez-vous sur la création de fonctionnalités innovantes, sans vous soucier de l'infrastructure ni de la maintenance. Le service entièrement géré de Firestore s'occupe du plus gros du travail.
  • Niveau sans frais pour une faible utilisation : Firestore propose un niveau sans frais généreux, ce qui en fait une solution idéale pour les start-up ou les petits projets qui souhaitent évoluer à mesure qu'ils se développent, sans frais initiaux.

En tant que composant de Google Cloud et de Firebase, Firestore s'intègre pour alimenter vos applications grâce à des intégrations simples avec Firebase Auth, BigQuery et de nombreux autres services. Des outils de collaboration en temps réel aux applications mobiles en passant par les plates-formes d'entreprise, Firestore fournit les outils dont vous avez besoin pour réussir.

Lancez-vous dès aujourd'hui avec un niveau sans frais disponible pour une utilisation limitée et profitez des avantages d'une base de données de documents puissante, fiable et évolutive.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.

Autres ressources

  • Qu'est-ce qu'une base de données relationnelle ? Découvrez les principes fondamentaux des bases de données relationnelles, y compris la façon dont elles structurent les données en lignes et en colonnes, et quand les utiliser pour une cohérence forte.
  • Qu'est-ce qu'une base de données NoSQL ? Découvrez les différents types de bases de données NoSQL, comme les magasins de clés/valeurs, de documents et orientés colonnes, et comment ils gèrent les données non structurées.
  • Premiers pas avec Firestore : suivez ce guide pour configurer votre première base de données Firestore, ajouter des données et commencer à créer des applications évolutives sur Google Cloud.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud