Niveau logique Niveau physique XPATH SGBDR XQUERY LDAP SGF SGBD OO DOM XML Système natif Plat : Données : Plat vs structuré; petit ou volumineux; avec ou sans schéma, ... Requêtes : Avec ou sans maj; accès full-text; navigationnel; relationnel (jointures, ...) Besoins applicatifs Transactions, contrôle de concurrence, réplication, ... B. Defude - INT Evry - 2003 Un document XML est stocké dans un BLOB Simple, mais pas de requêtes possibles et maj difficiles Natif Définir un nouveau SGBD adapté au stockage de documents XML Redéfinir toutes les fonctions classiques d’un SGBD (transactions, concurrence, …) Par conversion ou « mapping » Utiliser un SGBD existant (souvent relationnel) pour stocker des documents XML Nécessite certaines extensions (index spécifiques par exemple) 1 ! # !! APPLI Besoins Représentation concise des documents Support efficace des API XML Possibilité de maj données et structure ENTETE TITRE Correspondance entre structure d’arbre et des pages physiques LISTE_FORM UID MonAppli Citcom/citcom@MICA NOM_TABLE MODE @INS De nombreuses possibilités FORMULAIRE FORMULAIRE NOM_TABLE ATTRIBUT ATTRIBUT vins producteurs MODE @NOR ANNEE CRU " % '( )( Un placement physique ne peut être optimal pour toutes les requêtes possibles Besoin de plusieurs index XML a besoin d’index origine Sur les valeurs Sur la structure (navigation) Full-text (mots-clés) API Full-text XPATH XQUERY XYLEME ? O O Y NATIX Bas niveau XINDICE XML:DB XML:RPC N O N eXcelon SGBDOO DOM/XSLT O O Y Tamino ADABAS DOM/SAX O O Partiel ? O O Y GoXML $ B. Defude - INT Evry - 2003 ! & 2 +, . Stockage : convertir modèle de données XML vers graphe, relations, objets Chargement de données : convertir données XML vers arcs, tuples, objets Réécriture de requêtes : transformer requêtes XML vers requêtes cibles Transformation du résultat : système cible vers XML Défini par l’utilisateur Générique (fixe) Dirigé par les données Dirigé par le schéma Basé sur un modèle de coût (adaptation aux besoins réels de l’application) * ! / ( - ( formulaire Supporté par la majorité des SGBDR commerciaux Utilisateur spécifie comment transformer éléments en relations Flexible mais Nécessite de connaitre XML et BD Relationnelles Beaucoup de solutions possibles (laquelle choisir ?) Maj des données implique maj du mapping B. Defude - INT Evry - 2003 )( 0 &0 @valeur VALEURS &5 Noeu d valeur &3 producteurs &5 INS &6 vins &8 NOR &9 ANNEE &10 CRU ARCS formulaire &1 nom_table mode &3 &4 1 &2 nom_table mode &6 &7 attribut attribut @valeur &9 &10 &8 Select V.valeur From Valeurs V, Arcs A1, Arcs A2 Where A1.élément=« formulaire » And A1.cible=A2.source and A2.élément=« nom_table » And A2.cible=V.noeud Sourc e cible Num fils élément &0 &1 1 formulaire &0 &2 2 formulaire &1 &3 1 nom_table &1 &4 2 mode &4 &5 1 @valeur &2 &6 1 nom_table &2 &7 2 mode &7 &8 1 @valeur &7 &9 2 attribut &7 &10 3 attribut 3 Stockage générique (éléments) FORMULAIRE &0 formulaire formulaire &1 Source cible &2 nom_table mode &3 &4 nom_table mode &6 @valeur &7 attribut attribut @valeur &9 &5 &10 &8 Select N.cible From Formulaire F, Nom_table N Where F.cible=N.source 32#4 &0 &1 &0 &2 NOM_TABLE Source Cible &1 Producteur s &2 Vins ( )( Ne tient pas compte de régularité dans la structure Schéma relationnel canonique Arcs : stocke tous les arcs dans la même relation Éléments : partitionne horizontalement relation Arcs sur éléments Interrogation : nécessite des jointures MAJ : pas besoin de changer de schéma relationnel si le schéma des documents XML évolue 2, SGBD Stockage Chargement Requête Oracle9i CLOB Canonique Userdefined SQL Loader Full-text, Par XPATH, programme SQL DB2 CLOB Via DAD Userdefined DAD SQL+fulltext, SQL SQL Server ARCS Userdefined++ SQL+fulltext, XPATH OpenXML Schéma annoté 2 G. Gardarin; XML des bases de données aux services web, 2002, Dunod M. Fernandez, M. Benedikt, J. Freire, A. Sahuguet; XML and Data Management, Tutorial WWW2002 Conference, Hawai D. Chamberlin; Xquery: An XML Query Language, IBM Systems Journal, Vol41, No4, 2002 Pas de support XQUERY, MAJ via DOM " B. Defude - INT Evry - 2003 4