Stocker du XML en BD
SGBDR-XML
Mapping XML-Relationnel (en 1NF)
Chaque élément XML est extrait et stocké dans un attribut
Fonctionne pour les schémas simples, engendre des schémas très complexes et très fragmentés sinon, et la chute des performances
En BLOB
Les contenus XML sont stockés en BLOB (ou CLOB)
Des attributs dérivés de description peuvent être automatiquement extraits
Les BD n'est plus en 1NF, mais des fonctions de parsing fournies par le SGBD XML peuvent redonner accès à l'intérieur du contenu XML
Redondance entre les attributs dérivés et le BLOB, mais les attributs peuvent être recalculés à chaque mise à jour du contenu XML (ou implémentés comme des méthodes en RO)
Bases XML natives
Basées sur un modèle logique de document XML et non plus un niveau logique relationnel
Stockage physique spécifique (fichier XML, DOM persistant, ...)
Gestionnaire offrant une logique transactionnelle orientée document XML
Langage d'interrogation propre : XPath, XSL-XSLT, XQuery
Plutôt pour les documents (volumineux) que les données
Exemple : eXists
Base de données native XML Open Source
Exemple : Requête XQuery
let $country := /mondial/country[name = 'France']
for $province in $country/province
order by $province/name
return $province/name