36
XML - modèle de représentation de données XML dans quelles BD Modèle XML vers modèle relationnel BD XML native BD étendues SQL/XML XML et les bases de données Mihaela JUGANARU-MATHIEU [email protected] École Nationale Supérieure des Mines de St Etienne février 2012 Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU [email protected]

  • Upload
    vodung

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

XML et les bases de données

Mihaela [email protected]

École Nationale Supérieure des Mines de St Etienne

février 2012

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 2: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

XML - un format de représentation de l’informationXML ou autre langage dérivé : SVG, MathML, SMIL, RSS,EDI-XML, ebXML, OWL, RDF etc.

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 3: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

XML - modèle de représentation de données

C’est un modèle très différent du modèle EAR, modèle relationnelou modèle par objets (diagramme de classe en UML).

Les données qui se prêtent à cette modélisation ont :un degré de régularité assez variable (des composants ou desattributs peuvent manquer ou être en nombre très variable)une certaine "sérialisation" (ordre) parmi les composantsune granularité évidente (un element peut faire partie d’unautre)

On parle de données semi-structurées.

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 4: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple : pour chaque type de document papier d’une entreprise(contrat, facture, etc.) on peut facilement proposer une DTD ouune XML Schema.

Domaines : informations médicales et biologiques, informations detype document, informations de biologie moléculaire et dereprésentation du génome.

Bibliographie :Serge Abiteboul, Peter Buneman et Dan Suciu. Data on theWeb : From Relations to Semistructured Data and XML.Morgan Kaufmann, 2001.Antoine Lonjon et Jean-Jacques Thomasson ModélisationXML, Eyrolles, 2006.

La modélisation XML des données se prête bien aussi à l’usage destechniques de type "design pattern" et tire pleinement profit destechnologies autour de XML : espace de noms, XInclude, XLink ...Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 5: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Avantages clairs de XML :

décrit des informations de façon non-ambigue et supporte bienn’importe quelle mise en page ultérieure (séparation contenu -structure)excellent compromis pour des informations orientées donnéeset pour celles orientées contenubon vecteur pour échanger des informations entre SI, logicielsou BD

**

un document XML = une base de données ?une "collection" de documents XML = une base de données ?

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 6: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Plusieurs questions :comment garder XML dans une base de données “classique” ?quels autres types de base de données pour contenir du XML ?comment explorer les flux XML contenus ?comment assurer le même fichier XML en entrée et en sortie ?

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 7: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Base de donnés contenant du XML :solution "simple" : garder XML dans le modèle relationnelsolution "naïve" : garder XML comme attribut de table detype LOB (Large Object) - CLOB ou BLOBadmettre XML comme type de base

base de données étenduesbase de données native XML

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 8: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Rappel des fonctionnalités qu’un SGBD doit assurer :la définition des bases de données et des “objets” contenusla manipulation des donnéesla confidentialitél’intégrité des donnéesla sécurité de fonctionnementla gestion des accès concurrents

Ces fonctionnalités doivent être assurées pour tout SGBD, mais lemodèle de représentation de données influent grandement sur leurmise en place

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 9: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Caractéristiques des documents XML :les objets XML nécessitent moins de modifications (que lesenregistrements des tables).consulter XML signifie avoir soit le contenu complet, soit unepartie du documentprésenter un résultat : forme textuelle ou autre (XSLT)valider un document XML : par rapport à sa description(DTD, XML XSchema) mais moins par rapport à d’autresdocuments XML (clé étrangère ?)les documents XML peuvent être partitionnés de diversesmanière en collections

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 10: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Les fonctionnalités d’un SGBD supportant XML :la définition des bases de données et des “objets” contenus :documents, collections, procéduresla manipulation des données :

validationcomparaison entre documents : Xdiffinterrogation : langages de type XPath, Xquerytraitements de type XSLT, transformation XSL-FO, etc.modification : insertion, suppression, mise à jour ( ?)recherche d’informationfouille (à la rigueur)

la confidentialité - les utilisateurs définissent des droits d’accèsà des collections,mais pas à des éléments de documentsl’intégrité des données - pas plus que ID et IDREF à l’intérieurd’un même documentla sécurité de fonctionnement - classiquela gestion des accès concurrents ( ?)

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 11: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Soit le document :

<?xml version="1.0"?><biblio><livre><titre>Germinal</titre><auteur>E. Zola</auteur>

</livre><livre><titre>Comprendre XSLT</titre><auteur>B. Amann</auteur><auteur>P. Rigaux</auteur><editeur>O’Reilly</editeur>

</livre></biblio>

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 12: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

L’arbre associé :

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 13: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Si on connait le sens (la sémantique) des données enregistrées, pource type de document on peut proposer les 2 tables :

LIVRE :titre code_livre editeur

Germinal l1 NULLComprendre XSLT l2 O’Reilly

AUTEUR :nom_auteur code_livre

E. Zola l1B. Amann l2P. Rigaux l2

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 14: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple : trouver le titres des livres d’E. Zola :En XQuery

for $i in doc("biblio.xml")/biblio/livrewhere $i/auteur = "E. Zola"return $i/titre

En SQL avec une seule jointure sur les deux tables :SELECT L.*FROM LIVRE L, AUTEUR AWHERE L.CODE_LIVRE = A.CODE_LIVRE ANDA.AUTEUR = ’E. Zola’;

Défauts : la méthode n’est pas générique, car elle impose laconnaissance de la sémantique des balises et l’augmentation dunombre de tables (même ordre que le nombre de balises).

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 15: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Représentation par structure/valeur

Pour représenter n’importe quel document XML deux tablessuffissent :

une qui garde la structure arborescente avec le numéro dunœud, sa balise, son type, son père et le numéro d’ordre parmises frères.une table qui garde les valeurs des feuilles

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 16: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Représentation :

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 17: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Même interrogation en SQL : 5 tables de sélection et 4 conditionsde jointure

select V2.valfrom R L, R A, R T, S V1, S V2where L.lab=’livre’ and A.lab=’auteur’ andT.lab=’titre’ and L.id=A.par andL.id=T.par and A.id=V1.noeud andT.id=V2.noeud and V1.val=’E. Zola’ ;

Défaut : lourdeur dans l’écriture (et la résolution de requête).

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 18: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Méthode Monet

Fragmentation en tables basée sur les chemins

Classe : type de chemin

biblio.livre, biblio.livre.titre, biblio.livre.auteur, etc.

Chaque chemin correspond à une table binaireTypes d’associations :

père - filsnœud - valeurnœud - attributnœud - rang

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 19: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 20: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

SQL : 4 tables de sélection et 3 conditions de jointure :

select V2.valfrom biblio.livre.titre A,biblio.livre.auteur B,biblio.livre.auteur.val V1,biblio.livre.titre.val V2where A.Par=B.Par and A.Id=V1.Id andB.Id=V2.Id and V2.Val=’E. Zola’ ;

Défaut : nombre important de tables générées

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 21: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

BD native XML

BD native XML (NXD - Native XML Data) : définit un modèlelogique de document XML, stocke et retrouve les documents enfonction de ce modèle.Unité fondamentale de stockage = document XML.Deux types de NXD :

basée sur le textebasée sur un modèle interne

L’indexation se fait en format propriétaire ou avec un SGBDclassique.

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 22: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Caractéristiques de NXD :supporte la notion de collection (équivalente à celle de table)langages de requête : plusieurs et variés - XPath, XQL, XQuerysupporte les mises à jour et les effacementssupporte les transactions, verrouillages et accès concurrents auniveau du documentaller-retour des documents (un document est restitué dans lamême forme qu’il a été introduit)supporte parfois les données distantesstockage des entités externes difficilepeu de redondance de l’information (normalisation, XLink)intégrité référentielle (interne, externe) ?passage à l’échelle

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 23: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Deux exemples NXD :XediX (CEA et Aristote) - stockage des copies d’écran, 100 TB,indexation par le biais d’un SGDB classique

Xyleme (Sofia A.) - entrepôt XML, Xdiff, stockage des versions,indexation en format propriétaire (exemple : la collection du"Monde").

Beaucoup d’autres produits : Tamino, XQuareBridge (OpenSource),eXist, Berkley (Oracle)

Bibliographie :http://www.rpbourret.com/xml/XMLAndDatabases.htm

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 24: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Bases de données étendues

Autre solution envisagée : étendre les fonctionnalités des BD dumarché (Oracle, DB2 d’IBM et SQLServer de Microsoft) afin desupporter XML comme type natif.

Premières solutions très simples : garder du XML dans une chainede caractères : VARCHAR2 ou LONG RAW. On ne tirait aucunprofit du XML.

Solution actuelle :type de données à part pour XML et sur ce type des fonctionsspécifiques XML sont implémentées.

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 25: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Avantages des BD étendues :on tire profit des notions très fortes de normalisation,indexation, intégrité référentielle qui sont déjà implémentées.on profite également de toutes les fonctions SGBD accessibleset fiables : accès multiples, gestion complexe d’utilisateurs,techniques de sauvegarde.

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 26: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Solutions Oracle pour XML :garder XML dans un LOB (Large OBject) de type VARCHAR2ou extensions. Mais les requêtes SQL, encore moins XPath,Xquery, ne fonctionnent pas. On peut utiliser Oracle Text pourfaire de la RI simplemapper XML dans une structure relationnelle : approchemanuelle ou le package DBMS_XMLSAVEgarder XML dans un ficher externe manipulable par le moduleOracle XML Database Repositoryutiliser le type natif XML : XMLTYPE

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 27: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Voici l’évolution dans la vision d’XML depuis la version 8i en 1999 :

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 28: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Les tables peuvent don contenir des attributs de type XML (1 partable !). Ces attributs peuvent être indexés et parsés avec deschemins XPath, on peut faire de requêtes XQuery.Exemples : requête SELECT avec une expression XPath dans laclause WHERE et création d’un index sur la partie textuelle d’unélément.

create table purcchaseorder(x xmltype);

select value(x) from purchaseorder xwhere

existsNode(value(x),’ /PurchaseOrder[User="SMITH"]’) = 1;

create index ipurchaseorderuseron purchaseorder x(extract(value(x), ’/PurchaseOrder/User’));

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 29: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

La vérification des contraintes référentielles ou la validation dudocument XML se réalise avec des mécanismes spécifiques de BDR.

Exemples : trigger et clé étrangère :

create or replace triggerVALIDATE_PURCHASEORDERbefore insert on purchaseorderfor each rowbeginif (:new.sys_nc_rowinfo\$ is not null) then

:new.sys_nc_rowinfo\$.schemavalidate();end if;

end;

alter table purchaseorderadd constraint USER_IS_VALIDforeign key extractValue(’/PurchaseOrder/User’)references SCOTT.EMP(ENAME);

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 30: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

SQL/XML

SQL/XML est une extension du langage SQL afin d’obtenir des fluxXML depuis une BD relationnelle.Plusieurs fonctions ont été proposées, on a choisi d’implémenter :

XMLElement - qui construit un élément XML à partir d’unevaleur issue de la base de donnéesXMLAttribute - qui place dans un attribut XML une valeurXMLAgg - fonction agrégat qui construit un élément composéà partir d’une liste de valeursXMLConcat - qui concatène deux ou plusieurs éléments XMLXMLForest : construit une séquence d’éléments XML

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 31: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Soit la table attraction sur laquelle on exécutera nos requêtes :select * from attraction;

COUNTY_NAM ATTRACTION_NAME ATTRACTION_URL G LOCATION---------- ------------------------------ ---------------------------------------- - ---------------Alger Pictured Rocks http://www.nps.gov/piro/ Y Munising

Marquette Da Yoopers Tourist Trap http://www.dayoopers.com/thetrap.html N Ishpeming

Chippewa Valley Camp Museum Ship http://www.thevalleycamp.com/ N Sault Ste. Marie

Mackinac Mackinac Bridge http://www.mackinacbridge.org/ Y

Alger Valley Spur http://ValleySpur.com Y Munising

Marquette Ski Hall of Fame http://skihall.com/www/ N Ishpeming

6 rows selected.Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 32: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple 1 : construction d’éléments XML successifs.

SELECT XMLElement("Attraction",attraction_name)FROM attraction;

produit :

<Attraction>Pictured Rocks</Attraction><Attraction>Da Yoopers Tourist Trap</Attraction><Attraction>Valley Camp Museum Ship</Attraction><Attraction>Mackinac Bridge</Attraction><Attraction>Valley Spur</Attraction><Attraction>Ski Hall of Fame</Attraction>

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 33: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple 2 : construction d’un unique élément XML.

SELECT XMLElement("Attraction",XMLAttributes(government_owned AS GOV),XMLForest(attraction_name AS "Name",Location AS "Location",attraction_url AS "URL"))FROM attractionWHERE attraction_name=’Mackinac Bridge’;

produit :

XMLELEMENT("ATTRACTION",XMLATTRIBUTES(GOV-------------------------------------------------

<Attraction GOV="Y"><Name>Mackinac Bridge</Name><URL>http://www.mackinacbridge.org/</URL></Attraction>

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 34: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple 3 : Utilisation d’une fonction agrégat.

SELECT XMLElement("County",XMLAttributes(c.county_name AS "Name"),

XMLAgg(XMLElement("Attraction",XMLAttributes(government_owned AS GOV),XMLForest(a.attraction_name AS "Name",a.Location AS "Location",a.attraction_url AS "URL"))))

FROM county c, attraction aWHERE c.county_name = a.county_nameGROUP BY c.county_name;

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 35: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple 3 : Utilisation d’une fonction agrégat - suite

XMLELEMENT("COUNTY",XMLATTRIBUTES(C.COUNTY_NAMEAS"NAME"),XMLAGG--------------------------------------------------------------------------<County Name="Chippewa">

<Attraction GOV="N"><Name>Valley Camp Museum Ship</Name><Location>Sault Ste. Marie</Location><URL>http://www.thevalleycamp.com /</URL>

</Attraction></County><County Name="Mackinac">

<Attraction GOV="Y"><Name>Mackinac Bridge</Name><URL>http://www.mackinacbridge.org/</URL>

</Attraction></County><County Name="Marquette">

<Attraction GOV="N"><Name>Da Yoopers Tourist Trap</Name><Location>Ishpeming</Location><URL>http://www.dayoopers.com/thetrap.h tml</URL>

</Attraction><Attraction GOV="N">

<Name>Ski Hall of Fame</Name><Location>Ishpeming</Location><URL>http://skihall.com/www/</URL>

</Attraction></ County>...

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données

Page 36: XML et les bases de données - kiwi.emse.frkiwi.emse.fr/DN/XML_BD.pdf · admettreXML comme type de base basededonnéesétendues basededonnéesnativeXML Mihaela JUGANARU-MATHIEU mathieu@emse.fr

XML - modèle de représentation de donnéesXML dans quelles BD

Modèle XML vers modèle relationnelBD XML native

BD étenduesSQL/XML

Exemple 3 : Utilisation d’une fonction - autre écriture pourle même résultat.

SELECT XMLElement("County",XMLAttributes(c.county_name AS "Name"),

XMLAgg(XMLElement("Attraction",

XMLAttributes(government_owned AS GOV),XMLConcat(XMLElement("Name", a.attraction_name),

XMLElement("Location", a.Location),XMLElement("URL", a.attraction_url)))))

FROM county c, attraction aWHERE c.county_name = a.county_nameGROUP BY c.county_name;

Mihaela JUGANARU-MATHIEU [email protected] XML et les bases de données