|
4 SGBD pour
traiter les données XML Laurent
Maury
[ STOCKAGE ET GESTION DE
DONNÉES ]4 SGBD
pour traiter les données XML L'utilisation
croissante du langage XML dans de nombreux domaines fait naître de
nouveaux besoins en matière de stockage et de gestion de données.
Les éditeurs de SGBD adaptent leur offre pour répondre aux exigences
du marché.
Laurent
Maury , Décision
Micro, le
22/10/2001 à 00h00
| XML devient rapidement le standard incontesté des
langages de description de contenu et d'interopérabilité
applicative. Initialement perçu comme une simple évolution
normalisée du langage HTML, XML permet de séparer clairement le
contenu de sa présentation. Issu du célèbre langage de gestion de
documents SGML, dont il simplifie la spécification, il offre comme
son aîné la possibilité de valider la structure du contenu grâce à
l'utilisation optionnelle des DTD (Document Type Definition). Cette
souplesse a permis au langage et à ses dérivés (XSL, XPath, XQuery,
MathML...) de s'imposer dans de nombreux domaines d'applications,
dépassant ainsi les espérances initiales du W3C chargé de sa
normalisation. XML se trouve dorénavant au coeur de l'architecture
du système d'information : clients exploitant de manière native des
structures XML, serveurs d'applications, systèmes d'échange de
données entre applications (EAI), mise en oeuvre d'applications
distribuées (Soap...) et naturellement systèmes de stockage et de
manipulation de données. Le développement d'architectures tout-XML réclame des
fonctions adaptées pour un traitement efficace des documents XML et
de leur contenu : recherche sélective, tri, comparaison de contenus,
modification répétitive... Les éditeurs de SGBD se sont donc penchés
sur le problème du stockage et de la manipulation des flux XML et
ont tantôt choisi d'adapter leur moteur (IBM, Oracle, Microsoft...),
tantôt préféré concevoir et développer un SGBD nativement XML
(Software AG, X-Hive Corporation...). La première solution qui vient
à l'esprit consiste à exploiter la puissance du modèle relationnel
(ou mieux, relationnel-objet) en définissant un ensemble de tables
permettant de modéliser la structure de chaque document XML et d'en
stocker les différents composants de manière parcellaire. C'est la
technique du " mapping
".
Étendre les fonctions à la gestion de données
complexes La complexité d'une telle opération dépend directement
de la structure du document à enregistrer. Toutefois, le modèle
relationnel ne se prête pas aisément à la représentation
arborescente et hiérarchique caractéristique du langage XML. En
particulier, les applications Internet produisent et manipulent de
nombreux documents peu structurés ou dont la structure évolue
dynamiquement, un véritable cauchemar pour les SGBDR. Enfin, la
notion d'héritage, qui existe en XML, s'avère difficile à
représenter à l'aide du modèle relationnel. Parmi les SGBDR, seul
celui d'IBM propose une fonction permettant d'assister le travail du
développeur lorsqu'une DTD associée au document à stocker est
disponible.
Un SGBD permet de définir,
de stocker et de manipuler rapidement de grands volumes de données.
Ces dernières peuvent être de différents types (nombres, chaînes de
caractères, etc.). L'essor des applications transactionnelles et le
besoin croissant de disposer de structures d'informations complexes
ont conduit les éditeurs de SGBD à étendre leurs fonctions à la
gestion de données complexes : objets binaires de grande taille
(Blob), objets binaires structurés (Clob), données multimédias...
Pour stocker du contenu au format XML dans un SGBD, il est possible
d'utiliser les Blob (Microsoft SQL Server n'offre d'ailleurs pas
d'autre possibilité). Toutefois, le SGBD n'apporte dans ce cas
aucune aide aux développeurs d'applications dans la manipulation des
données XML ainsi stockées.
Il faut donc faire mieux
que le mapping ou l'utilisation des Blob. Certains SGBDR (Oracle9i
et DB2 UDB) disposent dorénavant d'un type de données " natif XML ".
Naturellement, les logiciels qui gèrent le format natif permettent
de définir des tables associant des données traditionnelles et du
contenu XML. Mais là aussi, une fois l'information stockée, il
s'agit de permettre aux développeurs de mettre en oeuvre des
fonctions de recherche, de comparaison, de sélection complexe et de
mise à jour sélective des données.
Définir des schémas XML pour pallier les limites des
DTD Certains SGBDR ont été dotés d'extensions provenant du
modèle objet dont notamment les types de données et les fonctions
définies par l'utilisateur (Oracle9i, DB2). À l'aide de ces
dernières, il est possible de traiter efficacement le contenu de
documents XML. Reste l'épineux problème des mises à jour
fragmentaires. En effet, mettre à jour une partie seulement d'un
document XML, même s'il est défini comme type XML, oblige à l'ouvrir
et à le refermer dans sa globalité, ce qui est très pénalisant en
termes de performances. À ce sujet, les éditeurs de SGBDR se
réfugient derrière l'absence d'un langage de requête et de
manipulation XML normalisé. Celui des SGBDR, SQL, n'est pas adapté à
l'usage du langage XML. Les extensions objet et la conformité à la
norme SQL3 pallient cette inadaptation chronique, mais au prix de
définitions parfois très complexes.
Naturellement, les SGBD
nativement XML disposent eux de puissantes fonctions de manipulation
de données. Mais en l'absence d'un langage de requête normalisé,
chaque système introduit ses méthodes et ses outils spécifiques.
Tamino intègre, par exemple, une version très avancée de XQL et
s'intéresse déjà au futur XMLQuery. De tels langages, conçus
d'emblée pour la manipulation de données XML, confèrent à ces outils
une grande efficacité pour des applications front office destinées à
manipuler des documents complexes ou des données multimédias. Les
SGBD nativement XML introduisent cependant une nouvelle contrainte :
l'intégration avec l'existant et, en particulier, la gestion de
transactions impliquant des SGBD hétérogènes. Cette contrainte
limite l'utilisation de ces SGBD aux nouvelles applications qui ne
nécessitent pas d'intégration transactionnelle avec le système
d'information existant.
Voilà qui justifie
pleinement les travaux actuellement conduits par le W3C, consacrés à
la définition des schémas XML (future norme XSD). Ceux-ci devraient
étendre le principe des DTD et en pallier les principales limites.
Tout d'abord, contrairement aux DTD, les schémas XML devront
respecter la syntaxe du langage. Mais surtout, ils permettront de
" typer " fortement les données contenues dans un document
XML. Dès lors, il sera plus aisé de définir des structures de
stockage idoines, voire d'automatiser les opérations de mapping. Les
schémas pourraient également réconcilier et standardiser les
différentes méthodes de représentation des données XML : SGBD natifs
XML, SGBDR dotés d'un type de données XML et modélisation
relationnelle de la structure hiérarchique d'un document XML.
Si vous êtes pressé
Un SGBD compatible XML doit offrir trois
fonctions principales : le stockage natif des documents XML, un
langage d'interrogation capable de manipuler contenu et structure
des documents, et un générateur de résultats des requêtes au format
XML. Deux types d'offres sont disponibles sur le marché : les
extensions XML des SGBDR et les serveurs XML. Parmi les premiers,
Oracle9i et DB2 UDB d'IBM proposent sensiblement les mêmes
possibilités : stockage natif global, enrichissements de SQL3 avec
des fonctions proches de XQL, création d'index, résultats de
requêtes en XML. Ces deux solutions sont recommandées car elles
permettent d'approcher sérieusement le développement d'applications
XML. Microsoft, avec SQL Server, reste très en retrait et ne peut
rivaliser avec de tels concurrents. Tamino de Software AG est
également recommandé. Serveur de données nativement XML, il répond
idéalement aux besoins de développement d'applications front office
évoluées.
Le périmètre du test
Tout juste né, le marché des systèmes de
gestion de bases de données nativement XML est déjà menacé par les
nouvelles fonctions introduites au coeur des SGBDR. Nous avons ainsi
choisi de nous intéresser de près à la compatibilité XML émergeante
de ces derniers. Les leaders ont été sélectionnés : IBM, Oracle et
Microsoft. IDS, du fait de la récente acquisition d'Informix par
IBM, n'a pas été sélectionné, ce qui n'enlève rien à l'intérêt de la
solution. De même Sybase, compte tenu de la proximité du produit
avec SQL Server de Microsoft, ne fait pas partie de notre sélection.
Les logiciels retenus dans le cadre de ce banc d'essai représentant
plus de 90 % des solutions exploitées sur le marché de la gestion de
données.
Glossaire
DTD
Document Type Definition. Document (non XML)
permettant de décrire les structures des documents XML.
L'utilisation des DTD est facultative (validation sémantique). Elles
permettent de valider un document XML bien formé. Les DTD peuvent
être internes ou externes aux documents XML dont elles expriment la
structure. Schémas
XML
En cours de définition par un groupe de
travail du W3C, les schémas permettront comme les DTD de décrire la
structure d'un document XML, mais avec une précision accrue,
notamment au niveau du type des données contenues. contrairement aux
DTD, les schémas respecterons par ailleurs la syntaxe du langage
XML. XSL
XML Styleshe et Language. Standard du W3C
basé sur XML permettant de construire des feuilles de style.
L'association d'une feuille de style à un document XML normalise la
présentation des données. XSLT
XML Styleshe et Language Transformation.
Langage basé sur XML permettant de modifier la structure et le
contenu d'un document XML par application de transformations
élémentaires (langage de script). SQL
Structured Query Language. Langage de
requêtes caractéristiques des SGBDR. SQL3
Extension de SQL permettant de manipuler des
structures relationnelles-objet. XQL
XML Query Language. Première tentative du W3C
de normalisation d'un langage de requête destiné à manipuler des
documents XML. XPath est un sous-ensemble de XQL. XQL n'est qu'une
recommandation et pas encore une norme. XPath
Standard du W3C permettant de naviguer au
sein d'un document XML. XPath construit une représentation
arborescente des documents. Il fournit un ensemble de fonctions
permettant de parcourir l'arbre ainsi construit et d'appliquer sur
ce dernier des critères de tests et des fonctions de recherche. XQL
intègre XPath. XMLQuery
Langage universel de requête (destiné à
remplacer la proposition XQL et les divers dialectes associés) en
cours de définition par un groupe de travail du W3C impliquant de
nombreux acteurs. Cette future norme aura notamment pour objectif de
réconcilier SQL et l'ensemble des dialectes actuellement voisins de
XQL.
|
|
|