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.
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 :
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.
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.
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 :
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
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 :
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.
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 ?
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.
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.
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.
MongoDB est une base de données de documents largement utilisée, connue pour son format de données BSON flexible, son langage de requête ad hoc et ses capacités de scaling horizontal. Elle est disponible en tant qu'offre commerciale de MongoDB, Inc. Plusieurs bases de données concurrentes d'autres fournisseurs offrent différents degrés de compatibilité avec MongoDB.
Firestore est une base de données de documents sans serveur entièrement gérée qui assure la synchronisation des données en temps réel pour les applications Web et mobiles grâce à son intégration à Google Cloud et Firebase.
CosmosDB est un service de base de données multimodèle conçu pour les applications nécessitant des opérations de lecture et d'écriture à faible latence à l'échelle mondiale.
Couchbase est une base de données de documents distribuée et une plate-forme cloud compatible avec les charges de travail multicloud, mobiles, d'IA et d'edge computing.
Amazon DocumentDB est un service de base de données géré Amazon Web Services (AWS) compatible avec l'API MongoDB.
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.
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.
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.