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

XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple 5. Conclusion.

Présentations similaires


Présentation au sujet: "XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple 5. Conclusion."— Transcription de la présentation:

1 XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple 5. Conclusion

2 2 1. Introduction n Générations de BD – Réseau et hiérarchique – Relationnel – Objet-Relationnel 90 - … n Web et BD – un rendez-vous manqué – couplage faible par serveur d'applications – le Web est une vaste BD distribuée – la structuration est faible – plutôt orienté documentaire...

3 3 XML s'impose n Intégration des données et méta-données n Standard déchange de données universel n Les BD ne peuvent rester indifférentes : – nécessité de stocker les documents XML – nécessité de pouvoir interroger ces documents – évolution ou révolution ? n Quel modèle de données ? n Quel langage d'interrogation ? n Quelle intégration avec l'existant ?

4 4 Insuffisances des modèles classiques n Modèle Relationnel – Schéma fixe le plus complet possible – Force une structure tabulaire – Intégration objet difficile n Modèle Objet – Plus souple mais fortement typé – Nécessite un schéma – Définition de type union possible – Mise en œuvre difficile

5 5 Limites de SQL n Mauvais support de l'imbrication – GROUP BY limités – Généralement dans les éditeurs de rapports n SQL3 trop complexe – Requêtes imbriquées difficiles – Méthodes en qualification coûteuse – Références pas très claires n SQL à 30 ans ! – Inventé en 1970 pour la gestion – XQuery le successeur ?

6 6 2. Modèle de données n Schémas flexibles et irréguliers – Optionnels, avec ou sans DTD n Données auto-descriptives – Balises et attributs n Modèle de type hypertexte – Support des références n Éléments atomiques ou complexes – Composition par agrégation n Types de données variés et extensibles – Textes, numériques, …, types utilisateur

7 7 Le modèle des schémas n Déclaration des éléments et attributs – Typage similaire à l'objet n Spécification de types simples – Grande variété de types n Génération de types complexes – Séquence (Sequence) – Choix (Choice) –...

8 8 Exemple de documents Le Moulin des Vignes Mougins Moules Poisson frais … … Denise Fabre La Licorne Des Moines Paris Dupuis Bla Bla Rose and Crown

9 9 La puissance de XQuery Questions tabulaires Structure d'arbres Recherche d'information XQUERY

10 10 Expressions de chemins (XPath) SelectorSelected nodes /Document root //Any sub-path *Any element nameElement of tag of name name text()Any text node processing-instruction(name)Processing instruction of given name comment()Any comment node node()Any node id(value)Element of id value

11 11 Exemple 1 : XPath n (Q1) Noms de tous les restaurants : – collection(Restaurants)/Restaurant/Nom/text() – collection(Restaurants)/Restaurant/Nom

12 12 Exemple 2 et 3 : XPath + n Expression régulière – Menu de tous les restaurants – collection(Restaurants)//Menu n Accès via index à attribut – Donnez le nom des menus du premier restaurant –

13 13 Exemple 4 : Sélection n Lister le nom des restaurants de Cabourg: – collection(Restaurants)/Restaurant [Adresse/Ville= Cabourg"] /Nom – FOR $R IN collection("Restaurants")/Restaurant WHERE $R/Adresse/Ville = Cabourg RETURN {$R/Nom} Langages de requêtes

14 14 Exemple 5 : Jointure n Lister le nom des Restaurants avec téléphone dans la rue de l'Hôtel Lutecia: – FOR $R IN collection("Restaurants")/Restaurant, $H IN collection("Hotels")/Hotel WHERE $H//Rue = $R//Rue AND $H//Nom = "Le Lutecia" RETURN {$R/Nom} {$R/Téléphone}

15 15 Exemple 6 : Restructuration d'arbre n Construire une liste de restaurants par Ville – FOR $c IN distinct(collection(Restaurants)/Restaurant//Ville) RETURN {$c} FOR $r IN collection(Restaurants)/Restaurant WHERE $r//Ville = $c RETURN {$r}

16 16 Exemple 7 : Imbrication n Adresses des hotels dans des villes ayant des restaurants trois étoiles – FOR $h IN collection(Hotels)/Hotel WHERE $h/Adresse/Ville IN FOR $r IN collection(Restaurants)/Restaurant WHERE = RETURN {$r/Adresse/Ville/text()} RETURN {$h/Adresse}

17 17 Exemple 8 : Agrégat simple n Combien de restaurants y-a-t-il en collection ? LET $R := collection(Restaurants)/Restaurant RETURN count ($R)

18 18 Exemple 9 : Agrégat partitionné n Lister le nom de chaque restaurant avec le prix moyens des menus proposés – FOR $r IN collection(Restaurants)//Restaurant LET $a := avg(collection(Restaurants)// [Restaurant = RETURN {$r/Nom} {$a}

19 19 Exemple 10 : recherche textuelle n Lister les bons restaurants de Paris – FOR $r IN collection(Restaurants)//Restaurant WHERE CONTAINS ($r/Comments, Bon) OR CONTAINS ($r/Comments, Excellent) AND $r/Adresse/Ville = Paris RETURN $r/Nom

20 20 Exemple 11 : ordre et désordre n Lister les bons restaurants de Paris par ordre alphabétique FOR $r IN unordered(collection(Restaurants)//Restaur ant) WHERE $r/Comments CONTAINS (Excellent, Good) AND $r/Adresse/Ville = Paris RETURN $r/Nom SORTBY ($r/Nom DESCENDING)

21 21 Exemple 12 : XML actif (AXP) n Construire un document avec en-tête, titre, liste restaurants peu chers, titre, liste restaurants chers List of very expensive restaurants FOR $r IN collection(Restaurants)//Restaurant WHERE EVERY p in SATISFIES RETURN {$r} List of very inexpensive restaurants FOR $r IN collection(Restaurants)//Restaurant WHERE SOME p in SATISFIES RETURN {$r} {date()}

22 22 Bilan XQuery n Véritable L4G XML n Très puissant – Restriction – Projection – Jointure – Imbrication – Restructuration – Agrégation – Tri – Quantificateurs – Mots-clés – … n Sur des forêts dont les arbres sont des documents


Télécharger ppt "XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple 5. Conclusion."

Présentations similaires


Annonces Google