Un modèle de vues pour l’intégration
de sources de données XML :
VIMIXXavier Baril, [email protected] LIRMM – UMR 5506 CNRS/UM2Directrice de thèse : Zohra BellahsèneSoutenance de thèse, le 11 décembre 2003
2
Contexte de nos travaux
BDOO
BDR
HTML XML
XML
XML
1°/ Transformation en XML
Schéma médiateur
XML
2°/ Processus d’intégration
3°/ Interrogation des données
Vue d’ensemble
source mediation application
Architecture DARPA I3 [Widerhold]
3
Introduction Modèle de vues XML Intérêt d’un modèle de vues pour XML
Modèle de vues pour XML Intégration de données VIMIX Mécanisme d’aide Autres contributions Conclusion et perspectives
Plan : Introduction
4
Préliminaire : la notion de vue Objectif : fournir
différentes représentations d’une BD
Vue = triplet : Domaine Schéma Définition (=requête)
Intérêts : Restructuration /
Personnalisation Confidentialité Intégration…
Domaine
source sourcesource
Définition
Schéma
A (codeA, nomA, …)AL(codeA, codeL)L (codeL, titreL, …)
Create view LivresAuteurs as Select nomA as auteur, titreL as livre From A, AL, L Where A.codeA = AL.codeA and AL.codeL = L.codeL
LivresAuteurs(auteur, livre)
Exemple de vue SQL
Introduction >> Vues
5
XML et les Bases de Données Standard W3C - représentation et échange de
données Langage de balisage Séparation :
Structure (balises des éléments, noms des attributs)
Contenu (données textuelles) Présentation (feuilles de style – XSL)
Flexibilité permettant de représenter des données semistructurées : Structure irrégulière Structure auto décrite
Introduction >> XML [ISI, 2001]
6
Intérêts d’un modèle de vues pour XML
[Abiteboul, PODS, 1999] De nombreuses sources de données
disponibles Web XML Applications qui exportent leurs données en XML
Comme dans un SGBD classique : restructuration…
Dans le contexte des données semistructurées :Ajout de structure Présentation des données (XSLT) Optimisation de requêtes Développement d’applications
Introduction >> Vues / XML
7
Introduction Modèle de vues pour XML
Principes Modèle de données Spécification de vue
Intégration de données VIMIX Mécanisme d’aide Autres contributions Conclusion et perspectives
Plan : Modèle de vues
8
Principes du modèle Fondements
Un modèle de données - graphe Un langage de requêtes - pattern-matching
Propriétés Fermeture du langage : XML XML Restructuration : nouveaux éléments
Union Jointure Elimination des redondances Niveaux de regroupement, fonctions d’agrégation
Inférence de schéma : Vue DTD
Modèle de vues >> Principes [OOIS, 2000]
9
Un modèle de données pour XML
Caractéristiques Notion d’ordre Partage d’éléments
Graphe de données Trois types de nœuds
Element Attribut Text
Deux types d’arcs Composition Reference
Données textuelles (pas XML-Schema)
<bibliographie> <auteur id=‘xb’> <nom>Baril</nom> <prenom>Xavier</prenom> … </auteur> … <publication auteurs=‘xb zb’> <titre>…</titre> … </publication> …</bibliographie>
Modèle de vues >> Modèle de données
attribut
text
element
…
xb Baril
…
xb zb …
…
bibliographie
auteur auteur publication
titreauteursid nom prenom
Xavier
10
Opérations sur le graphe de données
Test isAttribute() isElement() isText()
Manipulation de chaînes text() r-text()
Navigation children() descendants() children-comp() descendants-comp()
Modèle de vues >> Modèle de données >> Opérations
…
xb Baril
…
xb zb …
…
bibliographie
auteur auteur publication
titreauteursid nom prenom
Xavier
text() = ‘’
r-text() = ‘xb Baril Xavier’
11
Repose sur un langage de requête proche de XML-QL
Spécification d’une vue
source
XML
source
XML
1 - Spécificationde Motifs
2 - Restructurations3 - Spécification
du résultat
Modèle de vues >> Spécification
vue
XML• Création de nouveaux éléments
• Regroupement
• Agrégation
DTD
• Union
• Jointure
• Pattern-matching
• Données des sources à extraire
12
Introduction Modèle de vues pour XML Intégration de données
GAV et LAV Apports d’XML Quelques systèmes Notre proposition : VIMIX
VIMIX Mécanisme d’aide Autres contributions Conclusion et perspectives
Plan : Intégration
13
source sourcesource
Schéma médiateur(vue unifiée des sources)
?
Système d’intégration de données
Objectif : fournir une vue unifiée
de données provenant de sources :
multiples autonomes hétérogènes
hétérogénéité structurelle
hétérogénéité sémantique structurées ou
semistructurées
Processus d’intégrationGAV – Global as ViewLAV – Local as View
Intégration
14
Approche GAV (Global As View)
Schéma médiateur défini comme un ensemble de vues sur les sources
Film(titre, annee, genre)Joue(titre, nom)
Movie(mid, title, year, type)Plays(mid, actor)
Intégration >> GAV
S1 S2
Comedie(titre, annee)Acteurs(nom, titre)Schéma mediateur
est définicomme
Comedie(x,y) :- Film(x,y,’comedie’) Movie(-,x,y,’comedy’)
Acteurs(x) :- Joue(y,x) Film(y,-,’comedie) Plays(y,x) Movie(y,-,-,’comedy’)
15
Approche LAV (Local As View) Schéma médiateur défini à priori. Les
sources sont définies comme des vues sur le schéma médiateur.
Intégration >> LAV
Film(titre, annee, genre)Joue(titre, nom)
Movie(mid, title, year, type)Plays(mid, actor)S1 S2
Comedie(titre, annee, id)Acteur(nom, titre)Schéma mediateur
Film(x,y,z) :- Comedie(x,y,null) z=’comedie’Movie(x,y,z,w) :- Comedie(y,z,x) w=’comedy’Joue(x,y) :- Comedie(x,-,-) Acteurs(y,x)Plays(x,y) :- Comedie(z,-,x) Acteurs(y,z)
est définicomme
16
Comparaison GAV/LAV
Intégration >> Comparaion GAV/LAV
GAV LAV
Ajout d’une nouvelle source
Modification des vues qui définissent le schéma médiateur
Ajout d’une nouvelle vue
Traitement d’une requête
Réécriture facile en utilisant la définition des vues
Mécanisme de réécriture plus complexe
17
Apports d’ XML pour l’intégration
Permet de représenter la plupart des concepts des modèles de données connus Modèle hiérarchique : structure arborescente Modèle relationnel
Relation Element XML Attribut Attribut CDATA Clé primaire / Clé étrangère Attribut ID / IDREF(S),
hyperliens
Plus récemment : XML Schéma Typage des données élémentaires Types complexes
Standard accepté et répandu
Intégration >> XML
18
Systèmes d’intégration XML Beaucoup de travaux ces dernières années
Xylème Entrepôt de données XML Pas de restructuration des données stockées
MIX (langage de vues XMAS) Approche « virtuelle »
YAT Optimisation de requêtes
Positionnement de nos travaux Langage de définition de vues
Regroupement Opérations d’agrégation
Stockage des vues
Intégration >> Quelques systèmes
19
Construction de vues VIMIX
XML
XML
XML
SP
SP
SP
SP
U
J
U
V1
V2
SourcesGraphe de mappings
Schéma médiateur
Spécification des données à extraire
Restructurations :Union et jointure
Spécification des vues
Intégration >> VIMIX
20
Introduction Modèle de vues pour XML Intégration de données VIMIX
Motif sur une source Union Jointure Résultat d’une vue
Mécanisme d’aide Autres contributions Conclusion et perspectives
Plan : VIMIX
21
Données des sources à extraire Motif sur une source
Un nom (identifiant) L’adresse de la source Un axe de recherche
décrivant la forme à rechercher
[Conditions de filtrage] Pattern-matching
Décrire une forme Fonction de navigation Description du nœud
Définir des variables
children
Exp : auteurType: element
children
Exp: nomType: elementBindto: nom
Exp: prenomType: elementBindto: prenom
Nom et prénom des auteurs
Nœud contextuel
Nœuds candidats
Nœuds résultat Nœuds contextuels
…
VIMIX >> Motifs sur les sources
22
Représentation logique Motif table relationnelle
Variables du motif Colonnes Instanciation des données de la source
Lignes
…
nom prenom
<nom>Baril</nom> <prenom>Xavier</prenom>
…
Evaluation du motif « nom et prénom »
Spécification VIMIX >> Motifs sur les sources
…
xb Baril
…
xb zb …
…
bibliographie
auteur auteur publication
titreauteursid nom prenom
Xavier
23
Opération d’union Union de plusieurs
sources Un nom (identifiant) La liste des sources [Conditions de filtrage] [Restrictions
(élimination de doublons)]
Représentation logique : table
Exemple : tous les auteurs F_Auteurs SP_Aut1, SP_Aut2, … Priorité : SP_Aut1,
variable : nom
SP_Aut1(nom, prenom)
SP_Aut2(nom, prenom, age)
F_Auteurs(nom, prenom, age)
…
Spécification VIMIX >> Union
24
Opération de jointure Jointure de deux
sources Un nom (identifiant) Source de gauche Variable de gauche Source de droite Variable de droite
Représentation logique : table
Exemple : auteurs et titres J_Auteurs_Livres F_Auteurs nom SP_livres auteur
F_Auteurs(nom, prenom, age)
SP_Livres(titre, auteur, prix)
J_Auteurs_Livres(nom, prenom, age)
Spécification VIMIX >> Jointure
25
Graphe de mappings
SP
SP
SP
U
J
Graphe de mappings
Spécification VIMIX >> Graphe de mappings
……
prenomnom
…
nom
……
ageprenom
…
nom
……
ageprenom
union
……
…nom livre
…
auteur
jointure
……
…nom livre
…
auteur …
26
Spécification du résultat Description par un
motif Structure du résultat Données du résultat
Source de données Motif sur une source Union Jointure
Restructurations Création de nouveaux
éléments Niveaux de
regroupement Fonctions d’agrégation
Arbre décrivant le motif Nœuds element Nœuds attributs Nœuds expression
Fonction textuelles Conversions de types Fonction d’agrégation
Niveaux de regroupement :group-by
Ordre du résultat :order-by
VIMIX >> Résultat
27
Nœuds attributs
Nœuds expressions
Nœuds éléments
Exemple (spécification)
VIMIX >> Résultat >> Exemple
titre auteur prix
… … …
v_auteur - pour chaque auteur : nom, nombre de livres, prix moyen et titres
auteur
count()
livre
text(titre)avg(float(prix))text(auteur)
Motif
group-by
order-by
source
auteur
auteur
(Motif source / union / jointure)
nom nb-livres prix-moyen
28
Exemple (instance du résultat)
VIMIX >> Résultat >> Exemple
V_auteur
auteur
Dupond Web&Data
livre
Database
livre
2 45
auteur
Durand XML
livre
1 50
nom nb-livres prix-moyen nom nb-livres prix-moyen
titre auteur prix
<title>Web&Data</title>
<title>Database</title>
<titre>XML</titre>
<author>Dupond</author>
<author>Dupond</author>
<auteur>Durand</auteur>
<price>50.00</price>
<price>40.00</price>
<prix>50.00</prix>
29
Introduction Modèle de vues pour XML Intégration de données VIMIX Mécanisme d’aide
Basé sur DTD Basé sur Dataguide
Autres contributions Conclusion et perspectives
Plan : Aide
30
Un mécanisme d’aide Difficulté : construire les motifs
sur les sources(connaître la structure des données sources)
Mécanisme d’aide : proposer tous les nœuds possibles, à partir : d’un nœud source (chemin vers) d’une fonction de recherche
Exemple : on cherche des informations sur les publications
Aide
children
Exp : publicationType: element
children
? …
/publication/Chemin vers nœud source
Fonction de recherche
Comment connaître les nœuds possibles
DTD (si elle existe)Dataguide (extension du concept proposé pour OEM)[Goldman, 1997]
[OOIS, 2001]
31
Aide basée sur la DTD DTD représentée par
un graphe Structure des données Simplification
?, +, * Ordre des éléments Liens de référence
Aide >> DTD
<!ELEMENT bib (…, publication*)>…<!ELEMENT publication (titre, type, annee, …)><!ATTLIST publication id ID auteurs IDREFS>…
/publication/
•Attribut (ID) : id
•Attribut (IDREF) : auteurs
•Element : titre
•Element : annee
•Element : type
•…
publication…
titre typeannee
bib
id auteurs …
32
Aide basée sur un dataguide Résume la structure
Chaque type d’élément Chaque type d’attribut Chaque type de lien de
référence Elimination des données
textuelles
Aide >> Dataguide
Un
e se
ule
fois
résumé
/publication/
•Attribut (IDREF) : auteurs
•Element : titre
•…
…
xb Baril
…
xb zb …
…
bibliographie
auteur auteur publication
titreauteursid nom prenom
Xavier
……
bibliographie
auteur publication
titreauteursid nom prenom
33
Comparaison DTD
Travail en « intention » Disponibilité dépend des sources Liens de référence : type de la cible inconnu
Dataguide Travail en « extension » Construction : nécessite de parcourir les
données de la source Liens de référence : type de la cible connu
Contenus différents
Aide >> Comparaison
34
Introduction Modèle de vues pour XML Intégration de données VIMIX Mécanisme d’aide Autres contributions
Stockage Implémentation : DAWAX
Conclusion et perspectives
Plan : Autres contributions
35
Architecture de stockage SGBD relationnel
Méta modélisation Performance, fiabilité Requêtes SQL
Séparation : Données XML Mappings
Schéma génériqueDonnées XML
Element
Document
Children
Attribute
XmlNode
Descendants
Graphe de mappingsMéta données
sp1 sp2 sp3 sp4 sp5 sp6
u1 j1
j2 f2
Autres contributions >> Stockage [Chapitre Addison Wesley, 2003]
36
Implémentation : DAWAX Data WArehouse for
Xml Java
Parseur SAX Interface Swing Connexion JDBC
SGBD : PosgreSQL
Autres contributions >> DAWAX
37
Introduction Modèle de vues pour XML Intégration de données VIMIX Mécanisme d’aide Autres contributions Conclusion et perspectives
Bilan Stockage Passage à l’échelle
Plan : Conclusion et perspectives
38
Conclusion Un modèle de vues pour XML : VIMIX
Restructuration des données Opérations d’union et de jointure Niveaux de regroupement Fonctions d’agrégation Intégration de données
Un mécanisme d’aide Stockage des vues dans un SGBDR Implémentation de notre approche
(DAWAX)
Bilan
39
Stockage des données Choix des mappings à stocker pour
répondre à des requêtes fréquemment posées Optimiser des coûts contradictoires
Exécution des requêtes Maintenance des données stockées
Pré-calcul de certaines données XML Problème étudié pour le modèle relationnel
(sélection de vues) [CAISE’2003, BDA’2003]
Perspectives >> Stockage des données
40
Passage à l’échelle Intégrer des sources de données à l’échelle
du Web… Des milliers de sources Intégration « manuelle » impossible
Idée : définition de méta motif Ne dépendent pas de la structure des sources Permettent la génération automatique de
motifs… Génération automatique
Technique de fouille de données [EGC’2004] Technique de TALN
Perspectives >> Passage à l’echelle
Questions
42
Question >> Propagation des mises à jour
43
XML
XML
XML
V1
V2
SourcesStockage SGBDR Schéma médiateur
Jeu
de r
equê
tes
Fq. majFq. accès
Question >> Sélection de vues
Graphe de mappings
Schéma générique
Réé
critu
re d
e re
quêt
es
Coû
t d’
extr
actio
n
Fq. construction
Fq. interrogation
Matérialisationde certains nœuds
Système de cache
44
Question >> Architecture