Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Les bases de données XML

Première rédaction de cet article le 16 mars 2006


Les bases de données existent en informatique depuis de très nombreuses années et, aujourd'hui, presque toutes celles qui sont en production sont des bases de données relationnelles. Les bases de données XML vont-elles les remplacer, au moins partiellement ?

Une base de données XML est une base de données qui stocke des documents XML. Plus précisément (car un SGBD relationnel peut stocker des documents XML comme texte), elle est optimisée pour le XML et permet d'utiliser des langages de requête XML comme XPath ou XQuery).

Voici un exemple d'utilisation d'une base de données XML ultra-simple, nommée Agouti en l'honneur d'un mignon mammifère (le code sources est disponible) :


% ./agouti init experimental
% ./agouti add  experimental test.xml
Added test.xml as ID 1
% ./agouti query  experimental '//*[text()="Moi"]' 
1: <author>Moi</author>
% ./agouti delete  experimental 1
% ./agouti query  experimental '//*[text()="Moi"]'
%

Ce qui manque à agouti ?

  • Indexation : pas seulement du texte ou du nom des éléments mais aussi des relations entre éléments pour des expressions comme foo/bar. Le problème est très complexe et a fait l'objet de nombreuses publications comme l'excellente Accelerating XPath Evaluation in Any RDBMS.
  • Validation : tester les documents en entrée contre un schéma.
  • Méta-information : nom du document, date de dépôt.

Alors, quels sont les logiciels sérieux de base de données XML ? Je n'ai testé que DB-XML (les autres sont en Java et ne semblent pas tourner sur du logiciel libre) et cela ne me semblait pas encore très au point.

À noter que les bases de données relationnelles ordinaires peuvent désormais, non seulement stocketrdu XML (après tout, ce n'est que du texte) mais également effectuer des recherches avec des langages comme XPath. Voici comment faire en PostgreSQL. Cela ne transforme pas pour autant le SGBD relationnel en SGBD XML puisque, par exemple, il n'y a aucune indexation des données, obligeant à analyser le document XML à chaque fois.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)