Base de données orientée documents : comment fonctionne le document store ?
Les bases de données sont nécessaires afin d’organiser les informations de façon logique. Mais il existe différentes méthodes de structuration de base de données. Dans le domaine informatique, les bases de données relationnelles sont les plus courantes. Il existe également des bases de données orientées documents. Elles sont basées sur une structure de tableau simple et des documents permettant d’enregistrer les informations. Comment fonctionnent ces bases de données et quels sont leurs avantages ?
Qu’est-ce qu’un document store ?
Les bases de données orientées documents – également appelées document store – sont utilisées pour gérer des données semi-structurées. Il s’agit de données ne suivant pas une structure fixe et portant la structure en elles. Des marquages dans les données semi-structurées permettent toutefois de procéder à une organisation des informations. Du fait de l’absence de structure claire, ces données ne sont pas adaptées à des bases de données relationnelles puisque leurs informations ne permettent pas d’être organisées dans des tableaux.
Les bases de données orientées documents créent une paire simple : une clé est affectée à un document spécifique. Ce document, qui peut par exemple être formaté avec XML, JSON ou YAML contient les informations à proprement parler. Étant donné que la base de données n’exige pas de schéma déterminé, il est également possible d’intégrer différents types de documents dans un même document store. Les modifications apportées aux documents n’ont pas à être communiquées à la base de données.
La base de données orientée documents présente de nombreuses similitudes avec les autres modèles de bases de données : on peut considérer ce système comme une sous-catégorie des bases de données NoSQL et la combinaison d’une clé et d’un document le rapproche fortement des bases de données Key Value. En tant que système orienté sur les lignes, il s’oppose ainsi aux bases de données orientées colonnes.
Comment fonctionnent les bases de données orientées documents ?
En théorie, il est possible de placer des données de différents formats et sans schéma cohérent dans une base de données orientée documents. En pratique, on utilise généralement un format de fichier pour les documents et l’on intègre les informations dans une structure fixe. Cela permet de travailler plus facilement avec les informations et la base de données. Cette organisation permet par exemple de traiter plus efficacement les requêtes de recherche dans la base de données. En général, une base de données orientée documents permet d’effectuer les mêmes actions qu’un système relationnel : les informations peuvent être insérées, modifiées, supprimées et recherchées.
Pour pouvoir effectuer ces actions, chaque document reçoit un identifiant unique. La façon dont celui-ci est conçu n’a en principe pas d’importance. Il est possible d’utiliser aussi bien une séquence de caractères qu’un chemin complet afin d’adresser le document. Lors d’une recherche d’informations, ce sont les documents à proprement parler qui sont analysés : cela signifie que les données correspondantes ne sont pas recherchées dans plusieurs colonnes de la base de données et sont extraites directement des documents.
Quels sont les avantages et les inconvénients des bases de données orientées documents ?
Dans les bases de données relationnelles classiques, un champ doit exister pour chaque information et dans chaque entrée. Lorsque les informations ne sont pas disponibles, la cellule reste vide et doit être créée. Les bases de données orientées documents sont beaucoup plus flexibles : la structure des différents documents n’a pas à être cohérente. La base de données peut même héberger de grands volumes de données non structurés.
Par ailleurs, il est très facile d’intégrer de nouvelles informations : alors qu’avec une base de données relationnelle, il est nécessaire d’insérer un nouveau point d’information dans tous les ensembles de données, dans le cas d’un document store, il suffit d’intégrer la nouvelle entrée dans quelques ensembles de données seulement. Dans d’autres documents, le contenu supplémentaire peut être ajouté, mais ce n’est pas indispensable.
Par ailleurs, dans le cas des document stores, les informations ne sont pas partagées entre plusieurs tableaux reliés les uns aux autres. Tout se trouve à un même endroit ce qui peut entraîner une meilleure performance. Cependant, les bases de données orientées documents peuvent uniquement exploiter cet avantage de rapidité tant que l’on n’essaie pas de les doter d’éléments relationnels : les références ne peuvent pas être utilisées dans le concept de document stores. Si l’on essaie malgré tout de relier des documents entre eux, le système devient alors très complexe et peu pratique. Dans le cas de volumes de données fortement reliés, une base de données relationnelle est donc plus indiquée.
Les bases de données orientées documents les plus connues
Pour le développement d’applications Web en particulier, les bases de données jouent un rôle considérable pour les documents. En raison de la forte demande résultant du développement Web, de nombreux systèmes de gestion de bases de données (SGBD) sont maintenant disponibles sur le marché. La liste suivante vous présente les plus connus :
- BaseX : ce projet open source utilise Java et XML. BaseX est fourni avec une interface graphique utilisateur.
- CouchDB : l’Apache Software Foundation a publié le logiciel open source CouchDB. Ce système de gestion de base de données est codé en Erlang, utilise JavaScript et est notamment utilisé dans Ubuntu et dans les applications de Facebook.
- Elasticsearch : ce moteur de recherche fonctionne sur la base d’une base de données orientée documents. Pour ce faire, des documents JSON sont utilisés.
- eXist : le système de gestion de base de données open source eXist fonctionne via une machine virtuelle Java et peut donc être utilisé indépendamment d’un système d’exploitation. Les documents utilisés sont principalement au format XML.
- MongoDB : MongoDB est la base de données NoSQL la plus répandue. Le logiciel est codé en C++ et utilise des documents similaires à JSON.
- SimpleDB : avec SimpleDB (codé en Erlang), Amazon a développé son propre système de gestion de base de données pour les services Cloud de l’entreprise. Le fournisseur facture des frais pour son utilisation.