GNU/Linux >> Tutoriels Linux >  >> Cent OS

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

Présentation

Avec des capacités uniques, les bases de données NoSQL surmontent les contraintes rencontrées dans le modèle de base de données relationnelle. NoSQL est un terme générique désignant quatre principaux sous-ensembles de bases de données NoSQL :

  • Bases de données clé-valeur
  • Bases de données de colonnes
  • Bases de données de graphes
  • Bases de données documentaires

Dans cet article, nous expliquerons ce qu'est une base de données documentaire, décrirons ses avantages et ses inconvénients et fournirons des exemples.

Définition de la base de données de documents

Une base de données de documents est un type de base de données NoSQL qui stocke les données sous forme de documents JSON au lieu de colonnes et de lignes. JSON est un langage natif utilisé à la fois pour stocker et interroger des données. Ces documents peuvent être regroupés en collections pour former des systèmes de bases de données.

Chaque document se compose d'un certain nombre de paires clé-valeur. Voici un exemple de document composé de 4 paires clé-valeur :

{
"ID" : "001",
"Book" : "Java: The Complete Reference",
"Genre" : "Reference work",
"Author" : "Herbert Schildt",
}

L'utilisation de JSON permet aux développeurs d'applications de stocker et d'interroger des données dans le même format de modèle de document qu'ils utilisent pour organiser le code de leur application. Le modèle d'objet peut être converti dans d'autres formats, tels que JSON, BSON et XML.

Base de données relationnelle vs documentaire

Les systèmes de gestion de bases de données relationnelles (RDBMS) reposent sur le langage de requête structuré (SQL). NoSQL ne le fait pas.

Un SGBDR se concentre sur la création de relations entre les fichiers pour stocker et lire des données. Les bases de données documentaires se concentrent sur les données elles-mêmes et les relations sont représentées par des données imbriquées.

Principales comparaisons entre les bases de données relationnelles et documentaires :

SGBD Système de base de données documentaire
Structuré autour du concept de relations. Concentré sur les données plutôt que des relations.
Organise les données en tuples (ou lignes). Les documents ont des propriétés sans définitions théoriques, au lieu de lignes.
Définit les données (relations de formulaires) via des contraintes et des clés étrangères (par exemple, une table enfant fait référence à la table maître via son ID). Pas de langage DDL pour définir les schémas.
Utilise DDL (Data Definition Language) pour créer des relations. Relations représentées via des données imbriquées , et non des clés étrangères (tout document peut en contenir d'autres imbriquées, conduisant à une relation N:1 ou 1:N entre les deux entités du document).
Offre une cohérence extrême , critique pour certains cas d'utilisation tels que les opérations bancaires quotidiennes. Offre une cohérence éventuelle avec une période d'incohérence.

Fonctionnalités des bases de données documentaires

Les bases de données documentaires offrent des requêtes rapides, une structure bien adaptée à la gestion du Big Data, une indexation flexible et une méthode simplifiée de maintenance de la base de données. Il est efficace pour les applications Web et a été entièrement intégré par de grandes sociétés informatiques comme Amazon.

Bien que les bases de données SQL aient une grande stabilité et une grande puissance verticale, elles ont du mal avec des bases de données surdimensionnées. Les cas d'utilisation nécessitant un accès immédiat aux données, tels que les applications de soins de santé, conviennent mieux aux bases de données documentaires. Les bases de données documentaires facilitent l'interrogation des données avec le même modèle de document utilisé pour coder l'application.

Cas d'utilisation des bases de données documentaires

Cas d'utilisation généraux
Profils utilisateur Extraire des mégadonnées en temps réel
Bases de données de livres Données de structures variables
Gestion du contenu Catalogues
Données des patients

Nous aborderons plus en détail certains des cas d'utilisation mentionnés ci-dessus dans les sections suivantes.

Base de données de livres

Les systèmes de documents relationnels et NoSQL sont utilisés pour former une base de données de livres, bien que de différentes manières.

L'approche relationnelle représenterait la relation entre les livres et les auteurs via des tables avec IDs – un auteur table et un Livres table. Il force chaque auteur à avoir au moins une entrée dans la table Livres en interdisant les valeurs nulles.

En comparaison, le modèle de document vous permet d'imbriquer . Il montre les relations plus naturellement et simplement en s'assurant que chaque document d'auteur a une propriété appelé Livres , avec un tableau de documents de livre associés dans la propriété. Lorsque vous recherchez un auteur, toute la collection de livres apparaît.

Gestion de contenu

Les développeurs utilisent des bases de données de documents pour créer des plateformes de streaming vidéo, des blogs et des services similaires. Chaque fichier est stocké sous la forme d'un document unique et la base de données est plus facile à maintenir à mesure que le service évolue dans le temps. Les modifications importantes des données, telles que les modifications du modèle de données, ne nécessitent aucun temps d'arrêt car aucune mise à jour du schéma n'est nécessaire.

Catalogues

Les bases de données documentaires sont beaucoup plus efficaces que les bases de données relationnelles lorsqu'il s'agit de stocker et de lire des fichiers de catalogue. Les catalogues peuvent avoir des milliers d'attributs stockés et les bases de données de documents offrent des temps de lecture rapides. Dans les bases de données documentaires, les attributs liés à un seul produit sont stockés dans un seul document. La modification des attributs d'un produit n'affecte pas les autres documents.

Avantages et inconvénients de la base de données documentaire

Vous trouverez ci-dessous quelques avantages clés et inconvénients de bases documentaires :

Avantages de la base de données de documents Inconvénients de la base de données de documents
Sans schéma
Limites du contrôle de cohérence
Création et entretien plus rapides
Faiblesses d'atomicité
Aucune clé étrangère Sécurité
Formats ouverts
Gestion des versions intégrée

Les avantages et les inconvénients sont expliqués plus en détail dans les sections ci-dessous.

Avantages

  • Sans schéma . Il n'y a aucune restriction dans le format et la structure de stockage des données. C'est utile pour conserver des données existantes à des volumes massifs et différents états structurels, en particulier dans un système en constante évolution.
  • Création et voiture plus rapides e. Une maintenance minimale est requise une fois que vous avez créé le document, ce qui peut être aussi simple que d'ajouter votre objet complexe une fois.
  • Aucune clé étrangère . En l'absence de cette relation dynamique, les documents peuvent être indépendants les uns des autres.
  • Formats ouverts . Un processus de création propre qui utilise XML, JSON et d'autres dérivés pour décrire les documents.
  • Gestion des versions intégrée . Au fur et à mesure que la taille de vos documents augmente, leur complexité peut également augmenter. La gestion des versions réduit les conflits.

Inconvénients

  • Limites du contrôle de cohérence . Dans l'exemple de cas d'utilisation de la base de données de livres ci-dessus, il serait possible de rechercher des livres d'un auteur inexistant. Vous pouvez effectuer une recherche dans la collection de livres et trouver des documents qui ne sont pas liés à une collection d'auteurs.
    Chaque liste peut également dupliquer les informations sur l'auteur pour chaque livre. Ces incohérences ne sont pas significatives dans certains contextes, mais selon les normes de niveau supérieur des audits de cohérence RDB, elles entravent sérieusement les performances de la base de données.
  • Faiblesses d'atomicité . Les systèmes relationnels vous permettent également de modifier les données à partir d'un seul endroit sans avoir besoin de JOIN. Toutes les nouvelles requêtes de lecture hériteront des modifications apportées à vos données via une seule commande (comme la mise à jour ou la suppression d'une ligne).
    Pour les bases de données documentaires, une modification impliquant deux collections nécessitera que vous exécutiez deux requêtes distinctes (par collection). Cela enfreint les exigences d'atomicité.
  • Sécurité . Aujourd'hui, près de la moitié des applications Web divulguent activement des données sensibles. Les propriétaires de bases de données NoSQL doivent donc prêter une attention particulière aux vulnérabilités des applications Web.

Meilleures bases de données de documents

Amazon DocumentDB

Fonctionnalités :

  • Compatible avec MongoDB
  • Entièrement géré
  • Hautes performances avec une interrogation à faible latence
  • Conformité et sécurité solides
  • Haute disponibilité

Utilisé pour :

  • Amazon toute l'équipe de développement utilise Amazon DocumentDB pour augmenter l'agilité et la productivité. Ils avaient besoin d'index imbriqués, d'agrégations et de requêtes ad hoc, avec un processus entièrement géré.
  • La BBC l'utilise pour interroger et stocker des données à partir de plusieurs flux de données et les compiler en un seul flux client. Ils ont migré vers Amazon DocumentDB pour profiter des avantages d'un service entièrement géré avec une haute disponibilité, une durabilité et des sauvegardes par défaut.
  • Rappi est passé à Amazon DocumentDB pour réduire le temps de codage, Dow Jones pour simplifier les opérations et Samsung pour une meilleure manipulation des grosses grumes de manière plus flexible.

MongoDB

Fonctionnalités :

  • Requêtes ad hoc
  • Indexation optimisée pour les requêtes
  • Partage
  • Équilibrage de charge

Utilisé pour :

  • Forbes réduction de 58 % du temps de création, augmentation de 28 % du nombre d'abonnements grâce à une création plus rapide de nouvelles fonctionnalités, à des incorporations plus simples et à une meilleure gestion de types de données de plus en plus diversifiés.
  • Toyota trouvé beaucoup plus simple pour les développeurs de travailler à grande vitesse en utilisant des documents JSON naturels. Plus de temps est consacré à la création de valeur commerciale plutôt qu'à la modélisation des données.

Cosmos DB

Fonctionnalités :

  • Lire rapidement n'importe quelle échelle
  • Disponibilité à 99 999 %
  • Entièrement géré
  • API NoSQL/Native Core
  • Sans serveur, évolutif de manière rentable/instantanée

Utilisé pour :

  • Coca-Cola obtient des informations fournies en quelques minutes, ce qui facilite la mise à l'échelle mondiale. Avant de migrer vers Cosmos DB, cela prenait des heures.
  • ASOS avait besoin d'une base de données distribuée qui s'adapte de manière flexible et transparente pour gérer plus de 100 millions de clients de détail dans le monde.

ArangoDB

Fonctionnalités :

  • Validations de schéma
  • Indexation diversifiée
  • Clusters distribués rapidement
  • Ensembles de données efficaces et volumineux
  • Prend en charge plusieurs modèles de données NoSQL
  • Combinez des modèles dans des requêtes uniques

Utilisé pour :

  • Université d'Oxford réduction de la fréquentation hospitalière et amélioration des résultats des tests grâce au développement d'un test d'évaluation en ligne pour les maladies cardio-pulmonaires.
  • Statistiques de vol transformation de données de vol fragmentées (statut de vol, météo, retards d'aéroport et données de référence) en une seule norme, permettant des résultats précis, prédictifs et analytiques.

Serveur Couchbase

Fonctionnalités :

  • Capacité à gérer des déploiements mondiaux
  • Agilité et flexibilité extrêmes
  • Rapide à grande échelle
  • Intégrations faciles dans le cloud

Utilisé pour :

  • BT a utilisé le modèle de données flexible de Couchbase pour accélérer sa capacité à diffuser du contenu à hautes performances tout en s'adaptant facilement aux pics de demande.
  • eBay migré d'Oracle pour une solution plus rentable et applicable aux fonctionnalités (de leur système de stockage/document clé-valeur). Les performances et la disponibilité des applications ont augmenté, tandis que les développeurs ont pu utiliser leur savoir-faire SQL pour accélérer leur pipeline CI/CD via un schéma plus flexible.

CouchDB

Fonctionnalités :

  • Interface graphique basée sur un navigateur
  • Offre les réplications les plus simples
  • Authentification de l'utilisateur
  • Propriétés ACIDE

Utilisé pour :

  • Meebo, la plate-forme sociale, a utilisé CouchDB pour l'interface Web et ses applications.
  • La BBC a utilisé CouchDB pour ses plateformes de contenu dynamique.

Comment choisir ?

Les exigences critiques de votre application déterminent comment structurer les données. Quelques questions clés :

  • Allez-vous lire ou écrire davantage ? Les systèmes relationnels sont supérieurs si vous écrivez davantage, car ils évitent les doublons lors des mises à jour.
  • Quelle est l'importance de la synchronisation ? Grâce à leur structure ACID, les systèmes relationnels le font mieux.
  • Dans quelle mesure votre schéma de base de données devra-t-il être transformé à l'avenir ? Les bases de données de documents sont un choix gagnant si vous travaillez avec diverses données à grande échelle et nécessitent une maintenance minimale.

Ni document ni SQL ne sont strictement meilleurs que l'autre. Le bon choix dépend de votre cas d'utilisation. Au moment de prendre votre décision, tenez compte des types d'opérations qui seront le plus fréquemment effectuées.


Cent OS
  1. Qu'est-ce qu'une base de données NoSQL ? - NoSQL expliqué

  2. Qu'est-ce qu'un DataFrame Spark ?

  3. Qu'est-ce qu'une base de données relationnelle ?

  4. Base de données NoSQL distribuée Elasticsearch - Qu'est-ce que c'est et devriez-vous l'utiliser ?

  5. Comment ça marche ? Que fait rm ?

Qu'est-ce que la normalisation de base de données ?

Qu'est-ce que la réplication de données ? {Types et schémas de réplication expliqués}

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

PHP MySQL Sélectionner les données

Qu'est-ce que la racine du document de mon domaine ?

Qu'est-ce qu'une base de données distribuée et à quoi servent les systèmes de données distribués ?