Une base de données document est un type de base de données NoSQL pouvant être utilisée pour stocker et interroger des données sous forme de documents de type JSON. JavaScript Object Notation (JSON) est un format ouvert d'échange de données lisible à la fois par l'humain et par la machine. Les développeurs peuvent utiliser des documents JSON dans leur code et les enregistrer directement dans la base de données document. La nature souple, semi-structurée et hiérarchique des documents et des bases de données document leur permet d'évoluer avec les besoins des applications.

Base de données document JSON
Requête de base de données document JSON

Quels sont les avantages des bases de données document ?

Les bases de données document permettent une indexation flexible, des requêtes ad hoc efficaces et des analyses sur des recueils de documents. Découvrez ci-dessous les avantages.

Facilité de développement

Les documents JSON sont mappés à des objets, un type de données courant dans la plupart des langages de programmation. Lors de la création d'applications, les développeurs peuvent créer et mettre à jour des documents de manière flexible directement à partir du code. Ainsi, ils passent moins de temps à créer des modèles de données au préalable. Le développement d'applications est donc plus rapide et plus efficace.

Schéma flexible

Une base de données document vous permet de créer plusieurs documents avec différents champs au sein d'un même recueil. Cela peut être pratique lorsque vous stockez des données non structurées telles que des e-mails ou des publications sur les réseaux sociaux. Cependant, certaines bases de données document proposent la validation de schéma, ce qui vous permet d'imposer des restrictions à la structure.

Performance à l'échelle

Les bases de données document offrent des capacités de distribution intégrées. Vous pouvez les mettre à l'échelle horizontalement sur plusieurs serveurs sans affecter les performances, ce qui est également rentable. De plus, les bases de données document garantissent la tolérance aux pannes et la disponibilité grâce à la réplication intégrée.

Quels sont les cas d'utilisation des bases de données document ?

Le modèle de document fonctionne bien avec des cas d'utilisation tels que la gestion de contenu, les catalogues, la gestion des capteurs, etc. Pour chaque cas d'utilisation, chaque document est unique et évolue au fil du temps.

Gestion de contenu

Une base de données document est un excellent choix pour les applications de gestion de contenu comme les blogs et les plateformes vidéo. Avec une base de données document, chaque entité que suit l'application peut être stockée comme un document unique. La base de données document est plus intuitive pour qu'un développeur puisse mettre à jour une application à mesure que les exigences évoluent. De plus, si le modèle de données doit être modifié, seuls les documents concernés doivent être mis à jour. Aucun schéma de mise à jour ou interruption de la base de données n'est nécessaire pour effectuer les modifications.

Catalogues

Les bases de données de documents sont un bon moyen de stocker des informations sur les catalogues. Par exemple, dans une application d'e-commerce, des produits différents ont souvent des attributs différents. Gérer des milliers d'attributs dans des bases de données relationnelles n'est pas efficace, et cela nuit aux performances de lecture. En utilisant une base de données document, les attributs de chaque produit peuvent être décrits dans un seul document pour une gestion aisée et une vitesse de lecture supérieure. Vous pouvez modifier les attributs d'un produit sans craindre de changer ceux d'un autre produit.

Gestion des capteurs

L'Internet des objets (IoT) permet aux entreprises de collecter régulièrement des données à partir d'appareils intelligents tels que des capteurs et des compteurs. Les données des capteurs arrivent généralement sous la forme d'un flux continu de valeurs variables. En raison de problèmes de latence, certains objets de données peuvent être incomplets, dupliqués ou manquants. En outre, vous devez collecter un volume important de données avant de pouvoir les filtrer ou les résumer à des fins d'analyse.

Les magasins de documents sont plus pratiques dans ce cas. Vous pouvez rapidement stocker les données des capteurs telles quelles, sans avoir à les nettoyer ou à les rendre conformes à des schémas prédéterminés. Vous pouvez également les mettre à l'échelle selon vos besoins et supprimer des documents entiers une fois les analyses effectuées.

Comment fonctionnent les bases de données document ?

Les bases de données document stockent les données sous forme de paires clé-valeur au format JSON. Vous pouvez lire et écrire des documents JSON dans les bases de données par programmation.

Structure des documents JSON

Le format JSON représente les données de trois manières :

Clé-valeur

Les paires clé-valeur sont enregistrées entre accolades. La clé est une chaîne et la valeur peut être n'importe quel type de données, tel qu'un entier, un décimal ou un booléen. Par exemple, une clé-valeur simple est {"année»: 2013}.

Table

Une table est un ensemble ordonné de valeurs définies entre crochets gauche ([) et droit (]). Les éléments de la table sont séparés par des virgules. Par exemple, {"fruit": ["pomme","mango"]}.

Objets

Un objet est un ensemble de paires clé-valeur. Les documents JSON permettent essentiellement aux développeurs d'intégrer des objets et de créer des paires imbriquées. Par exemple, {"adresse": {"pays": "USA","état": "Texas"}}.

Exemple de documents JSON

Dans l'exemple suivant, un document de type JSON décrit un jeu de données de film.

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

Vous pouvez voir que le document JSON contient des valeurs simples, des tables et des objets de manière assez flexible. Vous pouvez même avoir une table contenant des objets JSON. Ainsi, les bases de données document permettent de créer une hiérarchie illimitée d'objets JSON intégrés. C'est à vous de choisir le schéma que vous souhaitez donner à votre magasin de documents.

Opérations de base de données document

Vous pouvez créer, lire, mettre à jour et supprimer des documents complets stockés dans la base de données. Les bases de données document fournissent un langage de requête ou une API qui permet aux développeurs d'exécuter les opérations suivantes :

Créer

Vous pouvez créer des documents dans la base de données. Chaque document possède un identifiant unique qui sert de clé.

Lire

Vous pouvez utiliser l'API ou le langage de requête pour lire les données du document. Vous pouvez exécuter des requêtes à l'aide de valeurs de champs ou de clés. Vous pouvez également ajouter des index à la base de données pour améliorer les performances de lecture.

Mettre à jour

Vous pouvez mettre à jour les documents existants de manière flexible. Vous pouvez réécrire l'intégralité du document ou mettre à jour des valeurs individuelles.

Quelle est la différence entre une base de données document et des magasins clé-valeur ?

Une base de données clé-valeur est un type de base de données non relationnelle qui utilise une méthode clé-valeur simple pour stocker des données. Elle stocke les données sous forme de paires clé-valeur dans lesquelles une clé sert d'identifiant unique. Les clés et les valeurs peuvent se présenter sous toutes les formes, des objets simples aux objets composés complexes.

Une base de données document est un type spécial de magasin clé-valeur, où les clés ne peuvent être que des chaînes. De plus, le document est codé à l'aide de normes telles que JSON ou de langages connexes tels que XML. Vous pouvez également stocker des PDF, des fichiers image ou des documents texte directement sous forme de valeurs.

Lorsque vous interrogez votre banque de documents, vous pouvez lire la valeur ou une partie d'une valeur, en particulier s'il s'agit d'un autre objet JSON. Par exemple, vous pouvez avoir {"livre": {"id": 1,"prix": $10}}, puis interroger book.price, et la base de données renverra la valeur 10. Les bases de données clé-valeur renvoient toujours la valeur complète avec l'identifiant et le prix.

Comment AWS peut-il prendre en charge vos besoins en matière de bases de données document ?

Amazon DocumentDB (compatible avec MongoDB) est un service de base de données document JSON native entièrement géré qui prend en charge les applications de document, dont MongoDB. Les développeurs peuvent utiliser les mêmes codes applicatifs, pilotes et outils MongoDB pour exécuter, gérer et mettre à l'échelle les charges de travail sur Amazon DocumentDB. Vous bénéficiez de performances, d'une capacité de mise à l'échelle et d'une disponibilité améliorées sans vous soucier de la gestion de l'infrastructure sous-jacente. Avec Amazon DocumentDB, vous bénéficiez :

  • d'une mise à l'échelle jusqu'à plusieurs millions de requêtes de lecture et d'écriture par seconde grâce aux clusters élastiques Amazon DocumentDB, avec un impact minime ou nul sur les performances et sans avoir à gérer l'infrastructure sous-jacente ;
  • d'un stockage et d'un calcul découplés afin d'améliorer les performances de lecture grâce à un maximum de 15 réplicas en lecture partageant le même stockage sous-jacent, sans avoir à effectuer des écritures sur les nœuds de réplica ;
  • d'une automatisation des tâches de gestion des bases de données manuelles indifférenciées sans frais de licence, notamment l'allocation du matériel, l'application de correctifs, la configuration, etc. ;
  • d'une haute disponibilité de 99,99 %, améliorée grâce aux clusters globaux Amazon DocumentDB pour les applications distribuées dans le monde et offrant des performances de lecture rapides et locales ; 
  • d'une durabilité de 99,99 % avec la réplication automatique, la sauvegarde continue et l'isolement strict du réseau ,
  • d'une fiabilité et d'une durabilité élevées grâce au stockage tolérant aux pannes avec fonction d'autoréparation, la réparation ponctuelle, les sauvegardes continues, etc. ; Amazon DocumentDB assure la durabilité de vos données sur trois zones d'une même région en répliquant les nouvelles écritures de six manières, alors que vous ne payez que pour une copie ,
  • d'une haute sécurité grâce au chiffrement par défaut au repos, à l'isolement du réseau et à un audit avancé, tout en ayant la possibilité de contrôler les autorisations au niveau des ressources grâce à un accès précis ;
  • d'une vaste couverture de conformité, y compris aux normes SOC (1, 2 et 3), à la certification PCI DSS, à la loi HIPAA et à d'autres.

Démarrez avec les bases de données document sur AWS en créant un compte gratuit dès aujourd'hui !

Data modeling with Amazon DocumentDB
Introduction to Amazon DocumentDB Elastic Clusters