Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFélicité Salles Modifié depuis plus de 9 années
1
ACCARY-BARBIER / CNAM - Cycle C - 2007-2008 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
2
ACCARY-BARBIER / CNAM - Cycle C - 2007-20082 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…
3
ACCARY-BARBIER / CNAM - Cycle C - 2007-20083 Données Semi-structurées Généralités Données sans schéma ou auto descriptives Associations de paire ex : {nom:"Toto", tel:81212, email:toto@ici.la} Représentation : arcs labelés nom tel email Toto toto@ici.la 81212
4
ACCARY-BARBIER / CNAM - Cycle C - 2007-20084 Structures imbriquées Valeurs peuvent être d'autres structures {nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212, email:toto@ici.la} nom tel email toto@ici.la 81212 prénom patronyme Thomas Toto
5
ACCARY-BARBIER / CNAM - Cycle C - 2007-20085 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}}
6
ACCARY-BARBIER / CNAM - Cycle C - 2007-20086 BD relationnelles Représentation adaptée à des données structurées a1 b1 c1 A B C a2 b2 c2 A B C R1 C2 d2 C D R2 R1 R2 C3 d3 C D R1ABC a1b1c1 a2b2c2 R2CD c2d2 c3d3
7
ACCARY-BARBIER / CNAM - Cycle C - 2007-20087 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
8
ACCARY-BARBIER / CNAM - Cycle C - 2007-20088 Fragment du graphe associé Partage de sous-structures Présence de cycles &01&02&03 personne enfant nom age famille pays mère soeur Mary 45 17 CA John Jane
9
ACCARY-BARBIER / CNAM - Cycle C - 2007-20089 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
10
ACCARY-BARBIER / CNAM - Cycle C - 2007-200810 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 Liste &12 Personne &15 Nom &34 Prénom &3 Personne &23 Bond James conjoint
11
ACCARY-BARBIER / CNAM - Cycle C - 2007-200811 XML et DSS arborescentes Les arbres XML peuvent facilement être convertis en expressions de DSS et réciproquement XML Prélude à fondation Asimov Isaac Pocket 6 DSS {livre: {année:2002, titre:Prélude à fondation, auteur: {nom:Asimov, prénom:Isaac}, éditeur:Pocket, prix:6} }
12
ACCARY-BARBIER / CNAM - Cycle C - 2007-200812 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. Pierre Jean Marie
13
ACCARY-BARBIER / CNAM - Cycle C - 2007-200813 Différence de représentation En XML les nœuds sont nommés Jean 25 Dans l'approche BD, les arcs sont nommés {personne &123 {nom:'Jean', age:'25'}} nomage Jean25 personne nom age Jean25 personne
14
ACCARY-BARBIER / CNAM - Cycle C - 2007-200814 DTD comme schémas de BD DTD : grammaire "context-free" Peuvent être considérées comme des schémas de BD Devient en XML R1ABC a1b1c1 a2b2c2 R2CD c2d2 c3d3 a1 b1 c1 a2 b2 c2 c2 d2 c3 d3
15
ACCARY-BARBIER / CNAM - Cycle C - 2007-200815 Exemple de DTD Une DTD possible est : <!DOCTYPE bd [ ]> Pour permettre l'ordre (D,C) : Pour permettre le mélange des n-upplets de R1 et R2 :
16
ACCARY-BARBIER / CNAM - Cycle C - 2007-200816 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
17
ACCARY-BARBIER / CNAM - Cycle C - 2007-200817 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,…)
18
ACCARY-BARBIER / CNAM - Cycle C - 2007-200818 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…
19
ACCARY-BARBIER / CNAM - Cycle C - 2007-200819 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
20
ACCARY-BARBIER / CNAM - Cycle C - 2007-200820 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
21
ACCARY-BARBIER / CNAM - Cycle C - 2007-200821 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
22
ACCARY-BARBIER / CNAM - Cycle C - 2007-200822 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
23
ACCARY-BARBIER / CNAM - Cycle C - 2007-200823 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
24
ACCARY-BARBIER / CNAM - Cycle C - 2007-200824 XML-QL (2/5) Exemple de DTD Requête : Auteurs des livres ayant au moins un nom, un titre édités chez Springer WHERE Springer $t $a IN "www.ztu.bib.xml" CONSTRUCT $a
25
ACCARY-BARBIER / CNAM - Cycle C - 2007-200825 XML-QL (3/5) Structuration du résultat sous forme XML WHERE Springer $t $a IN "www.ztu.bib.xml" CONSTRUCT $a $ln Le résultat est une structure XML Smith English Dupond Francais
26
ACCARY-BARBIER / CNAM - Cycle C - 2007-200826 XML-QL (4/5) Conservation de la structure par CONSTRUCT imbriqués Evite l'éclatement des auteurs sur les titres WHERE Springer $t CONTENT_AS $p IN "www.ztu.bib.xml" CONSTRUCT $t WHERE $a IN $p CONSTRUCT $a
27
ACCARY-BARBIER / CNAM - Cycle C - 2007-200827 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 $f $l CONTENT_AS $a IN "www.xyz.bib.xml", $f $l IN "www.xyz.bib.xml", $ln="anglais" CONSTRUCT $a
28
ACCARY-BARBIER / CNAM - Cycle C - 2007-200828 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…
29
ACCARY-BARBIER / CNAM - Cycle C - 2007-200829 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
30
ACCARY-BARBIER / CNAM - Cycle C - 2007-200830 Exemples de hiérarchie des DTD Document de l'entreprise Document Bureautique Document Technique Document Financier Document Administratif Manuel Maintenance Rapport d'anomalie Manuel d'utilisation BilanAuditLettreContratMatérielLogiciel
31
ACCARY-BARBIER / CNAM - Cycle C - 2007-200831 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)
32
ACCARY-BARBIER / CNAM - Cycle C - 2007-200832 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
33
ACCARY-BARBIER / CNAM - Cycle C - 2007-200833 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é
34
ACCARY-BARBIER / CNAM - Cycle C - 2007-200834 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, …
35
ACCARY-BARBIER / CNAM - Cycle C - 2007-200835 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
36
ACCARY-BARBIER / CNAM - Cycle C - 2007-200836 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
37
ACCARY-BARBIER / CNAM - Cycle C - 2007-200837 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
38
ACCARY-BARBIER / CNAM - Cycle C - 2007-200838 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…
39
ACCARY-BARBIER / CNAM - Cycle C - 2007-200839 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
40
ACCARY-BARBIER / CNAM - Cycle C - 2007-200840 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
41
ACCARY-BARBIER / CNAM - Cycle C - 2007-200841 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…
42
ACCARY-BARBIER / CNAM - Cycle C - 2007-200842 XQuery : définition XQuery : sur-ensemble de SQL avec 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
43
ACCARY-BARBIER / CNAM - Cycle C - 2007-200843 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 item est un nœud ou une valeur atomique (feuille) de l'arbre XML. Chaque nœud et chaque valeur est typé. item noeudvaleur atomique item valeur *
44
ACCARY-BARBIER / CNAM - Cycle C - 2007-200844 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’, ) On ne peut pas trouver de séquences imbriquées : (1, ("titi","toto"), 5) = (1,titi,toto,5)
45
ACCARY-BARBIER / CNAM - Cycle C - 2007-200845 Valeurs des expressions Expressions (requêtes) simples : Valeurs atomiques 1, ‘‘titi’’ Valeurs construites true(), date(‘‘2002-10-23’’) Expressions complexes : Chemins XPath //examen/note[@num=$a]/text() Expressions FLWR (for-let-where-return) Expressions conditionnelles (if-then-else) Constructeurs.
46
ACCARY-BARBIER / CNAM - Cycle C - 2007-200846 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…
47
ACCARY-BARBIER / CNAM - Cycle C - 2007-200847 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
48
ACCARY-BARBIER / CNAM - Cycle C - 2007-200848 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.
49
ACCARY-BARBIER / CNAM - Cycle C - 2007-200849 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 { $a } 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
50
ACCARY-BARBIER / CNAM - Cycle C - 2007-200850 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'
51
ACCARY-BARBIER / CNAM - Cycle C - 2007-200851 Constructeurs de nœuds XML (1/2) Résultat peut contenir éléments prédéfinis et expressions à évaluer. Construction d'une structure XML autour d'un résultat évaluée. lors de l'exécution de la requête Structure xml recopiée, Partie située entre accolades { } calculée. Ex : Contexte défini "manuellement" et contenu calculé. { document("biblio.xml")//livre[2]/auteur/nom } Construction d'un élément auteurs pour encadrer la partie calculée de la requête. Partie calculée (entre accolades) renvoie les nœuds nom de l'élément livre parcouru en deuxième position dans le document biblio.xml.
52
ACCARY-BARBIER / CNAM - Cycle C - 2007-200852 Constructeurs de nœuds XML (2/2) Contexte calculé : construction d'éléments et d'attributs element { expr-nom } { expr-contenu } attribute { expr-nom } { expr-contenu } expr-nom : chemin pour calculer le nom de l'élément expr-contenu : contenu du nouvel élément (a évaluer) Ex : Création d'un élément dans lequel le nom et le contenu sont calculés : element { document("biblio.xml")//livre[1]/name(*[1]) } {attribute { document("biblio.xml")//livre[1]/name(*[3]) } { document("biblio.xml")//livre[1]/*[3] } }
53
ACCARY-BARBIER / CNAM - Cycle C - 2007-200853 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…
54
ACCARY-BARBIER / CNAM - Cycle C - 2007-200854 Fonctions Fonctions et opérateurs prédéfinis : XQuery 1.0 Functions and Operators XPath 2.0 Functions and Operators Fonctions racines (permettant l'accès au document xml) : input, collection(\url00), doc(\url00), … Fonctions utilisateurs Définition de fonctions personnelles Ex : Fonction qui permet de renvoyer le nombre de fils auteur d'un élément. Le résultat est typé xsd:integer. define function NombreAuteurs(livre $b) returns xsd:integer { return count($b/auteur) }
55
ACCARY-BARBIER / CNAM - Cycle C - 2007-200855 Opérateurs Opérateurs permettent d'effectuer les traitements courants sur les valeurs, séquences et nœuds. Arithmétiques : Opérateurs courants ( +, -, mod, …) De manipulation de séquences : Concaténation, union, intersection, différence De comparaison pour valeurs atomiques, nœuds et séquences Booléens and, or, not
56
ACCARY-BARBIER / CNAM - Cycle C - 2007-200856 Séquences et valeurs typées Fonctions et opérateurs sont typés et manipulent des Types mathématiques (entiers, …) Chaînes de caractères, Dates, Expressions régulières, …
57
ACCARY-BARBIER / CNAM - Cycle C - 2007-200857 Synthèse En synthèse, il faut retenir que les fonctions et opérateurs XQuery permettent : L'accès au type et au nom d’un nœud, La construction, la comparaison et la transformation de valeurs, L’agrégation des valeurs d’une séquence, La manipulation des chaînes de caractères, La conversion de types
58
ACCARY-BARBIER / CNAM - Cycle C - 2007-200858 Résumé Syntaxique de XQuery Type d'expressionSyntaxe Séquenceexpression, … Variable$a, $variable Constante'titi', 100 Numérique+, -, *, div, idiv, mod Comparaison générale=, !=, = Comparaison de valeurseq, ne, lt, le, gt, ge Comparaison de nœudsis, isnot Comparaison d’ordre > Logiqueand, or Conditionnelleif, then, else Quantitativesome/every $variable in expr1 satisfies expr2 Ensembleunion, intersect, except FLWRfor, let, where, return Validationvalidate {expr1} Chemin$variable/livre[@année=’2005’]/auteur
59
ACCARY-BARBIER / CNAM - Cycle C - 2007-200859 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…
60
ACCARY-BARBIER / CNAM - Cycle C - 2007-200860 document exemple : biblio.xml Prélude à fondation Asimov Isaac Pocket 6 La marche des millénaires Asimov Isaac White Frank Flammarion 8.45 Avant Dune Anderson Kevin J. Herbert Brian Pocket 12.3
61
ACCARY-BARBIER / CNAM - Cycle C - 2007-200861 Différence de séquences de nœuds Différences et des concaténations de nœuds Différence avec l'opérateur except Exclusion de la recherche d'un type de nœud. Ex : Construction d'un noeud avec tous les éléments du premier nœud livre du document source sauf les nœuds auteur. Requête Tous les sous-éléments sauf les auteurs: { document("biblio.xml")//livre[1]/(* except auteur) } Résultat Tous les sous-éléments sauf les auteurs: Prélude à fondation Pocket 6
62
ACCARY-BARBIER / CNAM - Cycle C - 2007-200862 Concaténation de séquences de nœuds Concaténation avec la syntaxe (noeud1,noeud2) Renvoie les noeud1 puis les noeud2 du doc source. Ex : Concaténation dans le document résultat des éléments prix et auteur du document source. ≠ union de nœuds (ordre des éléments ≠ dans les 2 documents) Requête Le prix suivi des auteurs: { document("biblio.xml")//livre[2]/(prix,auteur) } Résultat Le prix suivi des auteurs: 8.45 Asimov Isaac White Frank
63
ACCARY-BARBIER / CNAM - Cycle C - 2007-200863 Comparaison de valeurs atomiques Opérateurs eq, ne, lt, le, gt, ge Ex : Extraction des nœuds auteur dont le fils nom vaut "White". Attention, cette comparaison n'est possible que si les deux protagonistes sont de type atomique. La requête document("biblio.xml")//livre[auteur/nom eq "White"] renverra une erreur car auteur/nom renvoie une séquence de valeurs. Requête document("biblio.xml")//livre/auteur[nom eq "White"] Résultat White Frank
64
ACCARY-BARBIER / CNAM - Cycle C - 2007-200864 Comparaison de séquences Opérateurs =, !=, = S1 = s2 s’il existe au moins un élément dans s1 qui est égal à un élément dans s2 Ex : Comptage du nombre d'éléments livre dont les fils nom contiennent au moins un des 2 noms Herbert ou White. Requête count(document("biblio.xml")//livre [auteur/nom = ("Herbert", "White")]) Résultat 2
65
ACCARY-BARBIER / CNAM - Cycle C - 2007-200865 Comparaisons de noeuds Comparaison d'identité avec l'opérateur is, isnot n1 is n2 signifie que n1 est identique à n2. Ex : Extraction des nœuds livre qui ont exactement 2 fils auteur. Requête document("biblio.xml")//livre [auteur[2] is auteur[last()]] Résultat La marche des millénaires […] Avant Dune […]
66
ACCARY-BARBIER / CNAM - Cycle C - 2007-200866 Comparaisons par la position Opérateurs > n1 << n2 signifie que n1 apparaît avant n2 dans le document. n1 >> n2 signifie que n1 apparaît après n2 dans le document. Ex : Extraction du fils titre des éléments livre dans lesquels la valeur "Asimov" apparaît avant la valeur "White". Requête document("biblio.xml")//livre [auteur[nom="Asimov"] << auteur[nom="White"]]/titre Résultat La marche des millénaires
67
ACCARY-BARBIER / CNAM - Cycle C - 2007-200867 Fonction de Tri Expr1 sort by Expr2 (ascending | descending) Trie les éléments de la séquence retournée par l’expression Expr1 par les valeurs retournées par Expr2. Ex: Extraction du fils titre et l'attribut année de tous les nœuds livre du document ordonnée par rapport à la valeur de année. Requête { for $b in document("biblio.xml")//livre return { $b/titre, $b/@année } sort by(@année) } Résultat Avant Dune Prélude à fondation La marche des millénaires
68
ACCARY-BARBIER / CNAM - Cycle C - 2007-200868 Fonctions de Quantification some $var in expr1 satisfies expr2 Il existe au moins un nœud retourné par l’expression expr1 qui satisfait l’expression expr2. every $var in expr1 satisfies expr2 Tous les nœuds retournés par l’expression expr1 satisfont l’expression expr2. Ex : Extraction des seuls éléments nom dont tous les ancêtres livre ont un fils éditeur qui a pour valeur "Pocket". Requête for $a in document("biblio.xml")//auteur where every $b in document("biblio.xml")//livre [auteur/nom = $a/nom] satisfies $b/éditeur=" Pocket " return string($a/nom) Résultat "Anderson, Herbert "
69
ACCARY-BARBIER / CNAM - Cycle C - 2007-200869 Jointure entre fichiers (1/2) Pas de fonction prédéfinie mais mécanisme simple. Soit un autre fichier ISBN.xml qui contient des titres de livres et les codes ISBN correspondant à ces ouvrages. Ex : Création d'un document résultat contenant pour chaque livre à la fois son titre, sa référence ISBN et le nom de ses auteurs. Prélude à fondation 2-266-15253-X […]
70
ACCARY-BARBIER / CNAM - Cycle C - 2007-200870 Jointure entre fichiers (2/2) Construction élément livre avec attributs titre et ISBN Valeurs des nœuds titre et ref de ISBN.xml. Construction fils auteur avec un attribut nom Valeur : jointure des titre de biblio.xml et ISBN.xml Requête for $a in document("ISBN.xml")//ouvrage return element livre { attribute titre {$a/titre}, attribute ISBN {$a/ref}, for $b in document("biblio.xml")//livre where $a/titre = $b/titre return element auteur { attribute nom {$b/auteur/nom} }} Extrait du résultat
71
ACCARY-BARBIER / CNAM - Cycle C - 2007-200871 Exemples de fonctions Transformation nœud -> valeur : xf:string() Index : index-of() Requête "Le titre du premier livre est", document("biblio.xml")//livre[1]/xf:string(titre) Résultat Le titre du premier livre est Prélude à fondation Requête let $bl := document("biblio.xml")//livre for $b in $bl return {$b/title {attribute no {index-of($bl, $b)}}} Résultat Prélude à fondation La marche des millénaires Avant Dune
72
ACCARY-BARBIER / CNAM - Cycle C - 2007-200872 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…
73
ACCARY-BARBIER / CNAM - Cycle C - 2007-200873 Pour le TP : Galax Le logiciel Galax est une implantation de XQuery développé par les laboratoires Bell Labs et AT&T. Requêtes stockées dans des fichiers xxx.xq qui sont passés comme argument à l'interpréteur galax (sous une invite dos) galax exemple1.xq Pour envoyer le résultat produit par l'exécution de la requête dans un fichier xml, il faut utiliser l'option -output-xml. galax exemple1.xq -output-xml toto.xml Liste des options de la commande : galax –help Documentation sur le site de Galax pour plus de détails http://www.cise.ufl.edu/research/mobility/ http://www.cise.ufl.edu/research/mobility/
74
ACCARY-BARBIER / CNAM - Cycle C - 2007-200874 Pour en savoir plus... Site du W3C sur XQuery : http://www.w3.org/XML/Queryhttp://www.w3.org/XML/Query P. Wadler, XQuery : a typed functional language for querying XML J. Siméon et P. Wadler, The Essence of XML Galax : http://www.galaxquery.org/ http://www.galaxquery.org/
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.