1 / 74

2ème partie : Gestion de contenus Web

2ème partie : Gestion de contenus Web. CHAPITRE 1 : XML Dynamique CHAPITRE 2 : XQUERY et les BD CHAPITRE 3 : Web sémantique et ontologies. Chapitre 5 : XQUERY et les BD. 1. XML et données semi structurées 1.1. Bases de Données semi structurées 1.2. Langages de requêtes 1.3. BD XML

coral
Download Presentation

2ème partie : Gestion de contenus Web

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2ème partie : Gestion de contenus Web CHAPITRE 1 : XML Dynamique CHAPITRE 2 : XQUERY et les BD CHAPITRE 3 : Web sémantique et ontologies ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  2. Chapitre 5 : XQUERY et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQUERY • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  3. nom email tel toto@ici.la Toto 81212 Données Semi-structurées • Généralités • Données sans schéma ou auto descriptives • Associations de paire <label:valeur>ex : {nom:"Toto", tel:81212, email:toto@ici.la} • Représentation : arcs labelés ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  4. nom email tel toto@ici.la prénom 81212 patronyme Thomas Toto Structures imbriquées • Valeurs peuvent être d'autres structures • {nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212, email:toto@ici.la} ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  5. Syntaxe Irrégulière • La structure n'est pas figée : • Représentation d'ensemble de même structure • {personne:{nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212, email:toto@ici.la}} • {personne:{nom:{prénom:"Sophie", patronyme:"Soso"}, tel:82222, email:soso@ici.la}} • De structure voisine • {personne:{nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212, email:toto@ici.la}} • {personne:{nom:{patronyme:"Soso"}, tel:81212, email:toto@ici.la}} ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  6. R1 R2 R1 R2 A D D C C C B a2 c2 C3 C2 d2 d3 b2 A C B a1 c1 b1 BD relationnelles • Représentation adaptée à des données structurées ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  7. BD Objet • Notion d'identité d'objet • On lie des identificateurs aux structures • Un identificateur peut être une valeur {personne:&01{nom:"Mary", age:45, enfant:&02, enfant:&03}, personne:&02{nom:"John", age:17, famille:{mère:&01, sœur:&03}}, personne:&03{nom:"Jane", pays:"Canada", mère:&01}} • Structure de graphe cyclique avec racine • Nœuds du graphe: • Objets complexes dont les valeurs sont des identifiants d'objets, • Valeurs atomiques • Structures récursives autorisées ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  8. personne personne personne enfant &01 &02 &03 enfant nom age nom pays nom age famille soeur mère Fragment du graphe associé • Partage de sous-structures • Présence de cycles Jane Mary John 17 CA 45 ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  9. OEM : Object Exchange Model • Définit pour l'échange de données hétérogènes (projet TSIMMIS) • Permet la description de données auto descriptives • objet OEM (label, oid, type, valeur) • label: chaîne de caractères, • oid : identifiant d'objet, • type : atomique (entier, caractère,…) ou complexe (oid), • valeur : atomique ou oid ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  10. Liste&12 Personne&15 Personne&23 Nom&34 Prénom&3 Représentation OEM • Un OEM est un graphe orienté et ordonné • Nœud interne : objet complexe avec identifiant • Feuille : objet atomique avec identifiant • Etiquette attachés aux nœuds • Variantes de OEM les placent sur les arêtes • Références explicites : graphe cyclique conjoint James Bond ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  11. XML et DSS arborescentes • Les arbres XML peuvent facilement être convertis en expressions de DSS et réciproquement DSS {livre: {année:2002, titre:Prélude à fondation, auteur: {nom:Asimov, prénom:Isaac}, éditeur:Pocket, prix:6} } XML <livre année="2002"> <titre> Prélude à fondation</titre> <auteur> <nom> Asimov </nom> <prénom> Isaac </prénom> </auteur> <éditeur> Pocket </éditeur> <prix>6</prix> </livre> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  12. Graphes XML • Structures de graphes grâce aux références à XML • On peut attacher des identifiants (id) à des éléments • On peut désigner un identifiant avec une référence (idref) ou plusieurs (idrefs) • L'arbre devient un graphe avec des cycles et des structures récursives comme dans les modèles objet. <personne id="&01"> <nom>Pierre</nom><enfant idref="&03" /> </personne> <personne id="&03"> <nom>Jean</nom><parent idrefs="&01 &02" /> </personne> <personne id="&02"> <nom>Marie</nom><enfant idref="&03" /> </personne> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  13. personne nom age Jean 25 Différence de représentation • En XML les nœuds sont nommés • <personne id="123"> <nom>Jean</nom> <age>25</age></personne> • Dans l'approche BD, les arcs sont nommés • {personne &123 {nom:'Jean', age:'25'}} personne nom age Jean 25 ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  14. DTD comme schémas de BD • DTD : grammaire "context-free" • Peuvent être considérées comme des schémas de BD Devient en XML <bd> <R1><A>a1</A><B>b1</B><C>c1</C></R1> <R1><A>a2</A><B>b2</B><C>c2</C></R1> <R2><C>c2</C><D>d2</D></R2> <R2><C>c3</C><D>d3</D></R2> </bd> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  15. Exemple de DTD • Une DTD possible est : <!DOCTYPE bd [ <!ELEMENT bd (R1+,R2+)> <!ELEMENT R1 (A,B,C)> <!ELEMENT R2 (C,D)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> <!ELEMENT C (#PCDATA)> <!ELEMENT D (#PCDATA)> ]> • Pour permettre l'ordre (D,C) : • <!ELEMENT R2 ((C,D) | (D,C))> • Pour permettre le mélange des n-upplets de R1 et R2 : • <!ELEMENT bd (R1 | R2)+> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  16. Limites des DTD • Limitations des DTD • Pas de notion de type de données (PCDATA seulement) • Pas de possibilité de définition de domaine de valeur (ex. un age entre 7 et 77 ans) • Avec les schémas, plus de limitations ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  17. XML vs OEM (Oracle Enterprise Manager) • Points communs entre XML et OEM • Décrits tous les deux par des graphes • Description incluse dans les données • Facile de passer de l'un a l'autre • Avantages de XML sur OEM • XML est ordonné, pas OEM • XML permet de mélanger texte, éléments, images • Autres possibilités dans XML (instructions, commentaires,…) ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  18. Chapitre 5 : XQUERY et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQUERY • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  19. Langages de requête pour XML • Langages destinés à : • Extraire des contenus de documents XML • Restructurer les résultats • Pas de standards définis • De nombreux langages • QUILT, STRUQL, XQL (extension de XSL), TQL • XML-QL, XML-GL langage graphique de requête sur des graphes labelés XML, XSL (Extensible Stylesheet Language) • XQUERY, XSQL, W3QL • WebLog, WebSQL ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  20. XQL et QUILT • XQL • Extension de la syntaxe XPath • Sélection et filtrage des nœuds d'un graphe XML • Syntaxe simple et compacte mais puissance expressive réduite • QUILT • Unification de concepts • Combine l'info de plusieurs sources de données dans un résultat de requête avec une nouvelle structure propre • Requêtes exprimées sous forme d'expressions ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  21. XQUERY et XSQL • XQUERY • Langage standard développé par le W3C • En cours de développement • Dérivé de QUILT (principes, syntaxe) • XSQL • Approche en extension avec SQL • Construit sur l'algèbre relationnelle, nombreuses fonctionnalités superflues pour un langage de requêtes XML • Fonctionne très bien sur des documents avec une structure relationnelle ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  22. Un standard : XML-QL • XML-QL • Étend le langage SQL • Expression de requêtes d'interrogation et de transformation pour l'intégration de données XML provenant de sources différentes • Spécifie de façon déclarative • La sélection de données à partir d'un document XML • La création d'un document XML résultat ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  23. XML-QL (1/5) • Langage destiné à • Interroger des structures XML • Faire des sous schémas pour l'export (XML format d'échange) • Définir des expressions régulières sur les tags XML • Utiliser des variables définies par leur position dans la requête • Structurer des requêtes en formes de patterns: • WHERE …structure XML • IN …nom du document XML • CONSTRUCT ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  24. XML-QL (2/5) • Exemple de DTD <!ELEMENT book (author+,title,publisher)> <!ATTLIST book language CDATA> <!ELEMENT article (author+,title,year?,(short|long))> <!ATTLIST article type CDATA> <!ELEMENT author (firstname?,lastname)> <!ELEMENT publisher (name,adresse)> • Requête : Auteurs des livres ayant au moins un nom, un titre édités chez Springer WHERE <book language $ln> <publisher><name>Springer</name></publisher> <title>$t</title><author>$a</author> </book> IN "www.ztu.bib.xml" CONSTRUCT $a ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  25. XML-QL (3/5) • Structuration du résultat sous forme XML WHERE <book language $ln> <publisher><name>Springer</name></publisher> <title>$t</title><author>$a</author> </book> IN "www.ztu.bib.xml" CONSTRUCT<result><author>$a</author><language>$ln</language></result> • Le résultat est une structure XML <result> <author>Smith</author><language>English</language> </result> <result> <author>Dupond</author><language>Francais</language> </result> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  26. XML-QL (4/5) • Conservation de la structure par CONSTRUCTimbriqués • Evite l'éclatement des auteurs sur les titres WHERE <book> <publisher><name>Springer</name></publisher> <title>$t</title> </book> CONTENT_AS$p IN "www.ztu.bib.xml" CONSTRUCT<result> <title >$t</ title> WHERE <author >$a</ author> IN $p CONSTRUCT <author >$a</ author> </result> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  27. XML-QL (5/5) • Jointure d'éléments contenant des valeurs communes • Ex : articles dont un auteur au moins a écrit un livre en anglais depuis 1998 • Jointure sur nom et prénom par utilisation de variables WHERE <article><author> <firstname>$f</forstname> <lastname>$l</lastname> </author></article> CONTENT_AS$aIN "www.xyz.bib.xml", <book language=$ln><author> <firstname>$f</forstname> <lastname>$l</lastname> </author></book> IN "www.xyz.bib.xml", $ln="anglais" CONSTRUCT <article>$a</article> ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  28. Chapitre 5 : XQUERY et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQUERY • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  29. A l'heure actuelle • Des DTD sont normalisées • DTD AAP (American Association of Publishing) • DTD ATA (Aeronotic Transport Association) • DTD CALS (Défense US) • De grandes entreprises françaises définissent leurs DTD • EDF, • SNCF, … • Vue orientée objet : • Hiérarchisation des modèles de documents • Une DTD par entreprise (groupe, metier, …) • Notion de spécialisation par les sous-DTD ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  30. Document de l'entreprise Document Bureautique Document Technique Document Financier Document Administratif Manuel Maintenance Manuel d'utilisation Rapport d'anomalie Bilan Audit Lettre Contrat Matériel Logiciel Exemples de hiérarchie des DTD ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  31. Difficultés de gestion • Triple dépendance • Schéma de la base / DTD • Schéma de la base / Instance • DTD / Instance • Choix de l'outil d'interrogation • Interrogation type SQL • Recherche "full-text" • Interrogation de données non textuelles (images) • Reconnaissance de formes ? • Navigation hypertexte (en gardant le contrôle – ne pas se perdre) • Recherche et filtrage de l'information • Silence (pas d'info pertinente retrouvée) • Bruit (info non pertinente fournie à l'utilisateur) ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  32. Choix du stockage (1/3) • Où stocker les DTD et les instances ? • Dans un SGBD Orienté Objet • Avantages • Conceptuellement assez bien adaptés • Inconvénients • Trop hiérarchique • Peu performants • Pas assez fiable • Chers • Démodés • Nécessité pour l'entreprise de maintenir 2 types de SGBD • Relationnel • Objet ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  33. Choix du stockage (2/3) • Dans un SGBD semi-structuré • Avantages • Très bien adaptés conceptuellement • Structure en graphe • Stockage d'une partie du modèle comme des données • Conçus en particulier pour les hyperdocuments XML • Inconvénients • Peu performants • Chers • Peu fiable • Nécessité pour l'entreprise de maintenir 2 types de SGBD • Relationnel • Semi-structuré ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  34. Choix du stockage (3/3) • Dans un SGBD relationnel • Avantages • Puissants et fiables • L'entreprise en possède déjà au moins un • Moins cher que les autres • Facilité pour établir des liaisons avec les BD du SI de l'entreprise • Inconvénients • Modèle pauvre • Contraintes d'intégrité • Trigger, … ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  35. Les SGBD Relationnels • 2 approches • Relationnelle classique • Données extraites des fichiers XML puis stockées dans une BD classique • XML-native • Documents XML stockés dans leur intégrité et gérés par le SGBD • Choix du stockage • Bases centrées données • XML est un support, la donnée est importante • stockage relationnel avec middleware de transformation en XML • Bases centrés documents • Importance du contenu • stockage natif XML ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  36. Solution relationnelle classique • Caractéristiques : • Données extraites du fichier XML puis stockées dans une BD • Données gérées par un SGBD classique, et accessibles par des requêtes SQL • Document XML non conservé (reconstituable) • Avantages (ceux des SGBD) • Contrôle d'intégrité, index • Stockage des procédures • Inconvénients • Document XML extrait de la base différant de l'original • Le document doit être valide pour que les données soient insérées ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  37. Solution XML-native • Caractéristiques : • Document XML stocké dans son intégrité • Le SGBD gère la façon dont sont stockées les documents • Accès aux données par requêtes XPath, XSQL, … • Données retournées sous forme de documents XML • Avantages (ceux des SGBD) • Document XML extrait de la base identique à l'original • Rapidité d'extraction • Inconvénients • Accès indirect aux données. Passage par le document XML ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  38. Chapitre 5 : XQUERY et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQUERY • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  39. Interrogation de documents XML Comment interroger des documents XML ? Solutions : • SQL : il faut stocker XML dans une BD relationnel • Expressions XPath : extraction de fragments • Règles XSLT : extraction + transformation (règles) • Langage de requêtes pour XML • XQuery ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  40. Historique des langages de requêtes pour XML • Langages de requêtes pour données semi-structurées • POQL de l’INRIA (1996), • UnQL de Penn. Univ. (1996), • Lorel de Stanford Univ. (1997) • 1998 : Workshop Query Languages’98 (QL’98) • Langages de requêtes pour XML: • XOQL (Xyleme), • XML-QL, • XQL, • Lore, ... • XQuery : W3C Working Draft 02 May 2003 ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  41. Chapitre 5 : XQuery et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQuery • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  42. XQuery : définition • XQuery : sur-ensemble de SQLavec des extensions de fonctionnalités pour supporter des opérations similaires sur les forêts (collections d’arbres). • Projections d’arbres sur des sous-arbres, • Sélections d’arbres et de sous-arbres en utilisant des prédicats sur les valeurs des feuilles, • Utilisation de variables dans les requêtes pour mémoriser un arbre ou pour itérer sur des collections d’arbres, • Combinaison des arbres extraits en utilisant des jointures d’arbres, • Ré-ordonnancement des arbres, • Imbrication de requêtes, • Calculs d’agrégats • Utilisation possible de fonctions définies par l'utilisateur ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  43. * item noeud valeur atomique item valeur Le modèle de données de XQuery • Requête composée d'expressions(simples et complexes) associées à des opérateurs et à des fonctions. • Une expression a une valeur ou retourne une erreur. • Une valeur est une séquence ordonnée d’items, • Un itemest un nœud ou une valeur atomique (feuille) de l'arbre XML. • Chaque nœud et chaque valeur est typé. ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  44. Règles sur les valeurs et séquences • Ces séquences répondent à certaines règles : • Une séquence peut être vide • Les séquences sont triées : • (1,5) n'est pas (5,1). • Une séquence de longueur 1correspond à un item : • 12 = (12) • Une séquence peut contenir des valeurs hétérogènes : • (1, ‘‘titi’, <noeud/>) • On ne peut pas trouver de séquences imbriquées : • (1, ("titi","toto"), 5) = (1,titi,toto,5) ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  45. Valeurs des expressions • Expressions (requêtes) simples : • Valeurs atomiques • 1, ‘‘titi’’ • Valeurs construites • true(), • date(‘‘2002-10-23’’) • Expressions complexes : • CheminsXPath • //examen/note[@num=$a]/text() • Expressions FLWR • (for-let-where-return) • Expressions conditionnelles • (if-then-else) • Constructeurs. ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  46. Chapitre 5 : XQuery et les BD • 1. XML et données semi structurées • 1.1. Bases de Données semi structurées • 1.2. Langages de requêtes • 1.3. BD XML • 2. XQuery • 2.1. Syntaxe XQuery • 2.1.1. Expressions XQuery • 2.1.2. Fonctions et opérateurs • 2.2. Usages et exemples de fonctions • En savoir plus… ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  47. Expression de chemins XPath • Expression de chemin avec XPath • Désigne le type et l'adresse des nœuds recherchés. • Ex: Une requête qui permet très simplement de renvoyer tous les nœuds auteur du document biblio.xml. • Aucune mise en forme n'étant pratiquée, les nœuds renvoyés le sont avec leurs balises et leur contenu tel qu'il s'exprime dans le document. • document("biblio.xml")//auteur ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  48. Expressions FLWR • Expressions FLWR proches des mécanismes utilisés dans les requêtes de type SQL. • 4 clauses possibles : for, let, where et return • for$var in exp • Affecte la variable $var successivement avec chaque item dans la séquence retournée par exp. • let $var := exp • Affecte la variable $var avec la séquence “entière” retournée par exp. • where exp • Permet de filtrer le résultat par rapport au résultat booléen de l’expression exp (= prédicat dans l’expression de chemin). • return • Permet de générer le résultat de l'expression. ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  49. Exemples de requêtes FLWR • Ex1 : requête FLWR qui permet d'affecter la variable $b successivement avec le contenu des nœuds livre du document biblio.xml (clause for) et d'affecter $a avec l'ensemble des nœuds auteur contenus dans chaque itération de $b (clause let). for $b in document("biblio.xml")//livre let $a := $b/auteur return <livre nb_auteurs="{count($a)}"> { $a } </livre> • Ex2 : requête FLWR pour extraire le titre des livres dont le premier nœud fils auteur contient comme valeur de nom Asimov. for $a in document("biblio.xml")//livre where $a/auteur[1]/nom eq "Asimov" return $a/titre ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

  50. Expressions conditionnelles • Structure if - then - else • if : teste une condition. • then : opération en cas de réponse positive au test. • else : opération en cas de réponse négative au test. • Ex : Requête qui va tester pour chaque élément livre de biblio.xml si la valeur de son attribut année est supérieure à 2000 et renvoyer la valeur 'récent' si c'est la cas et 'ancien' sinon. for $b in document("biblio.xml")//livre Return if ($b/@année > 2000) then 'récent' else 'ancien' ACCARY-BARBIER / CNAM - Cycle C - 2007-2008

More Related