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

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

description

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 - PowerPoint PPT Presentation

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

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

Présenté par :

Ramdane Guenineche

Nabila Rahmoune

Miloud Benotmane

XML et Bases de Données

UNIVERSITÉ DU QUÉBEC À MONTRÉAL

INF 7115 Bases de données - Session d’Hiver 2005.

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

2

Sommaire Introduction

Analyse comparative de trois langages de requêtes.

Techniques d’indexation

Techniques d’optimisation

Conclusion

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

3

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

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

4

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.

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

5

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

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

6

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

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

7

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><year>1999</year><model>Sable LT</model><color>metallic blue</color><option opt=“sunroof”>……<price>26800</price></vehicle>

Manufacturer

Model

MN

.NA

ME

YE

AR

MERCURY 1999

MO

-NA

ME

RA

NK

Front-rating

3.84 2.14

Sable LT

Side-rating

9

……

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

8

Sélection et extraction Sélectionner et extraire de <manufacturer> les <model> ayant <rank> <=10.

select Mfrom nhsc.manufacturer Mwhere M.model.rank <=10

WHERE <manufacturer><model><rank>$r</rank></model></manufacturer> ELEMENT_AS $m INwww.nhsc\manufacturers.xml,$r<=10CONSTRUCT $m

XML-GLLOREL

XML-QL

www.nhsc\manufacturers.xml

Manufacturer

Model

Manufacturer

*

RANK

<= 10

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

9

Réduction

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.

select Z.mn_name, Z.year,(select Z.model.mo_name, Z.model.rankwhere Z.model.rank <= 10)from nhsc.manufacturer Z

WHERE <manufacturer><mn_name>$mn</mn_name><year>$y</year></manufacturer> CONTENT_AS $m INwww.nhsc\manufacturers.xmlCONSTRUCT<manufacturer><mn_name>$mn</mn_name><year>$y</year>{ WHERE <model><mo_name>$mon</mo_name><rank>$r</rank></model> IN $m,$r<=10CONSTRUCT<model><mo_name>$mon</mo_name><rank>$r</rank></model>}</manufacturer>

LOREL

XML-QL

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

10

Réduction (suite)

Model

Manufacturer

Model

ManufacturerManufacturer Manufacturer

Model

MN

-NA

ME

YE

AR

MN

-NA

ME

YE

AR

MO-NAME RANK

RANK

<= 10

XML-GL

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

11

Jointure

Génerer les paires d’éléments

< manufacturer > et < vehicle > ou

<mn-name > =<make>,<mo-name >

= < model > et < year > = < year >.

temp:= select (M,V) as pair from hsc.manufacturer M, nhs.vehicle Vwhere M.mn_name = V. make and M.model.mo_name = V.modeland M.year = V.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 INwww.nhsc\manufacturers.xml<vehicle><model>$mon</model><year>$y</year><make>$mn</make></vehicle> CONTENT_AS $v IN www.nhsc\vehicles.xmlCONSTRUCT<manufacturer><mn_name>$mn</mn_name><year>$y</year><vehiclemodel>$mo,$v</vehiclemodel></manufacturer>

XML QL

LOREL

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

12

Jointure (suite)XML-GL

www.nhsc\manufacturers.xml

Manufacturer

www.nhsc\vehicles.xml

Vehicle

Model

YEA

R

YE

AR

MAKE

MN

-NA

ME

MO

DE

L

MO-NAM

E

VehicleModel

Manufacturer

ModelVehicle

YE

AR

MN

-NA

ME

**

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

13

Restructuration

select xml(car: (select X.vehicle.make, X.vehicle.model,X.vehicle.vendor, X.manufacturer.rank,X.vehicle.pricefrom temp.pair X))

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.xmlCONSTRUCT<car><make>$mn</make><mo_name>$mon</mo_name><vendor>$v</vendor><rank>$r</rank><price>$p</price></car>

Collecter les éléments <car> et lister leur make,model,vendor,rank et prix dans cet ordre

LOREL

XML-QL

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

14

Restructuration(suite)

YEA

R

RA

NK

www.nhsc\manufacturers.xml

Manufacturer

www.nhsc\vehicles.xml

Vehicle

Model

YE

AR

MO

DE

L

MO-NAM

EV

EN

DO

R

PR

ICE

VE

ND

OR

CAR PRICE

RANK

MO

DE

L

MA

KE

XML-GL

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

15

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

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

16

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

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

17

Principes de PATRICIA

Liens directs

Liens distants

Exemple: casting

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

18

Principes de Fabric

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

19

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

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

20

Ctree (Compact Tree)

Exemple de données XML organisé en d’arbre

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

21

CTreeArbre de document initial

Arbre de chemins ordonnés

Requête Q: /dblp/article/author, Réponse est: 4,15,18

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

22

Chemin sommaire et Index CTree

(b) Un index CTree pour l’arbre

(a) Un chemin ordonné sommaire

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

Exemple2: /dblp/article [contains(.//author, « John ») and year > 94]/title

1. Frame (0,1,3,4,2) correspond aux noeuds de la requete: dblp,article,author, year,title

2. 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

3. La conjonction des résultats retournés l’étape 2 donne 2:0 correspond au nœud 3

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

23

Traitement de requêtes /dblp/article [contains(.//author, « John ») and year > 94]/title

Arbre d’une requête

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

1 Le module FrameFinder commence la recherche à partir de la racine vers les feuilles pour rechercher les frames.

2 Pour chaque frame, évaluer les prédicats en utilisant l’index

3 Évaluer les contraintes et retourne le résultat

4 La liste des éléments comme sortie

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

24

Évaluation de la performance

Ctree prend l’avantage sur Fabric et XISS

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

25

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.

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

26

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

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

27

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

NSVS

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é).

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

28

Algorithme: Programmation dynamique

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

29

Programmation dynamique taillée

1. Pour chaque statut, calculer un cout + bacout2. Établir une liste de statuts ordonnés selon l’étape 1.3. Un sous plan sera abandonné quand sont cout dépasse celui d’un

autre qui lui similaire.4. 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

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

30

Exemple de Programmation dynamique taillée

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

31

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

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

32

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é.

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

33

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.

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

34

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

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

35

Questions ?