290 likes | 483 Views
Conception et construction d’entrepôts en XML. Omar Boussaid – Riadh Ben Messaoud – Rémy Choquet – Stéphane Anthoard Laboratoire ERIC, Université Lyon 2 Campus Porte des Alpes, 69676 Bron Cedex Omar.Boussaid@univ-lyon2.fr - rbenmessaoud@ericuniv-lyon2.fr
E N D
Conception et construction d’entrepôts en XML Omar Boussaid – Riadh Ben Messaoud – Rémy Choquet – Stéphane Anthoard Laboratoire ERIC, Université Lyon 2 Campus Porte des Alpes, 69676 Bron Cedex Omar.Boussaid@univ-lyon2.fr - rbenmessaoud@ericuniv-lyon2.fr {remy.choque|stephanea}@gmail.com http://eric.univ-lyon2.fr/ EDA - Versailles, juin 2006
Motivation Données complexes : formats différents, supports différents. Exemple : dossier d’un patient (informations générales sur le patient : age, sexe, etc, + images de scanner, des interrogatoires sous forme d’enregistrements sonores + compte-rendus manuscrits de médecins) Il est alors nécessaire de les structurer et de les homogénéiser. XML représente les données de façon semi-structurée. Sa capacité d’auto-description et sa structure arborescente donne à ce formalisme une grande flexibilité et une puissance suffisante pour décrire des données complexes, hétérogènes et réparties EDA, Versailles 19 juin 2006
Motivation EDA, Versailles 19 juin 2006
Plan Motivation Etat de l’art Notre approche X-Warehousing Formalisation Construction d’un cube XML Implémentation Etude de cas Conclusion et prespectives EDA, Versailles 19 juin 2006
Etat de l’art Baril et Bellahsène (2000) : Dawax, Modèle de vues (View Manager) Pokorny (2001) : XML Stars schema Golfarelli et al. (2001) : Modèle Dimensionnel de Faits ; arbres d’attributs Hümmer et al. (2003) : Xcube Rajugan et al. (2003) : utilisation des packages UML Trujillo et al. (2004) : l’approche orientée objet(OO) Nassis et al. (2004) :approche OO , repository xFacts et Dimensions virtuelles Rusu et al. (2005) : Entrepôts XML Park et al. (2005) : XML-OLAP EDA, Versailles 19 juin 2006
Etat de l’art • Deux approches différentes : • 1°) Stockage physique des documents XML dans des ED. • Les documents XML alimentent alors les ED et XML est considéré comme une technologie efficace supportant des données faiblement structurées et adaptée à l’interopérabilité et à l’échange des données. • 2°) Utilisation du formalisme XML pour concevoir des ED. • Selon les modèles multidimensionnels classiques tels que les schémas en étoile ou en flocons de neige. EDA, Versailles 19 juin 2006
L’approche X-Warehousing Contexte général de notre approche pierre.jouve@eric.univ-lyon2.fr EDA, Versailles 19 juin 2006
Formalisation Définition : Schéma en étoile XML Soit(F,D)un schéma en étoile, où : F est un ensemble de faits ayant m mesure {F.Mq, 1 ≤ q ≤ m}et D = {Ds, 1 ≤ s ≤ r}un ensemble de r dimension où chaqueDscontient un ensemble densattributs {Ds.Ai, 1 ≤ i ≤ ns}. Le Schéma en étoileXML de(F,D)est un schéma XML tel que : – Fdéfinit l’élément racine dans le schéma XML ; – q {1, . . . ,m}, F.Mqdéfinit un attribut XML inclus dans l’élément racine ; – s {1, . . . , r}, Dsest un sous éléments XML de l’élément racine XML. Il y a autant de sous éléments XML que de dimensions liées à l’ensemble des faitsF ; • – s {1, . . . , r} et i {1, . . . , ns}, Ds.Ai définit un attribut XML inclus dans l’élément XML Ds. EDA, Versailles 19 juin 2006
Description d’un cube par un schéma XML <xs:element name="F"> <xs:complexType> <xs:sequence> <xs:element name="D1" type="D1_Type" /> <xs:element name="D2" type="D2_Type" /> <xs:element name="D3" type="D3_Type" /> <xs:element name="D3" type="D3_Type" /> <xs:element name="D4" type="D4_Type" /> </xs:sequence> <xs:attribute name="F.M1" type="xs:integer" /> <xs:attribute name="F.M2" type="xs:integer" /> </xs:complexType> </xs:element> <xs:complexType name="D1_Type"> <xs:attribute name="D1.A1" type="xs:string" /> </xs:complexType> <xs:complexType name="D2_Type"> <xs:attribute name="D2.A1" type="xs:string" /> <xs:attribute name="D2.A2" type="xs:string" /> </xs:complexType> <xs:complexType name="D3_Type"> <xs:attribute name="D3.A1" type="xs:string" /> <xs:attribute name="D3.A2" type="xs:string" /> </xs:complexType> <xs:complexType name="D4_Type"> <xs:attribute name="D4.A1" type="xs:string" /> </xs:complexType> EDA, Versailles 19 juin 2006
Formalisation Définition Dimension Hiérarchisée XML : Soit H = {D1, . . . ,Dt, . . . ,Dl }une dimension hiérarchisée. La dimension hiérarchiséeXML est une partie d’un schéma XML tel que : – D1définit un élément XML ; – t {2, . . . , l },Dt définit un sous élément XML de l’élément XMLDt−1 ; – t {1, . . . , l },chaque attribut dans Dt définit un attribut XML inclus dans l’élément XMLDt. Définition Modèle en flocons de neige XML : Soit (F,H), un modèle en flocons de neige où F est un ensemble de faits ayantmmesures {F.Mq, ≤ q ≤ m} et H = {Hs, ≤ s ≤ r}est un ensemble derhiérarchies indépendantes. Le modèle en flocons de neige XML de (F,H) est un schéma XML tel que : – Fdéfinit l’élément XML racine du schéma XML ; – q {1, . . . ,m}, F.Mqdéfinit un attribut XML inclus dans l’élément racine XML ; – s {1, . . . , r},Hsdéfinit autant de fois des dimensions hiérarchisées XML, comme des sous éléments de l’élément XML racine qu’elle est liée à l’ensemble de faitsF. EDA, Versailles 19 juin 2006
Exemple d’un fait XML <?xml version="1.0" encoding="UTF-8" ?> <Suspicious_region Region_length="287" Number_of_regions="6"> <Patient Patient_age="60" > <Age_class Age_class_name="Between 60 and 69 years old" /> </Patient> <Lesion_type Lesion_type_name="calcification type round_and_regular distribution n/a"> <Lesion_category Lesion_category_name="calcification type round_and_regular" /> </Lesion_type> <Assessment Assessment_code="2" /> <Subtlety Subtlety_code="4" /> <Pathology Pathology_name="benign_without_callback" /> <Date_of_study Date="1998-06-04"> <Day Day_name="June 4, 1998"> <Month Month_name="June, 1998"> <Year Year_name="1998" /> </Month> </Day> </Date_of_study> <Date_of_digitization Date="1998-07-20"> <Day Day_name="July 20, 1998"> <Month Month_name="July, 1998"> <Year Year_name="1998" /> </Month> </Day> </Date_of_digitization> <Digitizer Digitizer_name="lumisys laser" /> <Scanner_image Scanner_file_name="B_3162_1.RIGHT_CC.LJPEG" /> </Suspicious_region> EDA, Versailles 19 juin 2006
Construction des cubes XML MCM : besoins d’analyses Documents XML Algorithmes d’appriement basés sur des opérations de fusion par élagage et de fusion par greffe Notion d’arbre d’attributs(Golfarelli et al. 1998, Golfarelli er Rizzi 1999, Golfarelli et al. 2001 EDA, Versailles 19 juin 2006
Construction des cubes XML Fusion des arbres d’attributs : MCM : besoins d’analyses arbre d’attributs Documents XML arbre d’attributs Schéma XML d’un cube XML • Opérations de fusion des arbres d’attributs • Notion de contenu minimal EDA, Versailles 19 juin 2006
Fusion par élagage (pruning) : • supprimer des parties des 2 arbres. • : sommets communs conservés dans l’arbre fusionné. • : sont élagués avec les sous-arbres associés cercles noirs cercles blancs Fusion par greffe (grafting) : sous-arbres communs n’ayant pas la même structure de relations. - : certains sommets non communs sont éliminés et • : sommets identiques et leurs relations sont maintenus dans l’arbre fusionné. Les descendants d’un sommet éliminé sont conservés dans l’arbre fusionné. cercles blancs cercles noirs Construction des cubes XML • Fusion des arbres d’attributs EDA, Versailles 19 juin 2006
Construction des cubes XML • Contenu minimal d’un document XML Le document XML doit contenir suffisamment d ’information pour répondre aux besoins d’analyse de l’utilisateur : contrôle sur l’arbre d’attributs. L’’utilisateur définit les éléments (mesures, dimension, hiérarchis et leurs attributs) dans le MCM nécessairesou pas (obligatoires ou optionnels) pourses objectifs d’analyse. Le contenu minimal d’un document XML corresponds donc à la partie obligatoire de l’arbre d’attributs associé au MCM. EDA, Versailles 19 juin 2006
Implémentation EDA, Versailles 19 juin 2006
Implémentation Function WriteTreeDeep(document,tree) root=GetRootElement(document) nodeList=GetNodes(tree,root) While Not(end(nodeList)) Graphe.AddVertex(nodeList.name) Call Function ReadTreeDeep(nodeList.name,tree) End While End Function Function ReadTreeDeep(root,tree) nodeList=GetNodes(tree,root) While Not(end(nodeList)) Graphe.AddVertex(nodeList.name) Call Function ReadTreeDeep(nodeList.name,tree) End While End Function - Fonctions recursives WriteTreeDeepet ReadTreeDeeppour manipuler les arbres d’attributs EDA, Versailles 19 juin 2006
Implémentation Function MergeTree(tree1,tree2) tree3=DuplicateTree(tree1) While Not(end(nodeList(tree3))) vertex1=GetVertex(tree3) While Not(end(nodeList(tree2))) vertex2=GetVertex(tree2) If vertex2=vertex1 Then vertex1.arc = 0 End While End While Tree3=WriteTree(tree3) End Function - Fonction MergeTreepour fusionner deux arbres d’attributs EDA, Versailles 19 juin 2006
Etude de cas : Contexte DDSM(Digital Database for Screening Mammography) : une BD complexes(2 604dossiers de patients ; Un volume total de230,9 Go) • Un dossier est composé de : • 1 fichier .ics décrivant en format ASCII, les informations générales d’un dossier de patient. • 4 fichiers images .LJPEG (LOSSLESS JPEG) des radios numérisées. Chaque radio présente uneangle de vuedu sein :Left_CC, Left_MLO, Right_CC, Right_MLO(CC: Cranio-Caudal ; MLO: Medio-Latral Oblique). • Pour chaque radio présentant une ou des zones anormales, est associé un fichier .OVERLAY en format ASCII, décrivant une anomalie du sein. • 1 fichier image .16_PGM regroupant les 4 radios et présentant un aperçu rapide pour la visualisation d’un dossier de patient. EDA, Versailles 19 juin 2006
Etude de cas : Contexte EDA, Versailles 19 juin 2006
Etude de cas : Corpus XML Documents XML (http ://eric.univ-lyon2.fr/rbenmessaoud/ ?page=donnees§ion=3) EDA, Versailles 19 juin 2006
Etude de cas : Modèle Conceptuel des besoins Cas des ”Régions suspectées” EDA, Versailles 19 juin 2006
Étude de cas : arbres d’attributs - Arbre d’attributs associé au MCM des ”Régions suspectes”. - Arbre d’attributs des documents XML en entrée EDA, Versailles 19 juin 2006
Etude de cas : Modèle logique du cube XML .Schéma XML du cube “Régions susupectes” : <?xml version=”1.0” encoding=”UTF-8” ?> <xs:schema xmlns=”http://www.w3schools.com”> <xs:element name=”Suspicious region”> <xs:complexType> <xs:sequence> <xs:element name=”Patient” type=”Patient Type” /> <xs:element name=”LesionType” type=”Lesion Type” /> <xs:element name=”Subtlety” type=”Subtlety Type” /> <xs:element name=”Pathology” type=”Pathology Type” /> <xs:element name=”Dateofstudy” type=”Date Type” /> <xs:element name=”Dateof digitization” type=”Date Type” /> <xs:element name=”Digitizer” type=”Digitizer Type” /> <xs:element name=”Scanner image” type=”Scanner Type” /> </xs:sequence> <xs:attribute name=”Region length” type=”xs:integer” /> <xs:attribute name=”Number of regions” type=”xs:integer” /> </xs:complexType> </xs:element> <xs:complexType name=”Patient Type”> <xs:sequence> <xs:element name=”Age class”> <xs:complexType> <xs:attribute name=”Age class name” type=”xs:string”/> </xs:complexType> </xs:element> </xs:sequence> EDA, Versailles 19 juin 2006
Etude de cas : Modèle logique du cube XML ….. <xs:complexType name=”Lesion Type Type”> <xs:sequence> <xs:element name=”Lesion category”> <xs:complexType> <xs:attribute name=”Lesion category name” type=”xs:string”/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=”Lesion type name” type=”xs:string”/> </xs:complexType> <xs:complexType name=”Subtlety Type”> <xs:attribute name=”Subtlety code” type=”xs:integer”/> </xs:complexType> <xs:complexType name=”Pathology Type”> <xs:attribute name=”Pathology name” type=”xs:string”/> </xs:complexType> <xs:complexType name=”Digitizer Type”> <xs:attribute name=”Digitizer name” type=”xs:string”/> </xs:complexType> <xs:complexType name=”Scanner Type”> <xs:attribute name=”Scanner file name” type=”xs:string”/> </xs:complexType> ….. EDA, Versailles 19 juin 2006
Etude de cas : Modèle logique du cube XML .Schéma XML du cube “Régions susupectes” : <xs:complexType name=”Date Type”> <xs:sequence> <xs:element name=”Day”> <xs:complexType> <xs:sequence> <xs:element name=”Month”> <xs:complexType> <xs:sequence> <xs:element name=”Year”> <xs:complexType> <xs:attribute name=”Year name” type=”xs:integer”/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=”Month name” type=”xs:string”/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=”Day name” type=”xs:string”/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name=”Date” type=”xs:date”/> </xs:complexType> </xs:schema> EDA, Versailles 19 juin 2006
Conclusion et perspectives Conclusion : méthodologie basée sur le formalisme XML pour entreposer des données complexes. • Exprimer un niveau d’abstraction intéressant pour préparer les données à l’analyse. • Alimenter une structure multidimensionnelle à l’aide de documents XML. • Une formalisation des schémas en étoile ou en flocons de neige en XML. ( utilisation des arbre d’attributs, Golfarelli et al., 2001a,b) • Une applicationJavaqui produit un modèle logique et un modèle physique pour un cube composé de documents XML homogènes • Une étudede cas sur les régions suspectes sur des mammographies a montré l’intérêt de notre approche sur des applications réelles EDA, Versailles 19 juin 2006
Conclusion et perspectives Perspectives : Interrogation du cube XML : une extension du langage XQuery est nécessaire pour permettre de réaliser l’opération du Group-by. Mesures non numériques : recours à des opérateurs appropriés. L’exemple de l’opérateur OpAC ( Ben Messaoud et al., 2004), Une étude de performance des requêtes OLAP dans le cadre de cube XML Problème de mise à jour du cube XML lors des changements dans les données sources ou des besoins d’analyse de l’utilisateur Modèle physique du cube XML EDA, Versailles 19 juin 2006