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

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.

Présentations similaires


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

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/


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

Présentations similaires


Annonces Google