450 likes | 591 Views
Un modèle de vues pour l’intégration de sources de données XML : VIMIX. Xavier Baril, baril@lirmm.fr LIRMM – UMR 5506 CNRS/UM2 Directrice de thèse : Zohra Bellahsène Soutenance de thèse, le 11 décembre 2003. 1°/ Transformation en XML. 3°/ Interrogation des données.
E N D
Un modèle de vues pour l’intégration de sources de données XML : VIMIX Xavier Baril, baril@lirmm.fr LIRMM – UMR 5506 CNRS/UM2 Directrice de thèse : Zohra Bellahsène Soutenance de thèse, le 11 décembre 2003
1°/ Transformation en XML 3°/ Interrogation des données 2°/ Processus d’intégration BDR XML Schéma médiateur XML BDOO XML HTML XML source mediation application Architecture DARPA I3 [Widerhold] Vue d’ensemble Contexte de nos travaux
Plan : Introduction • 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
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… Exemple de vue SQL LivresAuteurs(auteur, livre) Schéma 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 Définition Domaine A (codeA, nomA, …) AL(codeA, codeL) L (codeL, titreL, …) source source source Introduction >> Vues Préliminaire : la notion de vue
[ISI, 2001] Introduction >> XML 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 >> Vues / XML 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
Plan : Modèle de vues • 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
[OOIS, 2000] Modèle de vues >> Principes 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
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 publication auteur … … … id nom prenom auteurs titre xb Baril … Xavier xb zb Modèle de vues >> Modèle de données Un modèle de données pour XML <bibliographie> <auteur id=‘xb’> <nom>Baril</nom> <prenom>Xavier</prenom> … </auteur> … <publication auteurs=‘xb zb’> <titre>…</titre> … </publication> … </bibliographie> element attribut text
Test isAttribute() isElement() isText() Manipulation de chaînes text() r-text() Navigation children() descendants() children-comp() descendants-comp() bibliographie auteur publication auteur … … … id nom prenom auteurs titre xb Baril … Xavier xb zb Modèle de vues >> Modèle de données >> Opérations Opérations sur le graphe de données text() = ‘’ r-text() = ‘xb Baril Xavier’
Modèle de vues >> Spécification Spécification d’une vue • Repose sur un langage de requête proche de XML-QL DTD source XML vue XML 1 - Spécification de Motifs 2 - Restructurations 3 - Spécification du résultat source XML • Création de nouveaux éléments • Regroupement • Agrégation • Pattern-matching • Données des sources à extraire • Union • Jointure
Plan : Intégration • 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
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 Schéma médiateur (vue unifiée des sources) Processus d’intégration GAV – Global as View LAV – Local as View ? source source source Intégration Système d’intégration de données
Intégration >> GAV Approche GAV (Global As View) • Schéma médiateur défini comme un ensemble de vues sur les sources Comedie(titre, annee) Acteurs(nom, titre) Schéma mediateur 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’) est défini comme Film(titre, annee, genre) Joue(titre, nom) Movie(mid, title, year, type) Plays(mid, actor) S1 S2
Intégration >> LAV 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. 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éfini comme Film(titre, annee, genre) Joue(titre, nom) Movie(mid, title, year, type) Plays(mid, actor) S1 S2
Intégration >> Comparaion GAV/LAV Comparaison GAV/LAV
Intégration >> XML 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 >> Quelques systèmes 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
SP V1 U SP V2 U SP J SP Intégration >> VIMIX Construction de vues VIMIX Spécification des données à extraire Restructurations :Union et jointure Spécification des vues Sources Graphe de mappings Schéma médiateur XML XML XML
Plan : VIMIX • 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
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 : auteur Type: element children Exp: nom Type: element Bindto: nom Exp: prenom Type: element Bindto: prenom VIMIX >> Motifs sur les sources Données des sources à extraire Nœud contextuel Nœuds candidats Nœuds résultat Nœuds contextuels … Nom et prénom des auteurs
bibliographie auteur publication auteur … … … id nom prenom auteurs titre xb Baril … Xavier xb zb Spécification VIMIX >> Motifs sur les sources Représentation logique • Motif table relationnelle • Variables du motif Colonnes • Instanciation des données de la source Lignes Evaluation du motif « nom et prénom » …
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écification VIMIX >> Union Opération d’union SP_Aut1 (nom, prenom) F_Auteurs (nom, prenom, age) SP_Aut2 (nom, prenom, age) …
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 Spécification VIMIX >> Jointure Opération de jointure F_Auteurs (nom, prenom, age) J_Auteurs_Livres (nom, prenom, age) SP_Livres (titre, auteur, prix)
Graphe de mappings SP U SP J nom prenom nom prenom age nom … livre auteur SP … … … … … … … … union jointure nom prenom age livre auteur nom … … … … … … … … Spécification VIMIX >> Graphe de mappings Graphe de mappings
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 Spécification du résultat
Nœuds attributs Nœuds éléments Nœuds expressions VIMIX >> Résultat >> Exemple Exemple (spécification) v_auteur - pour chaque auteur : nom, nombre de livres, prix moyen et titres source (Motif source / union / jointure) Motif auteur livre nom nb-livres prix-moyen text(auteur) count() avg(float(prix)) text(titre) auteur group-by auteur order-by
VIMIX >> Résultat >> Exemple Exemple (instance du résultat) V_auteur auteur auteur nom nb-livres prix-moyen livre livre nom nb-livres prix-moyen livre 1 2 50 45 Web&Data Durand XML Dupond Database
Plan : Aide • 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
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 children Exp : publication Type: element children ? … /publication/ Chemin vers nœud source Fonction de recherche [OOIS, 2001] Aide Un mécanisme d’aide • Comment connaître les nœuds possibles • DTD (si elle existe) • Dataguide (extension du concept proposé pour OEM)[Goldman, 1997]
DTD représentée par un graphe Structure des données Simplification ?, +, * Ordre des éléments Liens de référence bib … publication id auteurs … titre annee type Aide >> DTD Aide basée sur la DTD <!ELEMENT bib (…, publication*)> … <!ELEMENT publication (titre, type, annee, …)> <!ATTLIST publication id ID auteurs IDREFS> … • Attribut (ID) : id • Attribut (IDREF) : auteurs • Element : titre • Element : annee • Element : type • … /publication/
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 bibliographie auteur publication auteur … bibliographie … … id nom prenom auteurs titre publication auteur xb Baril … Xavier xb zb … … id nom prenom auteurs titre Aide >> Dataguide Aide basée sur un dataguide Une seule fois résumé • Attribut (IDREF) : auteurs • Element : titre • … /publication/
Aide >> Comparaison 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
Plan : Autres contributions • 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
SGBD relationnel Méta modélisation Performance, fiabilité Requêtes SQL Séparation : Données XML Mappings Schéma générique Données XML Graphe de mappings Méta données Document j2 f2 Children XmlNode Descendants u1 j1 Element Attribute sp1 sp2 sp3 sp4 sp5 sp6 [Chapitre Addison Wesley, 2003] Autres contributions >> Stockage Architecture de stockage
Autres contributions >> DAWAX Implémentation : DAWAX • Data WArehouse for Xml • Java • Parseur SAX • Interface Swing • Connexion JDBC • SGBD : PosgreSQL
Plan : Conclusion et perspectives • 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
Bilan 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)
Perspectives >> Stockage des données 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 >> Passage à l’echelle 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
Question >> Sélection de vues Matérialisation de certains nœuds Fq. interrogation Fq. maj Fq. accès Sources Stockage SGBDR Schéma médiateur XML Graphe de mappings V1 XML V2 Coût d’extraction Réécriture de requêtes Jeu de requêtes Schéma générique XML Système de cache Fq. construction