Les bases de données sont né­ces­saires afin d’organiser les in­for­ma­tions de façon logique. Mais il existe dif­fé­rentes méthodes de struc­tu­ra­tion de base de données. Dans le domaine in­for­ma­tique, les bases de données re­la­tion­nelles 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 per­met­tant d’en­re­gis­trer les in­for­ma­tions. Comment fonc­tion­nent 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-struc­tu­ré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-struc­tu­rées per­met­tent toutefois de procéder à une or­ga­ni­sa­tion des in­for­ma­tions. Du fait de l’absence de structure claire, ces données ne sont pas adaptées à des bases de données re­la­tion­nelles puisque leurs in­for­ma­tions ne per­met­tent pas d’être or­ga­ni­sé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é­ci­fique. Ce document, qui peut par exemple être formaté avec XML, JSON ou YAML contient les in­for­ma­tions à pro­pre­ment parler. Étant donné que la base de données n’exige pas de schéma déterminé, il est également possible d’intégrer dif­fé­rents types de documents dans un même document store. Les mo­di­fi­ca­tions apportées aux documents n’ont pas à être com­mu­ni­quées à la base de données.

Note

La base de données orientée documents présente de nom­breuses si­mi­li­tudes avec les autres modèles de bases de données : on peut con­si­dé­rer ce système comme une sous-catégorie des bases de données NoSQL et la com­bi­nai­son 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 fonc­tion­nent les bases de données orientées documents ?

En théorie, il est possible de placer des données de dif­fé­rents formats et sans schéma cohérent dans une base de données orientée documents. En pratique, on utilise gé­né­ra­le­ment un format de fichier pour les documents et l’on intègre les in­for­ma­tions dans une structure fixe. Cela permet de tra­vail­ler plus fa­ci­le­ment avec les in­for­ma­tions et la base de données. Cette or­ga­ni­sa­tion permet par exemple de traiter plus ef­fi­ca­ce­ment 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 re­la­tion­nel : les in­for­ma­tions peuvent être insérées, modifiées, sup­pri­mées et re­cher­chées.

Pour pouvoir effectuer ces actions, chaque document reçoit un iden­ti­fiant unique. La façon dont celui-ci est conçu n’a en principe pas d’im­por­tance. Il est possible d’utiliser aussi bien une séquence de ca­rac­tères qu’un chemin complet afin d’adresser le document. Lors d’une recherche d’in­for­ma­tions, ce sont les documents à pro­pre­ment parler qui sont analysés : cela signifie que les données cor­res­pon­dantes ne sont pas re­cher­chées dans plusieurs colonnes de la base de données et sont extraites di­rec­te­ment des documents.

Quels sont les avantages et les in­con­vé­nients des bases de données orientées documents ?

Dans les bases de données re­la­tion­nelles clas­siques, un champ doit exister pour chaque in­for­ma­tion et dans chaque entrée. Lorsque les in­for­ma­tions ne sont pas dis­po­nibles, la cellule reste vide et doit être créée. Les bases de données orientées documents sont beaucoup plus flexibles : la structure des dif­fé­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 struc­tu­rés.

Par ailleurs, il est très facile d’intégrer de nouvelles in­for­ma­tions : alors qu’avec une base de données re­la­tion­nelle, il est né­ces­saire d’insérer un nouveau point d’in­for­ma­tion 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 sup­plé­men­taire peut être ajouté, mais ce n’est pas in­dis­pen­sable.

Par ailleurs, dans le cas des document stores, les in­for­ma­tions 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 per­for­mance. Cependant, les bases de données orientées documents peuvent uni­que­ment exploiter cet avantage de rapidité tant que l’on n’essaie pas de les doter d’éléments re­la­tion­nels : 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 re­la­tion­nelle est donc plus indiquée.

Les bases de données orientées documents les plus connues

Pour le dé­ve­lop­pe­ment d’ap­pli­ca­tions Web en par­ti­cu­lier, les bases de données jouent un rôle con­si­dé­rable pour les documents. En raison de la forte demande résultant du dé­ve­lop­pe­ment Web, de nombreux systèmes de gestion de bases de données (SGBD) sont main­te­nant dis­po­nibles 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 uti­li­sa­teur.
  • CouchDB : l’Apache Software Foun­da­tion a publié le logiciel open source CouchDB. Ce système de gestion de base de données est codé en Erlang, utilise Ja­vaS­cript et est notamment utilisé dans Ubuntu et dans les ap­pli­ca­tions de Facebook.
  • Elas­tic­search : ce moteur de recherche fonc­tionne 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 fonc­tionne via une machine virtuelle Java et peut donc être utilisé in­dé­pen­dam­ment d’un système d’ex­ploi­ta­tion. Les documents utilisés sont prin­ci­pa­le­ment 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 si­mi­laires à 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’en­tre­prise. Le four­nis­seur facture des frais pour son uti­li­sa­tion.
Aller au menu principal