Title: F
1Fédération de données semi-structurées avec XML
Laboratoire PRiSM Université de
Versailles-Saint-Quentin
ltdntt_at_prism.uvsq.frgt
Présentation du Mardi 10 juin 2003
2Plan
- Contexte
- Intégration de données
- Évaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
3Plan
- Contexte
- Intégration de données
- Évaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Contexte Représentation du monde réel
- Données non-régulières (données semi-structurées)
- Représentation (XML) et langage de requêtes
(XQuery)
4Inconvénients des modèles de données classiques
bar nom adresse rue ville telephone boisson
L'Envol NULL LaCépède Paris NULL Maple Kiss, Gin Tonic
Le Frog's 25, Cour Saint Emilion, Paris NULL NULL 0143407071 NULL
L'apparement Café NULL NULL Paris 0148871222, 0148874942 Café, Thé, Chocolat, Margarita, Gin Tonic
- Valeurs nulles
- Attributs multi-valués
- Typages différents
- Difficultés d'extensions
5Données semi-structurées
- ltbargt
- ltnomgt LEnvol lt/nomgt
- ltadressegt
- ltruegt Laceacutepegravede lt/ruegt
- ltvillegt Paris lt/villegt
- lt/adressegt
- ltboissongt Maple Kiss lt/boissongt
- ltboissongt Gin Tonic lt/boissongt
- lt/bargt
- ltbargt
- ltnomgt Le Frogs lt/nomgt
- lttelephonegt 01 43 40 70 71lt/telephonegt
- ltadressegt 25, cour Saint-Emilion
Parislt/adressegt - lt/bargt
- Structure implicite
- définie dans les données elles-mêmes
- Structure irrégulière
- données manquantes
- données multi-valuées
- données de types différents
- Structure arborescente
- Schéma éventuel
- Représentation
- SGML, OEM, XML
6Langage de requête sur XML XQuery
- for var in expr
- let var expr
- where expr
- order-by var
- return expr
7Exemple XQuery
for v in Collection ("")/vols for g in
Collection ("")/guide where v/temps lt 4 and
v/trajet/arrivee g/ville return ltvoyagegt
ltvolgt ltnumgt v/numero lt/numgt
lttrajetgt v/trajet lt/trajetgt lt/volgt
lttemperaturegt g/tpmoy lt/temperaturegt
lthotelsgt for h in Collection
("")/hotels where h/categorie "5"
and v/trajet/arrivee
h/adresse/ville return
lthotelgt ltnomgt h/nom lt/nomgt
ltadressegt h/adresse
lt/adressegt lt/hotelgt
lt/hotelsgt lt/voyagegt
8Plan
- Contexte
- Intégration de données
- Evaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Intégration de données Architecture de
médiation - Sources hétérogènes (adaptateurs)
- Sources distribuées (médiateurs)
9Architecture de médiation
?
SGBD relationnel
SGBD objet
SGBD Semi-Structuré
Application
Fichiers texte
Fichiers texte
Fichiers HTML
Agence de voyage
Chaîne hôtelière
Horaire des vols
Météo
Informations Pays
10Architectures de médiation de données
semi-structurées
- Médiation avec modèle relationnel
- Hermes
- AGORA/LeSelect, XPeranto, SilkRoute
- Médiation avec modèle objet
- DIOM, MOMIS
- IRO-DB, DISCO
- Médiation avec modèle semi-structuré
- GARLIC, TSIMMIS,
- STRUDEL, YAT,
- MIX, Nimble, LiquidData
11Architecture Tout-XML
- Langage de requête XQuery
- Format du résultat XML
- Communication avec les adaptateurs XML/DBC
- Méta-données XML-Schema
- Formules et statistiques de coût XML MathML
- Capacités XML
- Exécution de requêtes XQuery XML
- Evaluation de requêtes XAlgèbre
- Structures internes SAX, DOM, XTuple
- Intégration de données hétérogènes XML,
Relationnel, Web
12Architecture de médiation
Application utilisateur
Métadonnées
Métadonnées
XQuery
XML
Gestionnaire de coûts
Gestionnaire de coûts
Analyseur
Recomposeur
Structure XQuery
XTuple
Générateur de plans dexécution
Gestionnaire de capacités
Gestionnaire de pilotes XML/DBC
Pilote Médiateur
Pilote SGBD-R
Pilote SGBD-SS
Adaptateur
Adaptateur
Adaptateur
SGBD-SS
SGBD-R
Médiateur
13Plan
- Contexte
- Intégration de données
- Evaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Evaluation de requêtes
- Construction d'un plan d'exécution (XAlgèbre)
- Evaluation
14Évaluation de requêtes distribuées
semi-structurées
- Intégration de données
- Analyse de la requête
- Création du plan dexécution
- identification des opérations à réaliser
- localisation des sources
- optimisation
- Évaluation et recomposition des résultats
- Cas des données semi-structurées
- Restructuration
- Objets multi-valués
- Composition de graphes
15Construction du plan dexécution
for v in Collection ("")/vols for g in
Collection ("")/guide where v/temps lt 4 and
v/trajet/arrivee g/ville return ltvoyagegt
ltvolgt ltnumgt v/numero lt/numgt
lttrajetgt v/trajet lt/trajetgt lt/volgt
lttemperaturegt g/tpmoy lt/temperaturegt
lthotelsgt for h in Collection
("")/hotels where
h/categorie "5" and
v/trajet/arrivee h/adresse/ville
return lthotelgt
ltnomgt h/nom lt/nomgt
ltadressegt h/adresse lt/adressegt
lt/hotelgt lt/hotelsgt lt/voyagegt
- Normalisation
- Suppression des affectations (clauses LET )
- Canonisation
- Désimbrication des requêtes imbriquées
- Atomisation
- Séparation des collections
- Identification des sources
- Identification des sources gérant chaque
collection - Création du plan dexécution
- Transformation en un arbre algébrique
- Optimisation du plan dexécution
- Optimisation de larbre algébrique
16Algèbre
- Besoins
- Recherche de chemin
- Filtrage
- Construction XML
- Puissance dinterrogation
- Support pour un typage flexible
- Support pour loptimisation
- Type dalgèbre
- Extension de lalgèbre classique IBM, NIAGARA,
TAX, YAT - Transformation en algèbre relationnelle AGORA
- Evaluation sémantique par boucles ATT
Répond aux mêmes critères que le langage de
requête
17Xtuples motivations
Projection sur le nom et ladresse de chaque
bar.
- Opération directe sur arbres
- Transformation en tableau et opération
relationnelle sur table
- Pb coût de construction du tableau et la
reconstruction de larbre
- Conservation de larbre et peu de navigation
18XTuples définition
- 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
A
R
a/c
f/h/i
f/g
a/b
19Evaluation en flux
- Les documents XML sont remontés sous forme de
flux dévènements (SAX). - Les XTuples sont construits au vol sur les flux.
- Les XOpérateurs (sils ne sont pas bloquants)
traitent les XTuples au fur et à mesure. - Les XOpérateurs N-aire parallélisent les
différents flux de XTuples dentrées.
20Evaluation en flux
ltagt ltbgtx1lt/bgt ltcgt ltdgty1lt/dgt
ltegtz1lt/egt ltfgtt1lt/fgt ltcgt ltdgtu1lt/dgt
ltagt
ltagt ltbgtxlt/bgt ltcgt ltdgtylt/dgt
ltegtzlt/egt ltfgttlt/fgt ltcgt ltdgtult/dgt ltagt
ltagt ltbgtx1lt/bgt ltcgt ltdgty1lt/dgt
ltegtz1lt/egt ltfgtt1lt/fgt ltcgt ltdgtu1lt/dgt
ltagt
XSource
XProject
Requête X sur source S1 références a, a/b et a/c
Projection sur a et a/b
ltagt ltbgtxlt/bgt ltcgt ltdgtylt/dgt
ltegtzlt/egt ltfgttlt/fgt ltcgt ltdgtult/dgt ltagt
ltagt ltbgtx2lt/bgt ltcgt ltdgty2lt/dgt
ltegtz2lt/egt ltfgtt2lt/fgt ltcgt ltdgtult/dgt
ltagt
ltagt ltbgtx2lt/bgt ltcgt ltdgty2lt/dgt
ltegtz2lt/egt ltfgtt2lt/fgt ltcgt ltdgtu2lt/dgt
ltagt
T1
a/b
a
T1
a/b
a
a/c
ltagt ltbgtx3lt/bgt ltcgt ltdgty3lt/dgt
ltegtz3lt/egt ltfgtt3lt/fgt ltcgt ltdgtu3lt/dgt
ltagt
ltagt ltbgtxlt/bgt ltcgt ltdgtylt/dgt
ltegtzlt/egt ltfgttlt/fgt ltcgt ltdgtult/dgt ltagt
ltagt ltbgtx2lt/bgt ltcgt ltdgty2lt/dgt
ltegtz2lt/egt ltfgtt2lt/fgt ltcgt ltdgtu2lt/dgt
ltagt
21 Arbre algébrique
for v in Collection ("")/vols where v/temps lt
4 return ltvoyagegt ltvolgt
ltnumgtv/numlt/numgt lttrajetgtv/trajetlt/tra
jetgt lt/volgt lthotelsgt for h in
Collection ("")/hotels where
h/categorie"5" and
v/trajet/arriveeh/adresse/ville
return lthotelgt
ltnomgth/nomlt/nomgt
ltadressegth/adresselt/adressegt
lt/hotelgt lt/hotelsgt lt/voyagegt
22XOpérateurs
- XSource
- Opérateurs relationnels
- XProjection
- XRestriction
- XJointure
- Opérateurs ensemblistes
- XUnion
- XIntersection
- XDifférence
- Tris
- XOrder-By
- Agrégats
- XMin
- XMax
- XCount
- XReconstruction
23Plan
- Contexte
- Intégration de données
- Évaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Validation
- Prototypes (projets MIROWEB, XML-KM et MUSE)
- Cas d'utilisation (use-case du XQuery Working
Group) - Performance (benchmark TPC-R adapté)
24Evaluation (1/2)
- Temps dexécution en millisecondes en fonction du
nombre de documents résultat sur différentes
étapes - Rapport des temps médiateur et adaptateur
25Evaluation (2/2)
26Plan
- Contexte
- Intégration de données
- Evaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Optimisation
- Evaluation des performances (modèle de coût)
- Réutilisation des résultats (cache sémantique)
- Prise en compte des limitations des sources
27Modèle de coût
- Coût dune architecture de médiation
- Calibration PEGASUS pour données objet IRO-DB
- requêtes types pour calibrer paramètres de la
source - Historique HERMES
- sappuie sur les statistiques des requêtes
précédentes - Défini par les adaptateurs GARLIC
- défini séparément pour chaque adaptateur coût
par défaut - Générique DISCO
- intégrer coût des adaptateurs coût par défaut
hiérarchie de coût - Coût sur données semi-structurées
- Coût sur modèle semi-structuré dans un entrepôt
LORE - Modèle de coût générique adaptation au
semi-structuré - coût des XOpérateurs
- langage de coût en XML
28Langage de communication de coût
- Communication du coût entre l'adaptateur et le
médiateur - Basé sur XML
- Utilise le format mathématique MathML
ma_var2 MA_VAR1 ma_fonction (ES, 36)
- Adapté au semi-structuré
- Profondeur des arbres
- Temps de référencement dun noeud fils
- Nombre de fils moyen par noeuds
29Cache sémantique
Contenance des prédicats
- Garder un historique des prédicats de requêtes
déjà posées. - requête dans le cache local
- requête complémentaire
- actualiser le cache
- Utiliser un SGBD semi-structuré natif comme cache
- PDOM, NatiX, Tamino, ReposiX
- identifiants uniques déléments
date gt 1976
date gt 1966
Contenance des chemins
30Langage de description des capacités
dinterrogation
- ltrulesetgt
- ltrule num"10"gt
- ltpermissiongt allow lt/permissiongt
- ltrelationalopgt scan lt/relationalopgt
- lt/rulegt
- ltrule num"100"gt
- ltpermissiongt allow lt/permissiongt
- ltrelationalopgt select lt/relationalopgt
- ltcollection1gt
- lthotelgtltcategoriegtlt/categoriegtlt/hotelgt
- lt/collection1gt
- ltoperatorgt less lt/operatorgt
- lt/rulegt
- ltrule num"200"gt
- ltpermissiongt deny lt/permissiongt
- ltrelationalopgt select lt/relationalopgt
- lt/rulegt
- ltrule num "300"gt
- ltpermissiongt allow lt/permissiongt
- Sources de capacités dinterrogation différentes
- Adaptateur peut pallier certaines déficiences de
la source - Le médiateur pallie les déficiences de
ladaptateursource
num perm operat coll att comp coll att
10 allow scan
100 allow select hotel categorie less
200 deny select
300 allow project hotel
65535 deny
31Plan
- Contexte
- Intégration de données
- Évaluation de requêtes
- Validation
- Optimisation
- Conclusion et perspectives
- Conclusion et perspectives
- Synthèse Contributions
- Perspectives
32Synthèse contributions
- Architecture Tout-XML
- respecte les standards XML au maximum
- évolutivité et modularité
- XAlgèbre définition et évaluation
- Extension de lalgèbre relationnelle simple
- Phase de compilation Évaluation en flux
- Module doptimisation
- modèle de coût langage dexportation
- cache sémantique en utilisant un SGBD natif XML
- Extensions
- langage dexportation de capacité
- adaptation de TPC-R à un contexte distribué
hétérogène
33Perspectives
- Optimisation des plans dexécution
- trouver des règles déquivalence sur lalgèbre
- générateur de plans dexécution
- implémentation de meilleurs algorithmes pour les
XOpérateurs - requête paramétrée
- indicateurs (hints)
- intégrer la gestion des capacités dans la
construction des plans dexécution - Modules doptimisation
- compression des données échangées
- modèle de coût
- cache sémantique
- indexation des données
- Extensions
- intégration de fonctions externes pour intégrer
des sources multimédia - utilisation du web sémantique
34Questions ?
?
35Annexes
- Exportation plan dexécution
36Publications (1/3)
- Projet MIROWEB
- G. Gardarin, F. Sha, T.-T. Dang-Ngoc, XML-based
Components for Federating Multiple Heterogeneous
Data Sources. ER 1999 506-519 - L. Bouganim, T. Chan-Sine-Ying, T.-T. Dang-Ngoc,
J.-L. Darroux, G. Gardarin, F. Sha, Miro Web
Integrating Multiple Data Sources through
Semistructured Data Types. VLDB 1999 750-753 - T.-T. Dang-Ngoc (Osis/PRiSM), D. Artal (Osis), C.
Campanaro (Osis), P. Kirkham (Osis), H. Laude
(Osis), A. Vuillier (Osis), Integration Plan
(ESPRIT-25208 Deliverable D3-1-2) , 1998 - T.T. Dang-Ngoc (Osis/PRiSM), T. Chan-Sine-Ying
(PRiSM), F. Chéron (Osis), G. Gardarin (PRiSM),
P. Kirkham (Osis), H. Laude (Osis), Browser
Interface Specification (ESPRIT-25208 Deliverable
D6-2-1) , 1998 - T. Chan-Sine-Ying (PRiSM), T.T. Dang-Ngoc
(Osis/PRiSM), D. Florescu (Inria), C. Campanaro
(Osis), P. Kirkham (Osis), Message Manager
Specification (ESPRIT-25208 Deliverable
D5-1-1) , 1998
37Publications (2/3)
- Projet XML-KM
- T.-T. Dang-Ngoc, G. Gardarin, The XML
Mediator. Document technique interne à
e-XMLMedia, 26p. - Projet MUSE
- T.-S. Yeh, T.T. Dang-Ngoc, Repository de
méta-données (RNTL Specification SP-3) , 2001 - G. Gardarin, A. Mensch, T.-T. Dang-Ngoc, L. Smit,
Integrating Heterogeneous Data Sources with XML
and XQuery. DEXA Workshops 2002 839-846
38Publications (3/3)
- En cours de soumission
- T.T. Dang-Ngoc, G. Gardarin Evaluating XQuery
in a full-XML Mediation architecture Soumis à
BDA2003 - T.T. Dang-Ngoc, G. Gardarin Integrating
Heterogeneous Data Sources En cours de
soumission à IASTED 2003 - T.T. Dang-Ngoc, G. Gardarin Architecture de
médiation "Tout-XML". En cours de soumission à
la revue ISI (Integration de systèmes
d'information) - T.T. Dans-Ngoc, H. Kouh, G. Gardarin Semantic
Integration and XML Mediation For Web Information
Search En cours d'écriture pour WIDM2003
39Mise en oeuvre (1/3)
- MIROWEB (médiateur v0) Lab. PRiSM SSII Osis
- Ecriture dun analyseur XML-QL
- Implémentation dun médiateur simple basé sur une
mise à plat des documents OEM - Formation de document XML résultat
- Implémentation dun adaptateur SQLX sur
repository OEM et dun adaptateur SQL sur oracle
avec pour langage commun OEM - Création dun mini-dataguide
- Protocole denvoi de message entre médiateur et
interface client par socket et RMI - Conception dune interface graphique cliente
40Mise en oeuvre (2/3)
- XML-KM (médiateur v1) lab. PRiSM puis éditeur
e-XMLMédia - Conception et implémentation dun médiateur basé
sur des documents OEM utilisant un mécanisme
dassociation ( binding ) sur variable. - Reprise de lanalyseur XML-QL de MIROWEB
- Prise en charge simple de déficience de capacité
de traitement des adaptateurs - Création dune base de méta-données
- Formation de document XML résultat
- Implémentation dun adaptateur SQLX sur
repository OEM et dun adaptateur SQL sur oracle
avec pour langage commun XML - Conception dune première version dinterface
graphique dadministration simple.
41Mise en oeuvre (3/3)
- MUSE (médiateur v2) Lab. PRiSM éditeur
e-XMLMédia - Conception et implémentation dun médiateur basé
sur des documents XML utilisant la XAlgèbra. - Conception et implémentation de la XAlgèbra
- Conception et implémentation dun gestionnaire de
métadonnées utilisant des XML-Schéma et
différents index - Création dun adaptateur XML/DBC pour le
médiateur. - Participation aux spécifications dun repository
natif XML ReposiX et implémentation dun module
dindexation.
42XTuples
Reference Part ( R )
XAttributes
person/lastname
person/address
Tree Part ( T )
person/name
car/color
Tree
person
car
address
name
lastname
name
color
age
Superman
Clark
Kent
street
town
blue
657
Metropolis
42
car
person
color
age
address
name
lastname
name
blue
1
Batman
Bruce
Wayne
street
town
Gotham
17
person
car
age
address
color
name
lastname
4
Lois
Lane
blue
street
town
Metropolis
28
person
car
color
age
address
name
name
blue
13
Spiderman
Parker
street
town
New York
121
43XOpérateurs (1/3)
- XSource
- construction XAttribut
- construction forêt
- ordre de la source
- non-bloquant
a
b
c
XSource
ltSAX/gt
- XProjection
- destruction de colonnes
- destruction de (sous-)arbres
- ordre préservé
- non-bloquant
b
c
a
b
c
XProjection
- XRestriction
- destruction de lignes complète
- ordre préservé
- non bloquant
a
b
c
a
b
c
XRestriction
44XOpérateurs (2/3)
- XUnion
- ordre préservé en mode bloquant, non préservé
sinon - bloquant ou non suivant paramétrage
XUnion
a
b
c
a
b
c
- XJointure
- ajout de colonnes
- ajout/concaténation darbres
- ordre préservé en mode bloquant, non préservé
sinon - bloquant ou non suivant paramétrage
a
b
c
XJointure
d
e
a
b
c
d
e
f
45XOpérateurs (3/3)
- Tri (XSORT-BY)
- déplacement de lignes complètes
- bloquant
a
b
c
a
b
c
Tri
- Fonction dagrégat (Xmin, Xmax, Xcount)
- nouvelle colonne (1 ligne)
- nouveau arbre dun noeud
- bloquant
- XReconstruct
- génération dun flux SAX résultat
- A partir dune requête de reconstruction
a
b
c
XReconstruct
ltSAX/gt
46XProjection
47XJointure
48XProduit
49XNest
50XLive (XML Light Integration Virtual Engine)
XML
USER
GUI
HTML
XQuery
XQuery parser
Presentation
Capability manager
XSL
XQuery internal structure
XPlan generator
XML Native Database
Cost manager
SAX event flow
MEDIATOR
XAlgebra
Indexation
Metadata manager
XPlan optimizer
Flow evaluation
Cache
SAX event flow
XQuery
XML-Schema
Connection manager
XQuery
XQuery
XQuery
XML
XML
XML
SOAP
SOAP
SOAP
SOURCE
Oracle 9i wrapper
Web wrapper
Web wrapper
HTML
GET, POST
GET, POST
oracle XDB
HTML
Oracle 9i
WEB
51Evolution technique XML
- parse XML -gt DOM -gt SAX
- SQLX -gt XML-QL -gt XQuery
- dataguide, DTD -gt XML-Schema
- OEM -gt XML
- socket -gt RMI -gt SOAP
52Use-cases
domaine description numéro de requêtes
1 XMP exemples généraux 1 2 3 4 5 6 7 8 9 10 11 12
2 TREE préservant la hiérarchie 1 2 3 4 5 6
3 SEQ basées sur les séquences 1 2 3 4 5
4 R accès aux données relationnelles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
5 SGML basé sur tests SGML 1 2 3 4 5 6 7 8 9 10
6 STRING recherche de chaîne de caractères 1 2 3 4 5 6
7 NS utilisant les espaces de noms 1 2 3 4 5 6 7 8
8 PARTS récursivité et références externes 1
9 STRONG utilisant des données fortement typées 1 2 3 4 5 6 7 8 9 10 11 12
53Métadonnées (1/2)
54Métadonnées (2/2)
55Bancs dessai (1/2)
M0
(b)
M1
M3
M2
A1
A3
A4
A2
A5
A6
A4
A5
A6
A1
A3
A2
(c)
(a)
56Banc dessai (2/2)
57Exportation du plan dexécution
ltplplangt ltplxrecomposegt
ltplparamgt lthotelgt
ltnamegth/nomlt/namegt
ltadressegth/adresselt/gt lt/hotelgt
lt/plparamgt ltplxrestrictgt
ltplconstraintgt
ltplleftgth/categorylt/gt ...
- en XML...
- pour garder des requêtes compilées
- pour interroger un adaptateur avec un autre (ex.
pour jointure inter-site)
M
W
W
58LAV/GAV
Base de données vue universelle
Schéma fédéré
vue complexe, multi-relation qui transforme les
sources et combine les informations
processeur de requêtes LAV
Profil de la source
Profil de la source
59Compression
- Pour gagner en temps de communication
- Compression par blocs
- Compression par chemins
- ...
ltagt ltbgtb1lt/bgt ltcgt ltdgtd1lt/dgt
lt/cgt lt/agt ltagt ltbgtb2lt/bgt ltcgt
ltdgtd2lt/dgt lt/cgt lt/agt ltagt ltbgtb3lt/bgt
...
ltagt ltbgt b5 lt/bgt ltcgt ltdgt d5 lt/dgt
lt/cgt lt/agt ltagt ltbgt b6 lt/bgt ltcgt ltdgt d6
lt/dgt lt/cgt lt/agt
ltagt ltbgt b3 lt/bgt ltcgt ltdgt d3 lt/dgt
lt/cgt lt/agt ltagt ltbgt b4 lt/bgt ltcgt ltdgt d4
lt/dgt lt/cgt lt/agt
ltagt ltbgt b1 lt/bgt ltcgt ltdgt d1 lt/dgt
lt/cgt lt/agt ltagt ltbgt b2 lt/bgt ltcgt ltdgt d2
lt/dgt lt/cgt lt/agt
1 b1 2 d1 / 1 b2 2 d2 / 1 b3 2 d3
a/b 1 a/c/d 2
...
60Réplication
- Utilisation de deux sources identiques ou
partielles pour aller plus vite - Mises à jour
- Information au générateur de plan dexécution
- Peer-to-peer (information sur les voisins,
répartition, sources tombant en panne) - Pour gérer des sources tombant en panne
61Langages dinterrogation
- Besoins
- Opérateurs standards de requêtes sur bases de
données - Navigation dans les données
- Recherche par motifs
- Interrogation du schéma et des données
- Construction du résultat
- Type de langages
- Extension de langages classiques SGMLQL, HyOQL,
LOREL/OEM-QL - Conçus pour le semi-structuré XML-QL, XQL,
QUILT - Normalisation XPath, XQuery
- XQuery
- FLWRExpr (ForClause LetClause)
WhereClause? "return" Expr - ForClause "for" Variable "in" Expr (","
Variable "in" Expr) - LetClause "let" Variable "" Expr (","
Variable "" Expr) - WhereClause "where" Expr
62Gestion de vues et trigger
- Gestion de vues matérialisée.
- Mise à jour par déclencheurs (trigger) actifs
/passifs - Utilisation de cache pour vues matérialisées sous
la forme dun SGBD XML natif
63Document XML Flux SAX Arbre DOM
startDocument () startElement (personne) startElem
ent (nom) characters (Cover) endElement
(nom) startElement (prenom) characters
(Harry) endElement (prenom) startElement
(adresse) startElement (rue) characters
(Stendhal) endElement (rue) startElement
(ville) characters (Paris) endElement
(ville) endElement (adresse) endElement
(personne) endDocument ()
ltpersonnegt ltnomgt Cover lt/nomgt ltprenomgt
Harry lt/prenomgt ltadressegt ltruegt
Stendhal lt/ruegt ltvillegt Paris
lt/villegt lt/adressegt lt/personnegt
64Intégration du cache
Evaluateur du médiateur
id3 id4 id8
Base dhisto- rique
id2 id9
id2 id10
CACHE
id3
Adaptateur
id4
Entrepôt natif de données semi- struc- turées
Source
Mémoire secondaire
65Modèle de coût pour médiation de données
semi-structurées (1/2)
- Modèle de coût générique adaptation au
semi-structuré - Intégration du modèle de coût communiqué par les
adaptateurs - Modèle de coûts suivant des formules et
statistiques communiquées - modèle de coût par défaut
- hiérarchie des coûts
- Modèle de coût au niveau du médiateur
- Formule de coût des XOpérateurs
- coût dun opérateur XSourcecoût coût_source
communication construction_XTuple
66Coût des Xopérateurs (2/2)
- coût dun opérateur autre que XSourcecoût
coûts_fils coût_opoù coûts_fils ? max
(coût_filsi), ?(coût_filsi)suivant le degré de
parallélisme - Due à la structure des XTuples, le coût dun
XOpérateur est celui de lopérateur relationnel
plus un éventuel coût de manipulation sur les
arbres - Exécution d'un XOpérateur
- phase de pré-compilation (effectuée une seule
fois) - phase d'exécution (effectuée pour chaque XTuple)
67Bibliographie (1/2)
- Données semi-structurées
- Abiteboul1997 S. Abiteboul. Querying
Semistructured Data. In proc of the 6th Intl.
Conf. on Database Theory, 1997 - Architecture de médiation
- Wierderhold1992 G. Wiederhold. Mediator in the
Architecture of Future Information System.
Computer, 25 (3), 1992 - Algèbre XML
- Beech et al.1999 D. Beech, A. Malhotra, et M.
Rys. A Formal Data Model and Algebra for XML.
1999. - McHugh et Widom1999 J. McHugh, S. Abiteboul, R.
Goldman, D. Quass, et J. Widom. LORE A Database
Management System for Semistructured Data. SIGMOD
Record, 26(3)54-66, 1997. - Fernandez et al.2001 M. Fernandez, J. Simeon,
et P. Walder. A Semi-Monad for Semi-structured
Data. In International Conference on Database
Theory, Janvier 2001.
68Bibliographie (2/2)
- Modèles de coût
- calibration Du1992 W. Du, R. Krishnamurthy, et
M.-C. Shan. Query optimization in a heterogeneous
DBMS. In proc. VLDB, 1992. - historique Adali1996 S. Adali, K. Candan, et Y.
Papakonstantinou. Query Caching and Optimization
in Distributed Mediator Systems. In ACM SIGMOD,
1996. - par adaptateur Haas1997 L.M. Haas, D. Kossmann,
E.L. Wimmers, et J. Yang. Optimizing Queries
Across Diverse DataSources. In VLDB, 1997. - générique Naacke1998 H. Naacke, G. Gardarin, et
A. Tomasic. Leveraging Mediator Cost Models with
Heterogeneous Data Sources. In ICDE, 1998. - semi-structuré Widom1999 J. McHugh et J. Widom.
Query Optimization for XML. In proc. VLDB, 1999. - Caches sémantique
- Adali1996 S. Adali, K. Candan, et Y.
Papakonstantinou. Query Caching and Optimization
in Distributed Mediator Systems. In ACM SIGMOD,
1996.
69Transparents supprimés
70Cas dutilisation et bancs dessai
- Prototype
- projet ESPRIT MIROWEB
- projet ESPRIT XML-KM
- projet RNTL MUSE
- Tous ont inclus le médiateur sous différentes
versions. - Cas dutilisation
- Parmi les cas dutilisation proposés par le W3C,
tout ceux spécifiques à lorientation actuelle du
médiateur sont évalués correctement (requêtes sur
SGBD relationnels, médiation de différentes
sources) - Bancs dessai
- Adaptation de TPC-R à un modèle distribué et
hétérogène dont semi-structuré - Premières mesures de performances encourageantes
version 0 XML-QL
version 1 XML-QL
version 2 XQuery
71Modèle de coût
- Coût dune architecture de médiation
- Calibration PEGASUS
- requêtes types pour calibrer paramètres de la
source - affinée avec échantillonnage
- pour données objets IRO-DB
- Historique HERMES
- sappuie sur les statistiques des requêtes
précédentes - Défini par les adaptateurs GARLIC
- modèle de coût défini séparément pour chaque
adaptateur et coût par défaut pour coût manquant
dun adaptateur - Générique DISCO
- intégrer modèle de coût des adaptateurs
hiérarchie de coût et coût par défaut pour coût
manquant dun adaptateur - Coût sur données semi-structurées
- Coût sur modèle semi-structuré dans un entrepôt
LORE
72Cache sémantique
- Garder un historique des prédicats de requêtes
déjà posées. - requête dans le cache local
- requête complémentaire
- actualiser le cache
- Utiliser un SGBD semi-structuré natif comme cache
- PDOM, NatiX, Tamino, ReposiX
- identifiants unique délément
date gt 1966 and date lt 1981
cache R source Ø
date gt 1976 and date lt 1980
cache R source R Rc
date gt 1977 and date lt 2000
cache Ø source R
date gt 2002
73Prise en compte des capacités dinterrogation des
sources
- Source de capacité dinterrogation différentes
- Ex. SGBD-R requête complexes, mises à jours,
etc. - Ex. Page web ou moteur de recherche possibilité
dinterrogation limitée (formulaire) - Adaptateur peut pallier certaines déficiences de
la source - complexe pour les développeurs dadaptateurs
- Le médiateur pallie les déficiences de
ladaptateursource - prise en compte dans la création du plan
dexécution - prise en compte dans le calcul du modèle de coût
et le choix du plan optimal
74Langage de description des capacités
dinterrogation
- ltrulesetgt
- ltrule num"10"gt
- ltpermissiongt allow lt/permissiongt
- ltrelationalopgt scan lt/relationalopgt
- lt/rulegt
- ltrule num"100"gt
- ltpermissiongt allow lt/permissiongt
- ltrelationalopgt select lt/relationalopgt
- ltcollection1gt
- lthotelgtltcategoriegtlt/categoriegtlt/hotelgt
- lt/collection1gt
- ltoperatorgt less lt/operatorgt
- lt/rulegt
- ltrule num"200"gt
- ltpermissiongt deny lt/permissiongt
- ltrelationalopgt select lt/relationalopgt
- lt/rulegt
- ltrule num "300"gt
- ltpermissiongt allow lt/permissiongt
- Basé sur XML
- Règles ordonnées
- Permissions par défaut autorisation ou
interdiction
num perm operat coll att comp coll att
10 allow scan
100 allow select hotel categorie less
200 deny select
300 allow project hotel
65535 deny
75Xtuples motivations
Projection sur les enseignes des établissements
gérés par chaque tenancier.
- Opération directe sur arbres
- Transformation en tableau etopération
relationnelle surtable
- Pb coût de construction du tableau et la
reconstruction de larbre
- Référencement dans un tableauet opération
relationnelle surtable ET évaluation en flux
- Conservation de larbre et peu de navigation