Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr



Documents pareils
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE

XML et Bases de données. Les bases de données XML natives.

XML et recherche d information

Introduction aux concepts d ez Publish

Le langage SQL Rappels

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

BD et XML : Exercices

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

données en connaissance et en actions?

OCL - Object Constraint Language

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Les structures de données. Rajae El Ouazzani

Systèmes d information et bases de données (niveau 1)

NFE204 Bases de données avancées

1 Introduction et installation

SQL Parser XML Xquery : Approche de détection des injections SQL

Programmer en JAVA. par Tama

A QUOI SERVENT LES BASES DE DONNÉES?

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL : créer et interroger une base

Bases de données avancées Introduction

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Groupe Eyrolles, 2004 ISBN :

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

SII Stage d informatique pour l ingénieur

Module BD et sites WEB

Le Langage SQL version Oracle

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Document Object Model (DOM)

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Master d Informatique Corrigé du partiel novembre 2010

A QUOI SERVENT LES BASES DE DONNÉES?

PHP 4 PARTIE : BASE DE DONNEES

Bases de données. Chapitre 1. Introduction

BIRT (Business Intelligence and Reporting Tools)

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Les bases de données

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Programmation Web. Madalina Croitoru IUT Montpellier

Présentation du langage et premières fonctions

Business Intelligence avec Excel, Power BI et Office 365

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Modélisation de bases de données : Le modèle relationnel

Programmation des Applications Réparties. Parsers XML DOM et SAX

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

16H Cours / 18H TD / 20H TP

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Bases de Données. Plan

Séance 1 Introduction aux bases de données

Les arbres binaires de recherche

INTRODUCTION AU CMS MODX

TP Bases de données réparties

Perl Orienté Objet BioPerl There is more than one way to do it

Arbres binaires de recherche

Devenez un véritable développeur web en 3 mois!

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

TP 1. Prise en main du langage Python

Programmes des classes préparatoires aux Grandes Ecoles

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Les Entrepôts de Données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Cours Bases de données

Bases de données élémentaires Maude Manouvrier

Atelier de l Ecole doctorale : Latex, Lyx, and friends Chapitre 2 : Gestion de la bibliographie

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

Business Intelligence

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Structure fonctionnelle d un SGBD

Architectures d'intégration de données

Université de Bangui. Modélisons en UML

Gestion Électronique de Documents et XML. Master 2 TSM

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

STAGE IREM 0- Premiers pas en Python

Centre Génie Industriel et Informatique (G2I) RECHERCHE D INFORMATION DANS LES DOCUMENTS XML RAPPORT DE RECHERCHE

Introduction à la B.I. Avec SQL Server 2008

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Utiliser un tableau de données

Introduction à ElasticSearch

Paginer les données côté serveur, mettre en cache côté client

BES WEBDEVELOPER ACTIVITÉ RÔLE

XML : documents et outils

Évaluation et optimisation de requêtes

BUSINESS INTELLIGENCE

TP3 : Manipulation et implantation de systèmes de fichiers 1

Évaluation et implémentation des langages

Transcription:

Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet anne.doucet@lip6.fr 1

Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents Expression de chemins XPath Langages de requêtes pour XML XQuery Exemples de requêtes 2

Interrogation de documents XML extraire rapidement un sous-ensemble de données transformer des données en documents XML intégrer des données provenant de sources hétérogènes retrouver des documents (full text) générer des nouveaux documents, dériver de nouvelles présentations à partir d un document indexer des documents effectuer des recherches par contexte requêtes sur documents structurés (données imbriquées, etc.) Bases de données et Recherche d Information 3

Fonctionnalités BD Tout ce qu offre SQL déclaratif indépendant du système support de quantificateurs existentiels et universels support d aggrégats recherche d un élément dans un document combiner des informations provenant de plusieurs documents doit pouvoir être optimisé support de types simples et complexes (SQL3)... 4

Fonctionnalités RI support d opérations sur la structure des documents transformation et création de structures XML recherche d informations dans le document recherche efficace de texte dans de grandes collections de documents 5

Syntaxe XML Une seule racine, imbrication correcte : structure de graphe Structure exacte des données pas toujours connue, ou pouvant varier selon les données Il est plus facile d utiliser une forme navigationnelle d interrogation, basée sur des expressions de chemin. Langage de requêtes = SQL + RI + Navigation (SQL généralisé à XML) 6

Caractéristiques du langage de requêtes (1) Caractéristiques essentielles : une formulation de la requête en trois parties : pattern + filtre + constructeur possibilité d imbriquer des requêtes, de les grouper, d indexer, de faire du tri (permet de restructurer un document) disposer d un opérateur de jointure, permettant de combiner des données provenant de diverses portions de documents interroger sans connaître nécessairement la structure du document (accès à des données imbriquées de façon arbitraire) 7

Caractéristiques du langage de requêtes (2) Fonctionnalités utiles : possibilité de définir une alternative en cas de données manquantes pouvoir vérifier l absence d une information pouvoir faire appel à des fonctions externes (agrégats, comparaison de chaînes de caractères, etc.) Utilisation d opérateurs de navigation (simplifie la manipulation des données par référence) 8

DTD Exemple www.bn.com/bib.xml <!ELEMENT bib (book*)> <!ELEMENT book (title, (author+ editor+), publisher, price)> <!ATTLIST book year CDATA #REQUIRED> <!ELEMENT author (last, first)> <!ELEMENT editor (last, first, affiliation )> <!ELEMENT title (#PCDATA )> <!ELEMENT last (#PCDATA )> <!ELEMENT first (#PCDATA )> <!ELEMENT affiliation (#PCDATA )> <!ELEMENT publisher (#PCDATA )> <!ELEMENT price (#PCDATA )> 9

10 requêtes essentielles (1) Sélection et extraction : tous les titres des ouvrages publiés par Eyrolles depuis 2000 Flattening : l arbre XML de la base est «mis à plat» (ex: aplatir la structure imbriquée book (title, author) en faisant apparaître un n-uplet (title, author) par auteur de livre) Préserver la structure : afficher la base dans sa version originale (regrouper les livres par titre) Changer la structure par imbrication de requête : lister la base par auteur changer la structure par opérateur de regroupement : classement des livres par auteur 10

10 requêtes essentielles (2) Combiner plusieurs sources de données : joindre la base des livres et celle des prix pour avoir les livres et leurs prix. Indexer les éléments de la structure : lister les livres par leur titre et les deux premiers auteurs (et un élément et al s il y a plus que deux auteurs) Trier les résultats : titre des livres par ordre alphabétique Accès approximatif par les éléments (tags) : sélectionner les livres dont une des balises contient l expression régulière *or (author, editor) et dont la valeur est Martin Accès approximatif par le contenu : retrouver les sections ou les chapitres traitant de XML (indépendamment du niveau d imbrication) 11

Use Cases (W3C) Use Case «XMP» : Experiences and Exemplars Use Case «TREE» : requêtes préservant la hiérarchie Use Case «SEQ» : requêtes basée sur des séquences Use Case «R» : accès à des données relationnelles Use Case «SGML» : standard generalized markup language Use Case «TEXT» : recherche full-text Use Case «NS» : requêtes utilisant des espaces nominaux (namespaces) Use Case «PARTS» : recursive parts explosion Use Case «REF» : requêtes utilisant des références Use Case «FNPARM» : requêtes utilisant des fonctions et paramètres 12

Navigation Modèle de données XML : graphe dont les noeuds sont des éléments. Expression de chemins séquence de noeuds T1, T2,..., Tn retourne un ou plusieurs noeuds Tn, tels qu il existe des arcs T1 T2,... Tn-1 Tn Expression de chemin simple : nom de racine suivi par une séquence de balises Expression de chemin généralisée : utilisation de patterns (sous-chaîne de caractère, disjonction, optionalité, nombre quelconque de balises). 13

XPath Spécification W3C Expression de chemins XML standards prédicats pour spécifier les valeurs d éléments ou d attributs Brique de base pour d autres standards XML XLink : spécification des hyperliens XPointer : pointer des éléments de documents avec des expressions XPath dans les URL XSL : langage de spécification de feuilles de style XQuery : langage de requêtes 14

XPath (types) Types Boolean, Number, String, Node-sets (sous-arbre) Types de noeuds : processing instruction nodes (instructions) comment nodes (commentaires) root nodes (racine) element nodes (élément) attribute nodes (attribut) namespace nodes (attributs d un noeud) text nodes (contenu) 15

Exemple bib year book title author editor publisher price last first last first affiliation 16

XPath (axes) Position (noeud courant) self. Descendants direct child / indirect descendant // Prédécesseurs direct parent.. indirect ancestor Frères même niveau sibling navigation following-/preceding-sibling Autres ancestor-or-self, descendant-or-self, namespace, attribute (@) 17

XPath (fonctions) Positions relatives et information locale Exemples position() : position dans le contexte number() : nombre de positions possibles dans le contexte count() : cardinalité d un node-set last() : indicateur de dernière position Autres Fonctions booléennes : and, or, not opérateurs : mod, >, <=, etc. fonctions de chaîne : contains, substring-before,... fonctions d environnement : normalize-space Permettent des requêtes de base analyse des contenus et noms de balises/attributs 18

XPath (exemples) Child::title Child::* Child::text() Attribute::year Descendant::last Self::title élément title fils du nœud contexte tous les nœuds fils du nœud contexte nœuds texte contenus dans les enfants attribut year du noeud contexte élément last descendant du nœud contexte nœud contexte si c est un élément title (rien sinon) Child::book/descendant::last élément last, descendant de l élément book fils du nœud contexte Child::*/child::last tous les éléments last petits-fils du noeud contexte Child::book[position()=1] premier fils book du nœud contexte Child::book[child::title= bases de donnees ] élément book fils du nœud contexte ayant un ou plusieurs fils title dont la valeur est bases de donnees 19

XPath (abréviations) child:: est l axe par défaut, et peut être omis child::section/child::title peut s écrire section/title attribute:: peut être remplacé par @ child::title[attribute::type= warning ] peut s écrire title[@type= warning ] // est l abréviation de /descendant-or-self::node()/ //title sélectionne tous les éléments title. est l abréviation de self::node().. est l abréviation de parent::node()../title sélectionne les enfants title du parent du nœud contexte 20

Langages de requêtes pour XML Standardisation presque terminée Buts : recherche d informations dans les documents travaille directement sur la structure XML Bases de réflexion SQL XML-QL (T&T) YATL (INRIA) Lorel (Stanford) XQL Quilt (IBM) 21

XQuery Spécification du W3C (déc.2001) inspiré de SQL satisfait les contraintes émises (requêtes essentielles, Use Cases) basé sur XPath Une requête en XQuery est une expression qui lit un ensemble de documents XML (ou des fragments) renvoie une séquence de fragments XML bien formés 22

XQuery Requête sur un arbre : parcours de l arbre utilisation de XPath Eléments de base : entiers, flottants, chaînes Variables : $nom Appels de fonction : nomfonction(...) Opérateurs sur les éléments logiques : and or arithmétiques : + - * div mod comparaison : > < = >= <= (en fait lt, gt, eq) comparaison sur les noeuds : = =!= = ordre sur les noeuds : << >> Notions de séquences (listes) ex : (1, 2, 3, 4) opérateurs : union, intersect, except 23

Expressions XQuery Principales formes des expressions XQuery: expressions de chemins construction d éléments expressions FLWR (flower) : for, let, where, return listes conditions quantificateurs types de données 24

Expression de chemin Expression XPath document( bib.xml )//book//author[last= martin ] Renvoie tous les auteurs des livres du document bib.xml dont le nom est Martin. Le résultat est une liste de fragments XML, ayant chacun comme racine un élément last. l ordre des fragments respecte l ordre du document 25

Construction d élément <employee empid= 12345 > <name>jean Dupont</name> <job>spécialiste XML</job> </employee> Crée l élément décrit dans la requête. On peut utiliser des variables : <employee empid= {$id}> <name>{$name}</name> <job>{$job}</job> </employee> Les 3 variables $id,$name,$job doivent être liées aux fragments appropriés 26

Expression FLWR FOR... LET... WHERE... RETURN Exemple : personnes ayant édité plus de 100 livres FOR $p IN document( bib.xml )//publisher LET $b:=document( bib.xml )//book[publisher = $p] WHERE count($b) > 100 RETURN $p FOR génère une liste ordonnée de liens de noms d éditeurs avec $p. LET associe à chacun de ces liens un autre lien de la liste des éléments book avec cet éditeur avec $b. On a une liste ordonnée de n-uplets($p,$b). WHERE filtre cette liste pour ne retenir que les n-uplets souhaités. RETURN construit pour chaque n-uplet la valeur résultat. Il est possible d avoir plusieurs FOR dans une requête (utilisé pour la jointure). 27

Listes Liste des éditeurs et le prix moyen de leurs livres : FOR $p IN distinct(document( bib.xml )//publisher LET $a := avg(document( bib.xml )//book[publisher= $p]/price) RETURN <publisher> <name>{$p/text()}</name> <avgprice>{$a}</avgprice> </publisher> Les listes peuvent être triées (SORTBY...ASCENDING/DESCENDING). document( bib.xml )//book[price > 100] SORTBY (author[1], title)ascending 28

Conditions IF... THEN... ELSE FOR $h IN document( library.xml )//holding RETURN <holding> {$h/title, IF ($h/@type = journal ) THEN $h/editor ELSE $h/author } </holding> Extrait du contenu d une bibliothèque les titres et soit l auteur, soit l éditeur. 29

Quantificateurs SOME... IN... SATISFIES EVERY... IN... SATISFIES FOR $b IN document( bib.xml )//book WHERE SOME $p IN $b//resume SATISFIES (contains($p, sailing ) AND contains($p, windsurfing )) RETURN $b/title Titre de tous les livres mentionnant à la fois sailing et windsurfing dans le même élément resume. FOR $b IN document( bib.xml )//book WHERE EVERY $p IN $b//resume SATISFIES contains($p, sailing ) RETURN $b/title Titre des livres mentionnant sailing dans chaque élément resume. 30

Types XQuery supporte les types de données de XML Schema, types simples et complexes. INSTANCEOF : renvoie true si la valeur du premier opérande est du type du deuxième opérande. TYPESWITCH.. CASE..DEFAULT..: branchement en fonction du type typeswitch ($animal) case element duck return quack($animal) case element dog return woof($animal) default return no sound CAST : force un type 31

Exemple (1) Livres publiés par Addison-Wesley depuis 1991, avec l année et le titre <bib> { for $b in document( www.bn.com )/bib/book where $b/publisher = Addison-Wesley and $b/@year > 1991 return <book year= {$b/@year} > {$b/title} </book> } </bib> Résultat : <bib> <book year= 1994 <title> Bases de données </title> </book> <book year= 1999 <title> Langages de requêtes XML </title> </book> </bib> 32

Exemple (2) Liste de toutes les paires (titre, auteur), chaque paire étant contenue dans un élément result. <results> { for $b in document("www.bn.com")/bib/book, $t in $b/title $a in $b/author Return <result> { $t} { $a } </result> } </results> 33

Conclusion XML : structure d arbre navigation grâce à XPath caractérisation des sous-arbres grâce aux axes Requêtes : travaillent sur les sous-arbres construits génèrent un sous-arbre extrait ou calculé XQuery : langage très puissant, comprenant toutes les fonctionnalités de SQL (restriction, projection, jointure, imbrication, restructuration, agrégation, tri, quantificateurs, etc.) En passe de devenir un standard. 34

Liens www.w3.org/tr/xquery www.w3.org/tr/xquery-requirements www.w3.org/tr/xquery-use-cases http://www-db.research.bell-labs.com/user/simeon/xquery.ps 35