Présenté par : Ramdane Guenineche Nabila Rahmoune Miloud Benotmane

Slides:



Advertisements
Présentations similaires
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Advertisements

XML.
C#3 et le projet Linq Mitsuru FURUTA
Linq, fonctionnement et architecture
Transformation de documents XML
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Corese Moteur de recherche sémantique pour RDF
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Julien HERON.
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Cours MIAGE Henry Boccon-Gibod 1 XML, Extensible Mark up Language Un esperanto des langages informatiques.
Les espaces de nommage XML par Philippe Poulard 1
Cours Web sémantique Langage SPARQL
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
1 Les technologies XML Cours 6 : Quelques langages XML Janvier Version 1.0 -
le langage les éléments
Domaines nominaux XSLT
Introduction Concepts fondamentaux Éléments d’architecture
Intégrer vos données avec.
Bases de données orientées-objets
TECHNIQUES DES SGBDO 1. Qu'est-ce qu'un SGBDO ?
Manipulation d’XML avec XSL
Laboratoire SAFARI , UQAM
Introduction et Concepts : De SGML à XML
20 Données semi-structurées et XML
XML et les Bases de Données
Cours 3: Base de donnée XML
LES LANGAGES DE PROGRAMMATIONS JAVASCRIPTH.T.M.LP.H.PS.Q.L Reynald Maréchal DI045.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Le langage PHP 5.
Bouchra SOUKKARIEH Florence SEDES SIG - Université de Paul Sabatier
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
XML: Syntaxe XML, DTD et Schémas
Xpath XML Path language par Yves Bekkers
Intégration ActiveXML - Xyleme
Aperture Science Project
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
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
XML Plan du cours Introduction au fichier XML
Les feuilles de style CSS
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
Introduction.
BD XML 1. Introduction 2. XML : Modèle de données
Linq & les expressions lambda. L Language In Integrated Q Query.
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
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.
XPath XML Path UP Web Année universitaire
ACCARY-BARBIER / CNAM - Cycle C ème partie : Gestion de contenus Web  CHAPITRE 1 : XML Dynamique  CHAPITRE 2 : XQUERY et les BD  CHAPITRE.
X xx yyy Document XML Résolution d'entités Résolution espaces de nommages Reader Parsing Contrôle de validité structurelle Contrôle arbre bien formé Contrôle.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Acquisition d’information sur internet
Par : Baltagi Bilal Alves Mickael
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
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
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Le langage XML Documents bien formés Un document XML est dit bien formé lorsque le document est correct sans toutefois posséder une DTD. Le prologue du.
Introduction SGDBOO Sommaire Définition d’un SGBD (6 services)
Préparé par : Marouane FELJA
Utiliser XQuery pour interroger des bases SQL Présenté par : Cosquer Pierre Guillon Verne Martin El Bazi Siham Ben Othman Mohamed Malek Galech Mercado.
Utiliser XQuery pour interroger des bases SQL Présenté par : Cosquer Pierre Guillon Verne Martin El Bazi Siham Ben Othman Mohamed Malek Galech Mercado.
20 Données semi-structurées et XML
Transcription de la présentation:

Présenté par : Ramdane Guenineche Nabila Rahmoune Miloud Benotmane UNIVERSITÉ DU QUÉBEC À MONTRÉAL XML et Bases de Données Présenté par : Ramdane Guenineche Nabila Rahmoune Miloud Benotmane INF 7115 Bases de données - Session d’Hiver 2005.

Sommaire Introduction Analyse comparative de trois langages de requêtes. Techniques d’indexation Techniques d’optimisation Conclusion

Introduction XML est un métalangage permettant de représenter des documents sous forme d’éléments balisés et imbriqués Standardisé en 1998 par W3C. Son objectif est de rendre possible le transfert de données et leur structure indépendamment de la plate-forme. Représentation par DTD ou schémas Langages XPath, XQuery XSQL Supporté par des SGBR : Oracle, SQL Server

Analyse comparatives de trois langages de requêtes XML Source : A. Bonifati, S.Ceri “Comparative Analysis of Five XML Query Languages” Sigmod Record, March 2000.

Langages de requêtes LOREL ( Lightweight Object Repository Language ) Extension de OQL Basé sur l’expression de chemin simple XML QL ( XML Query Language ) Extension de SQL Arête marquée avec l’étiquette identificateur de l’élément Chaque graphe est distingué par une racine XML GL ( XML Graphical Language ) Langage graphique Basé sur le marquage du graphe XML

Modèle de données Modèle de données spécifique - LOREL - < Identif, Valeur > - > graphe XML (noeud=donnée) XML-QL - > Graphe XML (noeud =ID Objet) XML-GL - > Modèle de données XML graphique Expressions chemin - LOREL - XML-QL - XML-GL Partiellement

Exemple comparatif <manufacturer> <mn-name>Mercury</mn-name> <year>1999</year> <model> <mo-name>Sable LT</mo-name> <front-rating>3.84</front-rating> <side-rating>2.14</side-rating> <rank>9</rank> </model> ……… </manufacturer> <vehicle> <vendor>Scott Thomason</vendor> <make>Mercury</make> <model>Sable LT</model> <color>metallic blue</color> <option opt=“sunroof”> …… <price>26800</price> </vehicle> Manufacturer …… MN.NAME YEAR Model 1999 MERCURY MO-NAME RANK Front-rating Side-rating Sable LT 3.84 2.14 9

Sélection et extraction Sélectionner et extraire de <manufacturer> les <model> ayant <rank> <=10. XML-GL LOREL www.nhsc\manufacturers.xml Manufacturer Model * RANK <= 10 select M from nhsc.manufacturer M where M.model.rank <=10 XML-QL WHERE <manufacturer> <model> <rank>$r</rank> </model> </manufacturer> ELEMENT_AS $m IN www.nhsc\manufacturers.xml, $r<=10 CONSTRUCT $m

Réduction XML-QL LOREL WHERE <manufacturer> <mn_name>$mn</mn_name> <year>$y</year> </manufacturer> CONTENT_AS $m IN www.nhsc\manufacturers.xml CONSTRUCT <manufacturer> { WHERE <model> <mo_name>$mon</mo_name> <rank>$r</rank> </model> IN $m, $r<=10 CONSTRUCT<model> </model> } </manufacturer> De < manufacturer > laisser tomber les sous éléments < model > dont < rank > est >10 ainsi que les éléments < front rating > et < side rating > des modèles restants. LOREL select Z.mn_name, Z.year, (select Z.model.mo_name, Z.model.rank where Z.model.rank <= 10) from nhsc.manufacturer Z

Réduction (suite) XML-GL Manufacturer Model Model YEAR MN-NAME MO-NAME RANK <= 10 Model

Jointure XML QL LOREL Génerer les paires d’éléments < manufacturer > et < vehicle > ou <mn-name > =<make>,<mo-name > = < model > et < year > = < year >. WHERE <manufacturer> <mn_name>$mn</mn_name> <year>$y</year> <model> <mo_name>$mon</mo_name> </model> CONTENT_AS $mo </manufacturer> CONTENT_AS $m IN www.nhsc\manufacturers.xml <vehicle> <model>$mon</model> <make>$mn</make> </vehicle> CONTENT_AS $v IN www.nhsc\vehicles.xml CONSTRUCT <manufacturer> <vehiclemodel> $mo,$v </vehiclemodel> </manufacturer> LOREL temp:= select (M,V) as pair from hsc.manufacturer M, nhs.vehicle V where M.mn_name = V. make and M.model.mo_name = V.model and M.year = V.year

Jointure (suite) XML-GL Manufacturer * Manufacturer VehicleModel Model www.nhsc\manufacturers.xml Manufacturer www.nhsc\vehicles.xml Vehicle Model YEAR MAKE MN-NAME MODEL MO-NAME VehicleModel Manufacturer Model Vehicle YEAR MN-NAME *

Restructuration XML-QL LOREL Collecter les éléments <car> et lister leur make,model,vendor,rank et prix dans cet ordre WHERE <manufacturer> <mn_name>$mn</mn_name> <vehiclemodel> <model> <mo_name>$mon</mo_name> <rank>$r</rank> </model> <vehicle> <price>$y</price> <vendor>$mn</vendor> </vehicle> </vehiclemodel> </manufacturer> IN www.nhsc\queryresult3.xml CONSTRUCT <car> <make>$mn</make> <vendor>$v</vendor> <price>$p</price> </car> LOREL select xml(car: (select X.vehicle.make, X.vehicle.model, X.vehicle.vendor, X.manufacturer.rank, X.vehicle.price from temp.pair X))

Restructuration(suite) XML-GL www.nhsc\manufacturers.xml Manufacturer www.nhsc\vehicles.xml Vehicle Model YEAR MODEL MO-NAME VENDOR PRICE CAR PRICE RANK MODEL MAKE YEAR VENDOR RANK

Qualités Déclaratif : contenu du résultat défini par la requête LOREL ressemble à OQL, basé sur le calcul XML-QL représente un langage de logique XML-GL fait appel à QBE Support de définition de fonction : supporter la définition des fonctions XML-QL Fonctionnel Puissance expressive : supporter tous les opérateurs algébriques relationnels (restructuration, réduction,….) LOREL, XML-QL Facile à utiliser LOREL, XMX-QL et XML-GL

Fabric [COOPER 2001] Basé sur l’algorithme PATRICIA (Practical Algorithm To Retrieve Information) Indexer des chaînes de caractères Index subdivisé en blocs, constituant des couches. Organisé en couches horizontales Liaison séquentielle entre couches par deux types: Liens directs non étiquetés et liens distants étiquetés

Principes de PATRICIA Liens distants Exemple: casting Liens directs

Principes de Fabric

Exemples pratiques Chemin en ligne : « Trouver toutes les factures de l’acheteur ABC Corp » Réponse: «Invoice.Buyer.Name.ABC Corp» Chemins raffinés: « Trouver toutes les factures quand une compagnie X solde à une compagnie Y   » Réponse: La réponse consiste à trouver une conjonction entre le vendeur <seller> et l’acheteur <buyer> correspondant à la même facture <invoice>. Si la campagnie « Acme Inc. » solde des articles à « ABC Corp » alors une clé de type « Z ABC Corp Acme Inc. » est générée

Exemple de données XML organisé en d’arbre Ctree (Compact Tree) Exemple de données XML organisé en d’arbre

Requête Q: /dblp/article/author, Réponse est: 4,15,18 CTree Arbre de document initial Arbre de chemins ordonnés Requête Q: /dblp/article/author, Réponse est: 4,15,18

Chemin sommaire et Index CTree (a) Un chemin ordonné sommaire Exemple2: /dblp/article [contains(.//author, « John ») and year > 94]/title Frame (0,1,3,4,2) correspond aux noeuds de la requete: dblp,article,author, year,title Prédicats: author = «John» et year > 94 3:0 et 3:1 correspondants aux nœuds 4, 15 4:0 et 4:1 correspond au nœud 5, 19 La conjonction des résultats retournés l’étape 2 donne 2:0 correspond au nœud 3 Exemple: /dblp/article[titre and year] Les éléments 1:0 et 1:2 sont les réponses puisque les 0 et 2 sont contenus dans les groupes 2 et 4 (b) Un index CTree pour l’arbre

Traitement de requêtes /dblp/article [contains(.//author, « John ») and year > 94]/title Algorithme de traitement de requête basée sur l’index CTree Input : T, index avec Ctree, Q : Requête Output : La liste des éléments dans T satisfaisant la requête Le module FrameFinder commence la recherche à partir de la racine vers les feuilles pour rechercher les frames. Pour chaque frame, évaluer les prédicats en utilisant l’index Évaluer les contraintes et retourne le résultat La liste des éléments comme sortie Arbre d’une requête

Évaluation de la performance Ctree prend l’avantage sur Fabric et XISS

Optimisation: Notions 1/3 [Yuqing 2003] T=(VQ,ET) est un arbre Requête patron est le plus petit arbre étiqueté, nommé Q=(VQ,EQ). L’image d’une requête patron Q dans T est définie par la correspondance h { u : u  Q }  { x : x  T } tel que: Pour chaque nœud u  Q, le prédicat du nœud étiqueté u est satisfait par h(u) dans T Pour chaque arc (u,v) de Q, h(v) est le descendant(fils)de h(u) dans T.

Optimisation: Notions 2/3 Le coût d’acces à un index pour retrouver n items est donné par fI  n. Le coût de tri d’une liste de n items est de nlong  fS Le coût de jointure de A et B est donnée par : Arbre-pile ascendant : 2  |AB|  fIO + 2  |A|  fST Arbre-pile descendant  : 2  |A|  fST avec |A|, |B| les cardinalités des nœud A et B respectivement. fI , fS , fIO des constantes

Optimisation: Notions 3/3 Ayant une requête patron Q=(VQ,EQ), un statut est un arbre S=(VS,ES), où : VQ = {v / v  NS }  NS , N’S  VS  NS  N’S = . U NS = VQ NSVS ES  EQ  NS  VS ,  u,v  NS  (u,v)  ES. 3 types de statuts: initial S0, intermédiaire Si, final Sf A chaque statut S est associé un coût. C’est le coût demandé pour passer du statut S0 à S. Un mouvement M d’un statut S est un vecteur (aN,dN,Algo,St,Cost), où aN et dN sont nœuds patrons et (aN,dN)  ES est l’arc à évaluer; Algo spécifie l’opérateur physique; St est le nœud sur lequel portera l’ordre de tri; Cost est le coût estimé de la jointure (plus le coût de tri si St est spécifié).

Algorithme: Programmation dynamique

Programmation dynamique taillée Pour chaque statut, calculer un cout + bacout Établir une liste de statuts ordonnés selon l’étape 1. Un sous plan sera abandonné quand sont cout dépasse celui d’un autre qui lui similaire. L’exploration des sous plans se termine quand le statut final est atteint. Statut amorti: Un statut S est amorti si les mouvements possibles pM(S)=. Règles d’exploration: explorer les statuts dont le cout + bacout est minimal. Règles de taillement : Un statut S est mort si le coût de S0 à S dépasse le coût minimal du chemin menant de S0 à Sf. Règles de prévention : En explorant un statut, le nouveau statut ne sera pas généré s’il est amorti

Exemple de Programmation dynamique taillée

Programmation dynamique avec taillement agressif Te : paramètre d’exploration en profondeur Heuristique: « Un bon sous plan a la chance de mener à la solution optimale ». Formule pour un niveau n: |E|  Te  (|E| - n)  n n=0 Exemple: Te = 2, les statuts 3 et 4 ne seront pas explorés

Programmation dynamique avec taillement agressif Plans à profondeur gauche Par analogie au mode relationnel, l’exploration se fait en profondeur gauche. Exemple: le statut 9 ne sera pas généré.

Conclusion XML comme nouvelle approche de représentation des données est encore un champ fertile aux recherches selon divers aspects: langages, indexation, optimisation, … Les langages Lorel, XML QL, XML GL de requêtes doivent : Être amélioré (même niveau ) afin de se communiquer entre eux. Constituer un langage hiérarchique similaire à ceux qui existent pour les bases de données relationnelles objet . Les méthodes d’indexage sont basées sur le principe de mémorisation des chemins d’accés dans des structures de données souvent sous forme d’arbre. La technique Ctree représente un moyen très puissant pour rechercher les données. La programmation dynamique taillée et celle avec taillement agressif proposent des plans d’exécution de requêtes très efficaces.

Bibliographie R. Godin Note de cours, Hiver 2005. Qinghua Zou, Shorong Liu, Wesley W. Chu, Using a Compact Tree to Index and Query XML Data, CKIM’04, ACM November 2004 Qinghua Zou, Shorong Liu, Wesley W. Chu, Ctree : A compact Tree for Indexing XML Data, WIDM’04, ACM November 2004 Brian F. Cooper, Neal Sample, Michael J. Franklin, Gisli R. Hjaltason, Moshe Shadmon A Fast Index for Semistructured Data, 27th VLDB Conference, 2001 Yuqing Wu, Jignesh M. Patel, H. V. Jagadish Structural Join Order Selection for XML Query Optimisation, in Proceedings of the 19th International Conference on Data Engineering (ICDE), 2003 V. Marík, Database and expert systems applications, 2003 G. Gardarin, XML Des bases de données aux services, Dunod, 2002. A. Bonifati, S.Ceri “Comparative Analysis of Five XML Query Languages” Sigmod Record, March 2000. Brian F. Cooper, Neal Sample, Michael J. Franklin, Gisli R. Hjaltason, Moshe Shadmon A Fast Index for Semistructured Data, 27th VLDB Conference, 2001 WWW.XML.org http://peccatte.karefil.com/Software/RBourret/xmlBD.htm http://actu.ladoc.net/55011127/index.php3 http://www.xml.com/pub/a/2001/06/20/databases.html

Questions ?