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.

Slides:



Advertisements
Présentations similaires
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Advertisements

Algèbre de composants : une approche fonctionnelle à la sémantique de documents Bart Lamiroy LORIA/INPL QGar - École des Mines de Nancy.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Calcul géométrique avec des données incertaines
Introduction Pour concrétiser l’enseignement assisté par ordinateur
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
Cours Web sémantique Langage SPARQL
Algèbre relationnelle
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
version Beta Marie Calberg Ninni Louhelainen SLFN7
TP 3-4 BD21.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Manipulation d’XML avec XSL
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
CPI/BTS 2 Programmation Web Introduction au PHP
XML et les Bases de Données
Cours 3: Base de donnée XML
OCaml - Les listes L3 MI.
Contrôles d'accès aux données
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
Algèbre Relationnelle
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Cours N°2 Base de Données & Langage SQL
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Description de documents XML multistructurés au moyen de nœuds retards Jacques Le Maitre LSIS Université du Sud Toulon-Var.
Initiation aux bases de données et à la programmation événementielle
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
Initiation à XML Sebti Foufou.
Langages de requêtes XML
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
PHP & My SQL.
Présenté par : Ramdane Guenineche Nabila Rahmoune Miloud Benotmane
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Paradigmes des Langages de Programmation
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Prolog Listes Arbres en prolog Structures : bases de données
Le langage XML.
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
XPath XML Path UP Web Année universitaire
Formation utilisateurs CMS. 16/01/20082 Plan 1)Présentation 2)Espace contributeur 3)Plan du site 4)Créer des pages 5)Edition en ligne 6)Les ressources.
Introduction à l’Intégration Numérique Application aux éphémérides
Créer des packages.
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Arbres binaires et tables de hachage
 Syntaxe du langage PHP
Objets Opérateurs Listes
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Sélection de colonnes (la projection)
Soutenance du mémoire de synthèse
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
Séance /10/2004 SGBD - Approches & Principes.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

ACCARY-BARBIER / CNAM - Cycle C è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 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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,  Représentation : arcs labelés nom tel Toto 81212

ACCARY-BARBIER / CNAM - Cycle C Structures imbriquées  Valeurs peuvent être d'autres structures  {nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212, nom tel prénom patronyme Thomas Toto

ACCARY-BARBIER / CNAM - Cycle C 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,  {personne:{nom:{prénom:"Sophie", patronyme:"Soso"}, tel:82222,  De structure voisine  {personne:{nom:{prénom:"Thomas", patronyme:"Toto"}, tel:81212,  {personne:{nom:{patronyme:"Soso"}, tel:81212,

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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 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 CA John Jane

ACCARY-BARBIER / CNAM - Cycle C 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 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

ACCARY-BARBIER / CNAM - Cycle C 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} }

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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 : 

ACCARY-BARBIER / CNAM - Cycle C 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 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 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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 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 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 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 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 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 " CONSTRUCT $a

ACCARY-BARBIER / CNAM - Cycle C XML-QL (3/5)  Structuration du résultat sous forme XML WHERE Springer $t $a IN " CONSTRUCT $a $ln  Le résultat est une structure XML Smith English Dupond Francais

ACCARY-BARBIER / CNAM - Cycle C 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 " CONSTRUCT $t WHERE $a IN $p CONSTRUCT $a

ACCARY-BARBIER / CNAM - Cycle C 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 " $f $l IN " $ln="anglais" CONSTRUCT $a

ACCARY-BARBIER / CNAM - Cycle C 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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 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

ACCARY-BARBIER / CNAM - Cycle C 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 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 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 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 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 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 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 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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 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 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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 *

ACCARY-BARBIER / CNAM - Cycle C 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)

ACCARY-BARBIER / CNAM - Cycle C Valeurs des expressions  Expressions (requêtes) simples :  Valeurs atomiques  1, ‘‘titi’’  Valeurs construites  true(),  date(‘‘ ’’)  Expressions complexes :  Chemins XPath   Expressions FLWR  (for-let-where-return)  Expressions conditionnelles  (if-then-else)  Constructeurs.

ACCARY-BARBIER / CNAM - Cycle C 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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 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 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

ACCARY-BARBIER / CNAM - Cycle C 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 > 2000) then 'récent' else 'ancien'

ACCARY-BARBIER / CNAM - Cycle C 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.

ACCARY-BARBIER / CNAM - Cycle C 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] } }

ACCARY-BARBIER / CNAM - Cycle C 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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) }

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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,  …

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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}

ACCARY-BARBIER / CNAM - Cycle C 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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 […]

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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, } sort } Résultat Avant Dune Prélude à fondation La marche des millénaires

ACCARY-BARBIER / CNAM - Cycle C 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 "

ACCARY-BARBIER / CNAM - Cycle C 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 X […]

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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

ACCARY-BARBIER / CNAM - Cycle C 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  Expressions XQuery  Fonctions et opérateurs  2.2. Usages et exemples de fonctions  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C 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 

ACCARY-BARBIER / CNAM - Cycle C Pour en savoir plus...  Site du W3C sur XQuery :   P. Wadler, XQuery : a typed functional language for querying XML  J. Siméon et P. Wadler, The Essence of XML  Galax : 