Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parOlympe Zimmermann Modifié depuis plus de 10 années
1
Relation de subsumption entre schémas de types Données semi-structurées et typage de données
2
Au sommaire… Introduction 1. Données semi-structurées 2. Modéliser des données semi-structurées 3. Subsumption entre schémas Conclusion Bibliographie
3
Introduction Le Web : une base de données géante non structurée Comment concevoir un SGBD adapté au Web ? Plus généralement : comment mutualiser des informations homogènes à partir de sources de données hétérogènes ? Les SGBD standards ne supportent pas lhétérogénéité… Il faut faire appel à des modèles plus flexibles qui sadaptent à la forme des données plutôt que de limposer.
4
1. Données semi-structurées Quelques définitions Quelques propriétés Quelques enjeux Et quelques problèmes !
5
Quelques définitions Première définition : toute forme de données nétant ni une base de données ni de la donnée brute… => champ de définition large Deuxième définition : toute forme de données possédant une structure implicite, non rattachée à un schéma => données auto-descriptives Exemples : => page Web => texte => document XML
6
Quelques propriétés Propriétés des données : => données auto-descriptives => données hétérogènes Propriétés de la structure : => structure implicite => structure irrégulière => peu de contraintes Confusion entre données et structure Pas de connaissances a priori de la structure
7
Quelques enjeux Flexibilité de léchange de données Intégration de données Gestion de lhétérogénéité Système qui sadapte aux données et non pas le contraire Augmentation des possibilités de requêtage Définir des schémas de données Correspondance entre schémas => subsumption
8
Quelques problèmes Les SGBD standard ne sont pas adaptés => ne supportent pas lhétérogénéité => niveau de contrainte trop élevé => structure explicite et régulière => connaissance du schéma obligatoire Comment modéliser les données semi-structurées ?
9
2. Modéliser des données semi-structurées Modèle de données Modèle OEM Schéma de types Assignation de schémas
10
Modèle de données Graphe étiqueté, orienté, avec un nœud racine => arcs orientés et étiquetés => un nœud racine unique => presque un arbre Exemple : description des personnages de la bande dessinée Astérix
11
personnage nom origine descriptionnom origine descriptionnom origine description cheveuxtaille cheveux taille poids ami &1231&1232&1233 &11 &1 &12&13 &111&112&113&121&122&123&131&132&133 &1131&1132 BDAsterix jaunes ObelixCesarGaule Romemince petitbas de poitrine roux à tresses grand Asterix Figure 2 : graphe OEM
12
Modèle OEM OEM : Object Exchange Model => Tsimmis Project de Stanford Modèle minimaliste permettant de représenter un grand nombre de formes de données, dont les BD standard Nœuds = objets avec oid => objets atomiques vs objets complexes => o. atomiques : int, string, … = nœuds-feuilles => o. complexes : {(étiquette,oid)} = nœuds-intermédiaires
13
Schéma de données (1/2) Modèle simplifié => nœud racine unique => arcs orientés => nœuds identifiés (oid) et étiquetés (sauf la racine) => nœuds-références étiquetés avec « & »
14
O1 := personnage O11 := nom O12 := origine O13 := description O111 := «Astérix»O121 := «Gaule»O131 := cheveuxO132 := taille O1311 := «jaunes»O1312 := «petit» Figure 2 : Schéma de données O14 := & O2 := «ami»
15
Schéma de données (2/2) O ensemble infini doid et L ensemble détiquettes Une b.d. est une structure D= 1. O D O 2. label D est un mapping de O D dans L 3. children D est un mapping de O D { } dans i 0 O D i ; si label D (o)=&, alors children D (o) O D 1 La structure obtenue en ne considérant pas les nœuds-références est un arbre Retour à lexemple
16
Schéma de types (1/2) Exploiter la structure avec un système de typage des données => notion dobjets typés Utilisation dun schéma de types pour décrire ce système => prédicats sur les étiquettes => expressions régulières sur les descendants
17
T1 := personnage T11 := nom T12 := origine T13 := description T111 := StringO121 := «Gaule»T131 := cheveuxT132 := taille T1311 := StringT1312 := String Figure 3 : Schéma de types T14 := & T2 := «ami» * ?
18
Schéma de types (2/2) T ensemble infini de noms de types, P ensemble de prédicats sur les étiquettes fermé pour la disjonction (ou), la conjonction (et) et le complémentaire (not()). L(R) langage défini par les expressions régulières sur T =>t, &t, (t 1,t 2 ), (t 1 |t 2 ), t 1 *, t 1 ?, etc. Un schéma de types est une structure S= : 1. T S sous-ensemble fini de T 2. predicate S mapping de T S dans P, avec soit predicate S (t)={&} soit & predicate S (t) 3. regexp S mapping de T S { } sur L(R) S, avec si predicate S (t)={&}, regexp S (t) est de la forme t 1 |t 2 |…|t n Retour à lexemple
19
Assignation de schéma (1/2) Soient D une base de données et S un schéma de types D est de type S ssi il existe une fonction dassignation f : O D { } T S { } tq : 1. f( )= 2. Pour o O D, predicate S (f(o))=label D (o) 3. Pour o O D { }, avec children D (o)=[o 1,..,o n ], f(o 1 ),..,f(o n ) L(regexp S (f(o))) Retour aux exemples
20
O23 := description O231 := cheveux O232 := taille O233 := poids O2331 := «bas de poitrine» O2321 := «grand»O2321 := «roux» T23 := description T231 := cheveux T232 := taille T233 := poids T2321 := String T2331 := String ? label(O23) = description children(023) = [O231,O232,O233] predicate(T23) = description regexp(T23) = T231,T232,T233? predicate(f(O23))=label(O23)=description f(O231), f(O232), f(O233) L(regexp(T23)) Figure 4 : Assignation de schéma
21
Assignation de schéma (2/2) Première remarque : Il existe un schéma minimal Any assignable à toute base de données. Seconde remarque : Pour chaque base de données S, il existe un schéma S ne typant que cette base, noté S [D].
22
3. Subsumption entre schémas Le problème Subsumption de schémas Propriétés Utilisation de la subsumption
23
Le problème Comment intégrer des données traitant des informations homogènes provenant de sources hétérogènes ? Quelle correspondance entre 2 schémas de types ? Exemple
24
PhysicalDescr := description hair := cheveux height := taille heightDesc := StringhairDescr := String T23 := description T231 := cheveux T232 := taille T233 := poids T2321 := String T2331 := String ? Figure 5 : Relation entre schémas Schema S
25
Subsumption de schémas Définition intuitive: relation de correspondance entre les types de deux schémas, mapping entre deux schémas. => assignation de types entre schémas Soient S et S deux schémas de types, S subsume S sil existe une fonction de mapping g:T S { } T S { } tq : 1. g(t)= ssi t= 2. t T S, predicate S (t) predicate S (g(t)) 3. t T S { },g(L(regexpS(t))) L(regexpS(g(t))) Si S subsume S et S subsume S alors on a une relation déquivalence entre S et S Exemple
26
PhysicalDescr := description hair := cheveux height := taille heightDesc := StringhairDescr := String T23 := description T231 := cheveux T232 := taille T233 := poids T2321 := String T2331 := String ? Figure 6 : Subsumption entre schémas Schema S S subsume S avec la fonction g tq : g(PhysicalDescr)=description g(hair)=T231 g(hairDescr)=T2321 g(height)=T232 g(heightDescr)=T2321 Par ex, on a : predicate S (PhysicalDescr)=predicate S (T23) =description L=regexp S (PhysicalDescr)=cheveux,taille L=regexp S (description)=cheveux,taille,poids? et L L
27
Propriétés de la subsumption S [D] subsume tout schéma assignable à D La relation de subsumption est transitive Si S est assignable à D et S subsume S alors S est assignable a D => utile pour la validation de schémas Avantages : => travail sur des schémas (tailles pas daccès direct aux données
28
Utilisation de la subsumption Idée forte : accéder aux données par le schéma le plus adéquat Système de requêtes : pour une requête donnée, indépendante dun schéma, trouver le schéma permettant dobtenir le résultat borne inférieure pour le relation de susbsumption : pour deux schémas, il existe un schéma maximal subsumant les deux autres. => optimiser les informations de typage communes => détermination du bon schéma Systèmes de requêtes, systèmes de stockage, intégration…
29
Conclusion Notion théorique que lon retrouve dans de nombreux travaux sur les données semi-structurées : XML Schema, YATL, etc. Le typage de données est dune grande complexité => la subsumption permet de travailler sur des schémas plutôt que sur les bases de données directement Améliorer les systèmes de requêtes est lune des principales motivations
30
Bibliographie Subsumption for XML types - Gabriel M Kuper & Jérôme Siméon (2001) Semi-structured data - Peter Buneman (1997) Querying semi-structured data - Serge Abiteboul (1997) Adding structure to unstructured data - Peter Buneman, Susan Davidson, Duan Fernandez, Dan suciu (1997)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.