1 xml et bases de données. 2 bilan modèle relationnel modèle simple, puissant avec des fondements...

61
1 XML et bases de données

Upload: raoul-rousseau

Post on 03-Apr-2015

113 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

1

XML et bases de données

Page 2: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

2

Bilan Modèle relationnel

• Modèle simple, puissant avec des fondements théoriques bien connus

• Modèle figé

• Importance du schéma de BD– Utilisé pour le stockage efficace, la définition et

l’optimisation de langage de requêtes, la cohérence, …

– Tout doit rentrer dans ce moule

Page 3: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

3

Modèle des Fichiers

• Information pas ou peu structurée

• Structure est implicite et tolérante

• Pas de schéma des données– Pas de langage de requêtes, pas d’optimisation,

de cohérence– Beaucoup de souplesse

Page 4: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

4

Modèles de données semi-structurés

• Intermédiaire entre modèle relationnel (BD) et modèle de fichier

• Présence d’un schéma mais souple

• Possibilité de langages de requêtes

• Différentes propositions– Modèle OEM– XML

Page 5: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

5

XML et BD relationnelles

SQL XSLT, XPATH, XQUERY

Modèle relationnel Modèle XPATH

JDBC/ODBC/SQL-CLI

DOM et SAX API

Bases de données relationnelles

Document XML

Page 6: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

6

Introduction

• Modèle de données et langages de requêtes XML

• Publication XML de données relationnelles

• Stockage de documents XML

Page 7: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

7

Langages de requêtes XML

Page 8: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

8

Langages de requêtes XML

• XPATH (1.0 puis 2.0)– langage commun de navigation, sélection, extraction

– Utilisé dans XSLT, XQUERY, XPOINTER, …

• XSLT 2.0 : XML vers XML, HTML, texte– Langage à typage faible, orienté transformation

• XQUERY 1.0 : XML vers XML– Langage fonctionnel à typage fort (entrées et sorties)

– Orienté accès BD

Page 9: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

9

Langages de requêtes

• XPATH 2.0 = XPATH 1.0 +– Typage XML schema– Séquences ordonnées de nœuds typés et de

valeurs atomiques• For VAR in EXPR return EXPR

– Expression conditionnelles• If EXPR then EXPR else EXPR

– Expressions quantifiées• Some | every VAR in EXPR satisfies EXPR

Page 10: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

10

Langages de requêtes

• XQUERY 1.0 = XPATH 2.0 +– For-let-where-return (FLWR) : SQL like– Sort-by– Construction de XML– Opérateurs sur les types– Fonctions définies par le programmeur– Typage fort (statique ou dynamique)

Page 11: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

11

BD Guide (1)GuideExotique :<?xml version="1.0"  encoding="ISO-8859-1" ?><Guide region="exotique" version="2.0"><Restaurant type="indhou" categorie="**"><Nom>Le passage Brady</Nom><Adresse><No>43</No><Rue>Faubourg Saint-Denis</Rue><Ville>Paris 10</Ville></Adresse><Telephone>0142112310</Telephone></Restaurant><Restaurant type="thibetain" categorie="**"><Nom>Le Lhassa</Nom><Adresse><No>13</No><Rue>Montagne Sainte-Genevieve</Rue><Ville>Paris 5</Ville></Adresse><Telephone>0144122112</Telephone><Manager>Dicky</Manager></Restaurant><Epicerie type="egyptienne"><Nom>Le Caire</Nom><Telephone>0146134582</Telephone><Manager>Ali Moussa</Manager><Specialité>falavel</Specialite></Epicerie></Guide>

Page 12: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

12

BD Guide (2)GuideNormand:<?xml version="1.0"  encoding="ISO-8859-1" ?><Guide region="normandie" version="2.0"><Restaurant type="francais" categorie="***"><Nom>Le Grand Hotel</Nom><Adresse><Rue>Promenade M. Proust</Rue><Ville>Cabourg</Ville></Adresse><Prix menu="midi">200</Prix> <Prix menu="soir">300</Prix></Restaurant><Restaurant type="francais" categorie="**"><Nom>L’absinthe</Nom><Adresse><No>10</No><Rue>Quai Quarantaine</Rue><Ville>Honfleur</Ville></Adresse><Prix menu="midi">150</Prix> <Prix menu="soir">250</Prix><Telephone>0234142189</Telephone><Specialité>Fruits de Mer</Specialite></Restaurant></Guide>

Page 13: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

13

BD Guide (3)

• BD XML = forêt de documents XML• Schéma de BD =

– Schéma XML si existant– Guide de données :

• Schéma faible généré à partir d’un ensemble de documents par union des arbres de structure décrivant tous les cheminements possibles dans la collection et par typage des données en texte

– Schéma plus flexible que schéma relationnel

Page 14: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

14

Guide de données de Guide

Guide

Restaurant

Epicerie

Nom

Adresse

Telephone

Prix

Manager

No

Rue

Ville

Nom

Manager

Telephone

Specialite

X

X

X

X

Code

0,2

Page 15: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

15

BD Répertoire (1)<?xml version="1.0"  encoding="ISO-8859-1" ?><Repertoire><Hotel categorie="***"><Nom>California</Nom><Adresse><Num>32</Num><Rue>Rue des Ecoles</Rue><Code>75005</Code><Ville>Paris</Ville></Adresse><Commentaire>Charmant hotel pres du centre</Commentaire><Prix>150</Prix></Hotel><Hotel categorie="****"><Nom>Napoleon</Nom><Adresse><No>40</No><Rue>Avenue de Friedland</Rue><Code>75008</Code><Ville>Paris</Ville></Adresse><Commentaire>Hotel Art Deco</Commentaire><Prix >500</Prix></Hotel><Hotel categorie="***"><Nom>Le Saint Simon</Nom><Adresse><No>32</No><Rue>Rue Saint Simon</Rue><Code>75005</Code><Ville>Paris</Ville></Adresse><Commentaire>Proche restaurant celebre</Commentaire><Prix >300</Prix></Hotel></Repertoire>

Page 16: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

16

Guide de données répertoire

Repertoire X X XHotel

Nom

Adresse

Commentaire

Prix

Rue

Ville

Code

Num

Page 17: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

17

Fonctionnalités de XQUERY• Navigation• Support XPATH• Sélection• Jointure• Tri• Construction• Recherche textuelle• Fonction• Imbrication• agrégat

Page 18: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

18

Expression XPATH

• Lister les noms des restaurants du guide normanddocument("http://gnormand.fr")//Restaurant/Nom/text()

• Lister les noms des restaurants de la forêt Guidecollection("Guide")//Restaurant/Nom/text()

Page 19: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

19

Expression FLWR

for $var in <forêt> [, $var in <forêt>]...

// itération

let $var := <sous-arbre> // assignation

where <condition> // élagage

return <résultat> // construction

Page 20: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

20

Flux de données FLWR

Forlet

where return

Liste ordonnéeDe tuplesDe variables liées

Liste élaguéeDe tuplesDe variables liées

Instances XML

Page 21: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

21

Exemples (1)

• Q1 : nom des restaurants de Cabourg (liste triée)for $R in collection("Guide")/Restaurantwhere $R/Adresse/Ville="Cabourg"

return $R/Nomsortby Nom descending

• Q2 : Nom et adresse des restaurants deux étoilesfor $R in collection("Guide")/Restaurantwhere $R/@categorie="**"

return <Restau2E>{$R/Nom}<Adresse>{$R/Adresse//text()}</Adresse></Restau2E>

Page 22: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

22

Exemples (2)

• Q3 : Rechercher toutes les valeurs des attributs des restaurants ayant un managerfor $R in collection("Guide")/Restaurant

where $R/Manager

return <RestauAM>

{for $A in $R//@* return $A}

</RestauAM>

Page 23: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

23

Exemples (3)

• Q4 : Noms et téléphones des restaurants situés dans la même ville que l’hotel Napoléonfor $R in collection("Guide")//Restaurant,

$H in collection("Repertoire")/Hotel

where $R//Ville=$H//Ville and $H//Nom="Napoleon"

return <RestauHRN>

<Nom>{$R/Nom/text()} </Nom>

<Tel> {$R/Telephone/text()} </Tel>

</RestauHRN>

Page 24: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

24

Exemples (4)

• Q5 : nombre de restaurants dans la collection Guidelet $R := collection("Guide")/RestaurantReturn <NbRest> {count($R)}</NbRest>

• Q6 : noms et adresses des restaurants dont la rue contient la chaine « Quai »for $R in collection("Guide")/Restaurantwhere contains($R//Rue, "Quai")return <Res>$R/Nom

<Adr>{$R/Adresse//text()} </Adr> </Res>

Page 25: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

25

Exemples (5)

• Q7 : Noms des restaurants par villefor $V in distinct-values (collection ("Guide")

/Restaurant/Ville)return

<Restauparville><Ville>$V/text()</Ville><Restaus>{ for $R in collection("Guide")/Restaurantwhere $R//Ville=$V return $R/Nom }</Restaus>

</Restauparville>

Page 26: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

26

Exemples (6)

• Q8 : Adresse et deuxième prix des restaurants parsiens (pour ceux qui en ont deux)for $R in

(for $S in collection("Guide")/Restaurant where $S/Prix[2] return $S)

where $R/Ville="Paris"

return

<AdPrix2>{$R/Adresse}{$R/Prix[2]}</Adprix2>

Page 27: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

27

Exemples (7)

• Q9 : Nom de chaque restaurant avec le prix moyen proposéfor $R in collection("Guide")/Restaurantlet $A := $R//Prixreturn <res>

{$R/Nom}<MoyPrix>{avg($A)}</MoyPrix>

</res>

Page 28: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

28

Exemples (8)

• Q10 : noms et adresses des restaurants ayant au moins un prix supérieur à 200for $R in collection("Guide")/Restaurant

where some $P in $R/Prix satisfies (number(200)<$P)

return

<RestC>{$R/Nom}{$R/Adresse}</RestC>

Page 29: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

29

Exemples (9)

• Q11 : noms et adresses des restaurants ayant tous les prix inférieurs à 100for $R in collection("Guide")/Restaurant

where every $P in $R/Prix satisfies (number(100)>$P)

return

<RestPC>{$R/Nom}{$R/Adresse}</RestPC>

Page 30: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

30

Algèbre XQUERY

• une algèbre a été définie pour Xquery

• Permet le support d’optimisations

• Assez complexe (sur-ensemble de l’algèbre relationnelle)

Page 31: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

31

XUPDATE

• Il manque le support des mises à jour dans XQUERY

• Il existe une proposition mais basée sur XPATH

• On peut utiliser DOM ou SAX pour faire les mises à jour (mais pas déclaratif)

Page 32: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

32

Publication XML de données relationnelles

Page 33: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

33

Objectifs

BDrelationnelles

XPATH,XQUERY

XML

Vues XML

SQL données

Page 34: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

34

Deux problèmes

• Exporter une relation dans un format canonique : simple

• Exporter une base de données (ensemble de relations) dans un format prédéfini – Ressemble à du stockage XML dans un

SGBDR (sans maj)– complexe

Page 35: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

35

Format canonique

Nom Catégorie Adresse prix

Napoléon 3 Paris 600

Gare 2 Evry 300

HOTELS <row><nom>Napoleon</nom><categorie>3</categorie><adresse>Paris</adresse><prix>600</prix></row><row><nom>Gare</nom><categorie>2</categorie><adresse>Evry</adresse><prix>300</prix></row>

Page 36: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

36

Format canonique (2)

• Intéressant pour publication de données sur le web ou intégration de données

• Supporté dans SQLSERVER2000 (SELECT ... FOR XML), DB2 ou ORACLE9i XML SQL Utility

Page 37: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

37

Exporter dans un format prédéfini

• Spécification du mapping– Besoin d’un langage – Pas de standard (un par vendeur)– À stabiliser

• Deux grandes approches– Relation universelle– Schéma annoté

Page 38: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

38

Exemple

Acteur(idact, nom, prénom)<1, ‘Depardieu’, ‘gérard’><2, ‘Clavier’, ‘christian’>

Film(idfilm, titre, année)<11, ‘Astérix’, 2001><12, ‘Vatel’, 2000>

Distribution(idfilm, idact)<11,1> <11, 2>, <12, 1>

<Acteur><Nom>Depardieu</Nom><Prenom>Gérard</Prenom><Film annee="2001">Astérix</Film><Film annee="2000">Vatel</Film></Acteur><Acteur><Nom>Clavier</Nom><Prenom>Christian</Prenom><Film annee="2001">Astérix</Film></Acteur>...

Page 39: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

39

Relation universelleA.nom, A.prenom, F.titre, F.annéeDepardieu, Gérard, Astérix, 2001Depardieu, Gérard, Vatel, 2000<SQL_stmt>

Select A.nom, A.prenom, F.titre, F.anneeFrom Acteur A, Film F, Distribution DWhere A.idact=D.idact and D.idfilm=F.idfilm</SQL_stmt>

<Acteur><Nom>Depardieu</Nom><Prenom>Gérard</Prenom><Film annee="2001">Astérix</Film><Film annee="2000">Vatel</Film></Acteur><Acteur><Nom>Clavier</Nom><Prenom>Christian</Prenom><Film annee="2001">Astérix</Film></Acteur>...

+ template annoté par lescolonnes de la relation universelle<element_node Acteur> <element_node Nom>

<text_node><Column name="A.nom"/></text_node>

...

Page 40: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

40

Relation universelle (2)

• Support des vendeurs :– IBM DB2 XML extender– SqlServer2000 Universal XML

• Peut être complexe selon la nature des transformations souhaitées

Page 41: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

41

Schéma annoté• Spécification du schéma de sortie souhaité

annoté par la provenance des données<xs:element name="Acteur">

<xs:complexType><xs:sequence>

<xs:element name="nom" type="xs:string"/><xs:element name="prenom" type="xs:string"/><xs:element ref="Film"/>

</xs:sequence></xs:complexType>

</xs:element><xs:element name="Film">

<xs:attribute name="annee" type="xs:dateTime"/></xs:element>

Page 42: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

42

Schéma annoté en SqlServer2000<xs:element name="Acteur"  sql:relation="Acteur"> <xs:complexType><xs:sequence> <xs:element name="nom" type="xs:string"  sql:field="nom"/> <xs:element name="prenom" type="xs:string" sql:field="prenom"/> <xs:element ref="Film" sql:relationship="ActDist" sql:relationship="DistFilm"/> </xs:sequence></xs:complexType></xs:element><xs:element name="Film"  sql:relation="Film" sql:field="titre"> <xs:attribute name="annee" type="xs:dateTime"  sql:field="annee"/></xs:element>

Page 43: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

43

<xs:annotation><xs:appinfo><sql:relationship name=ActDist

parent=Acteur parent-key=idactchild=Distribution child-key=idact

</sql:relationship></xs:appinfo></xs:annotation>

Schéma annoté SqlServer (2)

<xs:annotation><xs:appinfo><sql:relationship name=DistFilm

parent=Distribution parent-key=idfilmchild=Film child-key=idfilm

</sql:relationship></xs:appinfo></xs:annotation>

Page 44: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

44

Bilan Schéma annoté

• Variations selon les vendeurs– SqlServer 2000 et IBM DB2

• Plus flexible que la relation universelle

• Limitations sur les expressions SQL (pas d’unions, ...)

• Encore à améliorer!

Page 45: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

45

Stockage de données XML

Page 46: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

46

Système XML

XPATH XQUERY DOMXML

Niveaulogique

Niveauphysique

SGBDR

SGBD OO

LDAP SGF Systèmenatif

Page 47: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

47

Eléments de choix

• 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, ...

Page 48: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

48

Principes de stockage XML• Plat :

– 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)

Page 49: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

49

Systèmes natifs

• Besoins– Représentation concise des documents– Support efficace des API XML– Possibilité de maj données et structure

• Correspondance entre structure d’arbre et des pages physiques – De nombreuses possibilités

Page 50: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

50

Différents mappings

APPLI

ENTETE LISTE_FORM

FORMULAIRETITRE UID

NOM_TABLE

ATTRIBUT

MonAppli Citcom/citcom@MICA

producteurs

MODE@INS

vins

MODE@NOR

ANNEE CRU

FORMULAIRE

NOM_TABLE

ATTRIBUT

Page 51: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

51

Indexation

• Un placement physique ne peut être optimal pour toutes les requêtes possibles

• Besoin de plusieurs index

• XML a besoin d’index– Sur les valeurs– Sur la structure (navigation)– Full-text (mots-clés)

Page 52: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

52

Quelques systèmes natifsorigine 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

GoXML ? O O Y

Page 53: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

53

Systèmes à base de mapping

• 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

Page 54: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

54

Stockage de données XML vers relationnel

• 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)

Page 55: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

55

Mapping défini par l’utilisateur

• 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

Page 56: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

56

Stockage générique (arcs)

attribut

modenom_table

attribut

formulaire

nom_table mode

formulaire

&0

&1 &2

&3 &4

&5

&6 &7

&8

@valeur @valeur

&9 &10

Source 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

ARCS

Noeud valeur

&3 producteurs

&5 INS

&6 vins

&8 NOR

&9 ANNEE

&10 CRU

VALEURS

Select V.valeurFrom Valeurs V, Arcs A1,Arcs A2Where A1.élément=« formulaire »And A1.cible=A2.source and A2.élément=« nom_table »And A2.cible=V.noeud

Page 57: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

57

Stockage générique (éléments)

attribut

modenom_table

attribut

formulaire

nom_table mode

formulaire

&0

&1 &2

&3 &4

&5

&6 &7

&8

@valeur @valeur

&9 &10

Select N.cibleFrom Formulaire F, Nom_table NWhere F.cible=N.source

Source cible

&0 &1

&0 &2

FORMULAIRE

Source Cible

&1 Producteurs

&2 Vins

NOM_TABLE

Page 58: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

58

Bilan stockage générique

• 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

Page 59: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

59

SGBDR commerciauxSGBD Stockage Chargement Requête

Oracle9i CLOB

Canonique

User-defined

SQL Loader

Par programme

Full-text,

XPATH, SQL

DB2 CLOB

User-defined DAD

Via DAD SQL+full-text, SQL

SQL Server ARCS

User-defined++

OpenXML

Schéma annoté

SQL+full-text, XPATH

Pas de support XQUERY, MAJ via DOM

Page 60: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

60

Conclusion

• Nombreux travaux pour le support XML et SGBD

• Produits encore en forte évolution

• Pas de standard

• Manque encore XQUERY et langage de MAJ

Page 61: 1 XML et bases de données. 2 Bilan Modèle relationnel Modèle simple, puissant avec des fondements théoriques bien connus Modèle figé Importance du schéma

61

Bibliographie

• 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