Impl - PowerPoint PPT Presentation

About This Presentation
Title:

Impl

Description:

Impl mentation XQuery Georges Gardarin Introduction Alg bre XML G n ration des plans – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 41
Provided by: Gardarin4
Category:
Tags: impl | xtuple

less

Transcript and Presenter's Notes

Title: Impl


1
Implémentation XQuery
  • Georges Gardarin
  • Introduction
  • Algèbre XML
  • Génération des plans

2
1. Introduction
  • Des techniques en évolution
  • VLDB 50 des articles sur XML DB

3
Techniques de base
XQuery
Parser
Analyse de la requête
Normalisation
Mise en forme normale
Transformation
Transformation et simplification
Génération
Génération d'un plan d'exécution
Run Time Machine
Query Plan
Optimizer
Optimisation
Machine d'exécution de l'algèbre
4
2. Algèbres pour XML
  • De multiples algèbres
  • Jagadish H.V., Lakshmanan L.V.S., Srivastava D.,
    Thompson K. TAX A Tree Algebra for XML, Proc.
    DBPL Conf., Roma Italy, 2001.
  • Fernandez M., Simeon J., Wadler P.. An Algebra
    for XML Query, In Foundations of Software
    Technology and Theoretical Computer Science, New
    Delhi, 2000.
  • Zaniolo C. The Representation and Deductive
    Retrieval of Complex Objects, Proc 11th VLDB,
    Stockholm, 1985.
  • Galanis L., Viglas E., DeWitt D.J., Naughton
    J.F., Maier D. Following the Paths of XML an
    Algebraic Framework for XML Query Evaluation,
    2001
  • Tuyet-Tram Dang-Ngoc and Georges Gardarin
    Federating heterogeneous data sources with xml,
    IKS 2003

5
XAlgèbre
  • Proposée et implémentée pour un médiateur
  • XMLMedia, XQuark
  • XLive
  • Besoin dune algèbre adaptée à XQuery.
  • XTuples, représentation de données
    semi-structurées.
  • XOpérateurs, une extension des opérateurs
    relationnels, manipulant les XTuples.

6
XTuples
  • Pourquoi ce besoin de nouvelle représentation?
  • Valeurs nulles
  • Attributs multivalués
  • Extensions
  • Nécessité dune représentation adaptée aux
    données semi-structurées.

Nom Prénom Club Palmarès
Mutu Adrian NULL Coupe dItalie
Palermo Martin Villareal NULL
Del Piero Allessandro FC Juventus Ligue des champions, Championnat dItalie
7
XTuples représentation
  • Un XTuple est composé de
  • un ensemble darbre A
  • un ensemble de références R sur A.
  • Ces références sont appelées XAttributs.
  • Les opérations relationnelles se font sur R.
  • Les parcours et recomposition se font sur A.
  • Un ensemble de XTuples du même type forment une
    XRelation

8
Les XOpérateurs
  • Opérateurs étendus du relationnel adapté aux
    données semi-structurées.
  • Ils opèrent sur les XRelations (composées de
    XTuples)
  • Semi-pipeline
  • XJoinHash
  • XJoinMultiHash
  • XIntersection
  • Full-pipeline
  • XConstruct
  • XRestrict
  • XProject
  • Xunion
  • XProduct
  • XJoinSimple
  • XSource

Non-bloquant
  • XMin
  • XMax
  • XOrderBy

Bloquant
Puis jointure XTuple par XTuple
Hashage de la relation 1
9
Construction et Projection
  • XSource
  • construction XAttribut
  • construction forêt
  • ordre de la source
  • non-bloquant
  • XProjection
  • destruction de colonnes
  • destruction de (sous-) arbres
  • ordre préservé
  • non-bloquant

a
b
c
XSource
ltSAX/gt
b
c
a
b
c
XProjection
10
Filtrage
  • XRestriction
  • destruction de lignes complètes
  • ordre préservé
  • non bloquant

a
b
c
a
b
c
XRestriction
11
Union
  • XUnion
  • ordre préservé en mode bloquant, non préservé
    sinon
  • bloquant ou non suivant paramétrage

XUnion
a
b
c
a
b
c
12
Jointure
  • XJointure
  • Jointure des tables et juxtaposition d'arbres
  • ordre préservé en mode bloquant, non préservé
    sinon
  • bloquant ou non suivant paramétrage
  • XFusion
  • Concaténation d'arbres

a
b
c
XJointure
d
e
a
b
c
d
e
f
13
Algèbre XML Imbrication
  • Nesting operations required to compute
    multi-valued variables
  • Example
  • for r in //restaurant
  • Let m r//menu
  • Return (r/name, r/region, count(m))
  • Solution introduce Nest/Unest operators
  • r.Project(/name, /region,
    //menu) ?r1
  • r1.Nest(/name,/region, //menu)
  • In short and more powerful
  • r.Project((/name), /region,
    //menus)
  • Also useful for quantifiers (every)

14
Algèbre XML Valeurs nulles
  • Null in XML is two-folds
  • Empty tag ltregion /gt
  • Missing tag
  • XQuery requires predicates be true (no null)
  • Mandatory element
  • XQuery allows null (empty tag) in results
  • Optional element
  • Useful to check at processing time
  • Restriction may eliminate nulls
  • Join is (left/right) outer join according to
    optionality

15
Annotation des attributs
  • Defined by a path sequence
  • r/nom, r/region, r/offer/menus/menu
  • Each attribute can be annotated
  • A0 optional, A1 mandatory
  • A nested optional, A nested mandatory
  • Attributes can be the base for a group by
    (nesting)
  • (A, B)
  • Example
  • (r/nom1),r/region0, r/offer/menus/menu

16
XAlgebra Overview
  • Datasource.XSource (Path seq, atomic XQuery) ?
    XRelation
  • Transform a source in an XRelation of attributes
    Path sequence
  • XRelation.XRestrict (unary Constraint) ?XRelation
  • select Xtuples satisfying conditions on attribute
    values
  • XRelation.XProject (Path seq) ?XRelation
  • Remove attributes that are not in path sequence
  • XRelation.XJoin (XRelation, binary Constraint) ?
    XRelation
  • join of two XRelations on attribute values
  • XRelation.XFusion (Path seq) ? XRelation
  • Remove attributes and merge each XTuple trees in
    one of given schema
  • XRelation.XReconstruct (Path seq) ? XML
  • Extract XML documents of given schema from the
    XRelation

17
Implémentation des algorithmes
  • XSélection
  • Par accès à index
  • Intérêt d'indexer tous les mots
  • Intersection et union des adresses selon critères
  • Filtrage final pour vérifier
  • XJointure
  • Par accès aux index
  • Par produit cartésien
  • Par tri-fusion
  • Par hachage
  • Intérêt du pipline

18
3. Techniques de Transformation
  • Notion de modèle darbre (Tree Pattern)
  • Jagadish VLDB 2002
  • Principe des modèles darbres généralisés (GTP)
  • Utilisation des GTP pour XQuery
  • Optimisation performances

19
TPQ (Tree Pattern Query)
  • TPQ arbre modélisant une requête.
  • Il est destiné à être  mappé  sur
    larborescence du document XML cible

a
ancêtre
e
Arbre T
c
b
Arbre T2
f
parent
d
g
20
GTP (Generalized Tree Pattern)
  • Le GTP ajoute au TPQ des arcs en pointillés
    symbolisant des relations optionnelles
  • GTP G(T,F) T arbre Fformule
  • Chaque nÅ“ud de larbre T est labellisé par une
    variable et possède un numéro de groupe.
  • F est une formule booléenne vérifiant les
    prédicats applicables aux nœuds.
  • Un ensemble de nÅ“uds forment un groupe sils sont
    reliés entre eux par des liens non optionnels.

21
GTP - Exemple
FOR p IN document(auction.xml)//person, l IN
p/profile WHERE l/age gt 25 AND p//state !
MI RETURN ltresultgt p//watches/watch
l/interest lt/resultgt
p.tag person s.tag state l.tag
profile i.tag interest w.tag watches
t.tag watch g.tag age g.content gt 25
s.content ! MI
Relation optionnelle
Numéro de groupe (par convention le groupe 0
inclut lélément root)
22
Pattern Match
  • Un  Pattern Match  de larbre G dans une
    collection darbres C est un sous-arbre h partiel
  • h G ? C tel que
  • h contient au moins le groupe 0 de G.
  • h préserve la structure relationnel de G.
  • h vérifie la formule booléenne F de G.

23
Pattern match exemple
On mappe le GTP sur larborescence XML
p
(0)
XML
1
s
(0)
l
w
people
(1)
(0)
g
t
i
(2)
11
person
2
(0)
(1)
person
GTP
9
6
3
15
12
address
watches
profile
address
profile
8
7
5
4
10
13
14
17
16
watch
watch
state
age
interest
city
city
state
age
30
s2
28
s1
Résultat H1 p-gt2, s-gt4, l-gt9, g-gt10,
w-gt6, t-gt7
24
GTP Universel
  • Il permet de modéliser les requêtes contenant le
    quantificateur  EVERY  dans la clause  WHERE 
  • Un GTP universel est un GTP G(T, F) tel que
    plusieurs arcs soient étiquetés EVERY
  • Un arc peut être étiqueté EVERY seulement sil
    pointe sur un nœud atteignable par des arcs non
    optionnels depuis le nœud racine

25
GTP Universel Exemple
FOR o IN document(auction.xml) WHERE EVERY b
in o/bidder SATISFIES b/increasegt100 RETURN
ltresultgt o lt/resultgt
F_L pc(o, b) b.tag bidder F_R pc(b,
i) i.tag increase i.content gt100
b F_L ? i (F_R)
26
GTP Requête imbriquée
FOR p IN document(auction.xml)//person LET a
FOR t IN document(auction.xml)//closed_auct
ion WHERE p/_at_id t/buyer/_at_person RETURN
ltitemgt FOR t2
IN document(auction.xml)//europe/item
WHERE t/itemref/_at_item
t2/_at_id RETURN
t2/name lt/itemgt WHERE
p//age gt 25 RETURN ltperson name
p/name/text()gt a lt/persongt
? Récupère le nom et les items achetés en europe,
par toutes les personnes agées de plus de 25 ans.
27
GTP Requête imbriquée (2)
p.tag person g.tag age n1.tag
n2.tagname b.tag buyer t.tag
closed_auction i.tag itemref t2.tag
item g.content gt 25 Join Condition p.idb.
person i.itemt2.id
28
Transformation XQuery en GTP
  • XQuery FLWR
  • Une expression FLWR
  • ForClause FOR fv1 IN E1, , fvn IN En.
  • (LetClause LET lv1 E1, , lvn En.)
  • WhereClause WHERE (E1, , En).
  • ReturnClause RETURN E1 En.
  • Ei FLWR (Requêtes imbriquées) XPATH.

29
Algorithme de transformation
  • Il prend en entrée une expression FLWR et renvoie
    un GTP
  • Il parse au fur et à mesure la requête XQuery en
    utilisant la récursivité afin de gérer les
    expressions FLWR imbriquées dans une clause FOR
    par exemple
  • Le parsing dune expression Xpath entraîne la
    création dun nouveau nœud dans le GTP résultat

30
4. Plan dévaluation
  • La principale motivation derrière les GTP est de
    fournir une base pour une exécution efficace.
  • Pour cela
  • Supprimer les correspondances répétées pour des
    TPQ similaires.
  • Retarder la matérialisation des nÅ“uds autant que
    possible.

31
Algèbre physique
  • Index Scan ISp(S)
  • Sort chaque nÅ“ud satisfaisant le prédicat p en
    utilisant un index pour les arbres S dentrée.
  • Filter Fp(S)
  • Sort seulement les arbres satisfaisant le
    prédicat p des arbres S. Lordre est préservé.
  • Sort Sb(S)
  • Trie la séquence dentrée des arbres S sur la
    base de tri b.
  • Value Join Jp(S1,S2)
  • une comparaison des deux séquences d'arbres
    d'entrées, par le prédicat de jointure p. L'ordre
    de la séquence de sortie est basé sur l'ordre de
    séquence d'entrée gauche de S1.

32
Algèbre physique (2)
  • Structural Join SJr(S1, S2)
  • Les séquences d'arbres S1 et S2 doivent être
    triées en fonction du noeud id. Lopérateur joins
    S1 et S2 basés sur la relation r entre eux (pc ou
    ad)pour chaque paire. La sortie est triée sur S1
    ou S2 si besoin.
  • Group By Gb(S)
  • l'entrée S est triée sur le group by basé sur le
    prédicat b.
  • Merge M(S1,,Sn)
  • Les Sj doivent avoir la même cardinalité k. Pour
    chaque 1ik, joindre l'arbre i avec chaque
    entrée sous une racine artificielle, et produire
    l'arbre. L'ordre est préservé.

33
Traduire le GTP en plan physique
  • Utilisation d'un algorithme spécifique pour
    générer le plan physique à partir du GTP
  • Obtention d'un plan du type

M
F filter IS tag index scan SSJ structural
semi-join SJ strcutural join OSJ outer
structural join S sort M merge
G
G
person, profile
person, profile
S
S
person, profile
person, profile
OSJ
SJ
profile/interest
watches/watch
S
34
Optimisation grâce aux schémas
  • Principe
  • les informations contenues dans le schéma XML
    (.xsd) vont permettrent doptimiser les GTP et
    les plans dexécution physique en résultant

35
Élimination des nœuds  internes 
  • a//b//c ? a//c

a
a
b
c
c
Seulement si le schéma spécifie que tout chemin
de a à c passe par un élément b
36
Deux nœud pour le même élément XML
  • FOR b IN //book
  • WHERE b/title Germinal
  • RETURN ltxgt b/title b/year lt/xgt

b
b
t2
t
y
t
y
Seulement si le schéma spécifie que tout livre ne
possède quun titre !
37
Éliminer les nœuds inutiles
a
a
  • FOR a IN ./ab
  • RETURN a/c

c
b
c
Seulement si le schéma spécifie que tout élément
a possède au moins un sous-élément b !
38
Eliminer un GROUP BY du plan physique
  • RETURN a/sous-element
  • Une clause FOR nécessite un GROUP BY du
    résultat
  • Mais si le schéma spécifie que le sous-élément
    est unique alors ce GROUP BY devient inutile

39
Performances des GTP
  • La méthode dexécution faisant appel aux GTP
    surpasse en rapidité les méthodes de parcours
    classique de larborescence pour lexécution de
    tous les types de requêtes
  • Les auteurs ont effectués ces tests dans
    lenvironement suivant TIMBER native XML
    database, PIII 866MHz, Ms Windows 2000, index sur
    les principaux éléments

40
5. Conclusion
  • Les GTP semblent être actuellement la méthode la
    plus efficace pour XQuery
  • Mode opératoire en 3 étapes

Requête XQuery
Plan physique
GTP
Optimisation par schéma
Résultat
Write a Comment
User Comments (0)
About PowerShow.com