La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 1 XML et bases de données

2 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 loptimisation de langage de requêtes, la cohérence, … –Tout doit rentrer dans ce moule

3 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 doptimisation, de cohérence –Beaucoup de souplesse

4 4 Modèles de données semi-structurés Intermédiaire entre modèle relationnel (BD) et modèle de fichier Présence dun schéma mais souple Possibilité de langages de requêtes Différentes propositions –Modèle OEM –XML

5 5 XML et BD relationnelles SQLXSLT, XPATH, XQUERY Modèle relationnelModèle XPATH JDBC/ODBC/SQL- CLI DOM et SAX API Bases de données relationnelles Document XML

6 6 Introduction Modèle de données et langages de requêtes XML Publication XML de données relationnelles Stockage de documents XML

7 7 Langages de requêtes XML

8 8 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

9 9 Langages de requêtes XPATH 2.0 = XPATH –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

10 10 Langages de requêtes XQUERY 1.0 = XPATH –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)

11 11 BD Guide (1) GuideExotique : Le passage Brady 43 Faubourg Saint-Denis Paris Le Lhassa 13 Montagne Sainte-Genevieve Paris Dicky Le Caire Ali Moussa falavel

12 12 BD Guide (2) GuideNormand: Le Grand Hotel Promenade M. Proust Cabourg Labsinthe 10 Quai Quarantaine Honfleur Fruits de Mer

13 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 dun 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

14 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

15 15 BD Répertoire (1) California 32 Rue des Ecoles Paris Charmant hotel pres du centre 150 Napoleon 40 Avenue de Friedland Paris Hotel Art Deco 500 Le Saint Simon 32 Rue Saint Simon Paris Proche restaurant celebre 300

16 16 Guide de données répertoire RepertoireXXXHotel Nom Adresse Commentaire Prix Rue Ville Code Num

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

18 18 Expression XPATH Lister les noms des restaurants du guide normand document("http://gnormand.fr")//Restaurant/Nom/text() Lister les noms des restaurants de la forêt Guide collection("Guide")//Restaurant/Nom/text()

19 19 Expression FLWR for $var in [, $var in ]... // itération let $var := // assignation where // élagage return // construction

20 20 Flux de données FLWR For let where return Liste ordonnée De tuples De variables liées Liste élaguée De tuples De variables liées Instances XML

21 21 Exemples (1) Q1 : nom des restaurants de Cabourg (liste triée) for $R in collection( " Guide " )/Restaurant where $R/Adresse/Ville= " Cabourg " return $R/Nom sortby Nom descending Q2 : Nom et adresse des restaurants deux étoiles for $R in collection( " Guide " )/Restaurant where " ** " return {$R/Nom} {$R/Adresse//text()}

22 22 Exemples (2) Q3 : Rechercher toutes les valeurs des attributs des restaurants ayant un manager for $R in collection( " Guide " )/Restaurant where $R/Manager return {for $A in return

23 23 Exemples (3) Q4 : Noms et téléphones des restaurants situés dans la même ville que lhotel Napoléon for $R in collection( " Guide " )//Restaurant, $H in collection( " Repertoire " )/Hotel where $R//Ville=$H//Ville and $H//Nom= " Napoleon " return {$R/Nom/text()} {$R/Telephone/text()}

24 24 Exemples (4) Q5 : nombre de restaurants dans la collection Guide let $R := collection( " Guide " )/Restaurant Return {count($R)} Q6 : noms et adresses des restaurants dont la rue contient la chaine « Quai » for $R in collection( " Guide " )/Restaurant where contains($R//Rue, " Quai " ) return $R/Nom {$R/Adresse//text()}

25 25 Exemples (5) Q7 : Noms des restaurants par ville for $V in distinct-values (collection ( " Guide " ) /Restaurant/Ville) return $V/text() { for $R in collection( " Guide " )/Restaurant where $R//Ville=$V return $R/Nom }

26 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 {$R/Adresse}{$R/Prix[2]}

27 27 Exemples (7) Q9 : Nom de chaque restaurant avec le prix moyen proposé for $R in collection( " Guide " )/Restaurant let $A := $R//Prix return {$R/Nom} {avg($A)}

28 28 Exemples (8) Q10 : noms et adresses des restaurants ayant au moins un prix supérieur à 200 for $R in collection( " Guide " )/Restaurant where some $P in $R/Prix satisfies (number(200)<$P) return {$R/Nom}{$R/Adresse}

29 29 Exemples (9) Q11 : noms et adresses des restaurants ayant tous les prix inférieurs à 100 for $R in collection( " Guide " )/Restaurant where every $P in $R/Prix satisfies (number(100)>$P) return {$R/Nom}{$R/Adresse}

30 30 Algèbre XQUERY une algèbre a été définie pour Xquery Permet le support doptimisations Assez complexe (sur-ensemble de lalgèbre relationnelle)

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

32 32 Publication XML de données relationnelles

33 33 Objectifs BD relationnelles XPATH, XQUERY XML Vues XML SQL données

34 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

35 35 Format canonique NomCatégorieAdresseprix Napoléon3Paris600 Gare2Evry300 HOTELS Napoleon 3 Paris 600 Gare 2 Evry 300

36 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

37 37 Exporter dans un format prédéfini Spécification du mapping –Besoin dun langage –Pas de standard (un par vendeur) –À stabiliser Deux grandes approches –Relation universelle –Schéma annoté

38 38 Exemple Acteur(idact, nom, prénom) Film(idfilm, titre, année) Distribution(idfilm, idact), Depardieu Gérard Astérix Vatel Clavier Christian Astérix...

39 39 Relation universelle A.nom, A.prenom, F.titre, F.année Depardieu, Gérard, Astérix, 2001 Depardieu, Gérard, Vatel, 2000 Select A.nom, A.prenom, F.titre, F.annee From Acteur A, Film F, Distribution D Where A.idact=D.idact and D.idfilm=F.idfilm Depardieu Gérard Astérix Vatel Clavier Christian Astérix... + template annoté par les colonnes de la relation universelle...

40 40 Relation universelle (2) Support des vendeurs : –IBM DB2 XML extender –SqlServer2000 Universal XML Peut être complexe selon la nature des transformations souhaitées

41 41 Schéma annoté Spécification du schéma de sortie souhaité annoté par la provenance des données

42 42 Schéma annoté en SqlServer2000

43 43

44 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 dunions,...) Encore à améliorer!

45 45 Stockage de données XML

46 46 Système XML XPATHXQUERYDOM XML Niveau logique Niveau physique SGBDR SGBD OO LDAPSGFSystème natif

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

48 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 dun 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)

49 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 darbre et des pages physiques –De nombreuses possibilités

50 50 Différents mappings APPLI ENTETELISTE_FORM FORMULAIRETITREUID NOM_TABLE ATTRIBUT MonAppli producteurs vins ANNEECRU FORMULAIRE NOM_TABLE ATTRIBUT

51 51 Indexation Un placement physique ne peut être optimal pour toutes les requêtes possibles Besoin de plusieurs index XML a besoin dindex –Sur les valeurs –Sur la structure (navigation) –Full-text (mots-clés)

52 52 Quelques systèmes natifs origineAPIFull-textXPATHXQUERY XYLEME?OOY NATIXBas niveau XINDICEXML:DB XML:RPC NON eXcelonSGBDOODOM/XSLTOOY TaminoADABASDOM/SAXOOPartiel GoXML?OOY

53 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

54 54 Stockage de données XML vers relationnel Défini par lutilisateur 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 lapplication)

55 55 Mapping défini par lutilisateur 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

56 56 Stockage générique (arcs) attribut mode nom_table attribut formulaire nom_table mode formulaire &0 &1 &2 &3 &4 &5 &6 &7 &9 &10 SourcecibleNum fils élément &0&11formulaire &0&22formulaire &1&31nom_table &1&42mode &2&61nom_table &2&72mode &7&92attribut &7&103attribut ARCS Noeudvaleur &3producteurs &5INS &6vins &8NOR &9ANNEE &10CRU VALEURS 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

57 57 Stockage générique (éléments) attribut mode nom_table attribut formulaire nom_table mode formulaire &0 &1 &2 &3 &4 &5 &6 &7 &9 &10 Select N.cible From Formulaire F, Nom_table N Where F.cible=N.source Sourcecible &0&1 &0&2 FORMULAIRE SourceCible &1Producteurs &2Vins NOM_TABLE

58 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

59 59 SGBDR commerciaux SGBDStockageChargementRequête Oracle9iCLOB Canonique User-defined SQL Loader Par programme Full-text, XPATH, SQL DB2CLOB User-defined DAD Via DADSQL+full- text, SQL SQL ServerARCS User- defined++ OpenXML Schéma annoté SQL+full- text, XPATH Pas de support XQUERY, MAJ via DOM

60 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

61 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


Télécharger ppt "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."

Présentations similaires


Annonces Google