informationsintegration schema mapping 3.1.2006 – 10.1.2006 felix naumann

93
Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

Upload: juliane-schinkel

Post on 05-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

Informationsintegration

Schema Mapping

3.1.2006 – 10.1.2006

Felix Naumann

Page 2: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 2

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation (Transformation)

Schema Matching (Ausblick) Demo

Page 3: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 3

ProblemstellungArchitekturenModellierungOptimierung

10,000 feet

1. Einführung in die Informationsintegration2. Szenarien der Informationsintegration3. Verteilung und Autonomie4. Heterogenität5. Materialisierte und virtuelle Integration6. Klassifikation integrierter Informationssysteme und 5-Schichten

Architektur 7. Mediator/Wrapper-Architektur8. Global-as-View und Lokal-as-View Modellierung9. Global-as-View Anfragebearbeitung 10. SchemaSQL11. Verteilte Anfragebearbeitung12. Dynamische Programmierung in verteilten Datenbanken13. Top-N Anfragen

Page 4: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 4

KonflikteAnfragen

Systeme

Mapping

10,000 feet

1. Schema Mapping2. Schema Matching 3. Containment & Local-as-View Anfragebearbeitung4. Bucket Algorithmus 5. Peer-Data-Management Systeme (PDMS) 6. Informationsqualität7. Duplikaterkennung8. ETL & Data Lineage 9. Datenfusion - Union & Co.10. Hidden Web11. Semantic Web12. Forschungsprojekte  - TSIMMIS, Garlic, Revere, etc13. Data Streams

Page 5: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 5

Wdh: Virtuelle Integration

Datenfluss Anfragebearbeitung Entwicklung

Top-down Schema

Quelle 1 Quelle 2 Quelle 3

Mediator

Anwendung 1 Anwendung 2

Wrapper 2 Wrapper 3Wrapper 1

Page 6: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 6

Wdh: Bottom-up oder Top-down Entwurf

Beim Entwurf des integrierten Systems Bottom-up:

Ausgelöst durch den Bedarf, mehrere Quellen integriert anzufragen

Schemaintegration ist wichtig. Änderungen schwierig, da neu integriert werden muss. Typisches Szenario: Data Warehouse

Top-down Ausgelöst durch globalen Informationsbedarf Vorteilhaft bei labilen Quellen Schemaintegration nicht nötig, bzw. leichter

Page 7: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 7

Wdh: Bottom-up Entwicklung

Wesentliche Merkmale Vorhandene

lokale Schemata

ALLE Daten sollen integriert werden

Deshalb Schema-

integration

Page 8: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 8

Wdh: Top-down Entwicklung

Wesentliche Merkmale Vorhandenes

globales Schema Passende lokale

Systeme werden gesucht

Deshalb LaV und Schema Mapping

Page 9: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 9

Schemaintegration vs. Schema Mapping

Beide Probleme müssen strukturelle und semantische Heterogenität überwinden.

Aber: Schemaintegration liefert Schema Mapping „frei

Haus“. Zielschema hat keine eigene Semantik. Schemaintegration ist unflexibel.

Deshalb nun: Schema Mapping

Page 10: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 10

Verwendung von Schema Mappings

Datentransformation

Q uellschem a

Q uelldaten

Ma

pp

ing

V iew

Transform ationsanfrage

Zie lschem aQ uellschem a

Transform ationsanfrageQ uelldaten Zie ldaten

M apping

Folie: Frank Legler

Page 11: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 11

Verwendung von Schema Mappings

Schemaintegration

Schem a 2Schem a 1

Daten

in tegriertes Schem a

Daten

M apping

M apping M apping

Folie: Frank Legler

Page 12: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 12

Verwendung von Schema Mappings

Schemaevolution

D atenQ uery (Insert/U pdate/D ele te)

verändertesSchem a

Schem a M apping

Schem aevolution

Folie: Frank Legler

Page 13: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 13

Verwendung von Schema Mappings

Datentransformation Materialisierte Integration Virtuelle Integration

Zie lschem aQ uellschem a

Transform ationsanfrageQ uelldaten Z ie ldaten

M apping

Anfrage

Page 14: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 14

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation (Transformation)

Schema Matching (Ausblick) Demo

Aus [FHP+02] und aus VLDB 2002 Vortragsfolien

Page 15: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 15

Schema Mapping - Definitionen (Inter-Schema) Korrespondenz

Eine Zuordnung eines oder mehrerer Elemente eines (Quell-) Schemas zu einem oder mehreren Elementen eines anderen (Ziel-) Schemas

Auch: Value-correspondence (High-level) Mapping

Eine Menge von Korrespondenzen zwischen zwei Schemas. (Low-Level) Logisches Mapping

Logische Übersetzung eines oder mehrerer Mappings, die den Integritätsbedingungen beider Schemas gehorcht und die Intention des Nutzers wiederspiegelt.

Interpretation Übersetzung eines Mappings in ein oder mehrere logische Mappings Übersetzung eines logischen Mappings in eine Transformationsanfrage

Transformationsanfrage Anfrage in einer Anfragesprache (z.B. SQL), die Daten des Quellschemas in

die Struktur des Zielschemas überführt

Page 16: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 16

Wdh: Schematische Heterogenität

Struktur Modellierung

Relation vs. Attribut Attribut vs. Wert Relation vs. Wert

Benennung Relationen Attribute

Normalisiert vs. Denormalisiert Geschachtelt vs. Fremdschlüssel

hier

Page 17: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 17

Motivation Datentransformation zwischen heterogenen

Schemas Altes aber immer wiederkehrendes Problem Üblicherweise schreiben Experten komplexe Anfragen oder

Programme Zeitintensiv Experte für die Domäne, für Schemata und für Anfrage XML macht alles noch schwieriger

XML Schema, XQuery Idee: Automatisierung

Gegeben: Zwei Schemata und ein high-level Mapping dazwischen.

Gesucht: Anfrage zur Datentransformation

Page 18: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 18

Motivation – Probleme

Generierung der „richtigen“ Anfrage unter Berücksichtigung der Schemata und des Mappings

Garantie, dass die transformierten Daten dem Zielschema entsprechen

Effiziente Datentransformation Für Materialisierung (Ausführung, inkrementell) Für virtuelle Integration (query-unfolding)

Hier: Nur Effektivität, nicht Effizienz

Page 19: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 19

Motivation – Weitere Probleme Geschachtelte Strukturen

unterstützen Geschachteltes

relationales Modell XML Geschachtelte

Integritätsbedingungen Korrespondenzen

Nutzerfreundlich Automatische

Entdeckung

Intention des Nutzers erkennen und repräsentieren

Semantik der Daten erhalten Assoziationen entdecken

& erhalten Schemata und deren

Integritätsbedingungen nutzen

Neue Datenwerte erzeugen Korrekte Gruppierungen

erzeugen …

Page 20: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 20

Quell- schema S

Ziel- schema T

• Möchte Daten aus S• Versteht/Kennt T• Versteht nicht immer S

(High-level) Mapping

“entspricht”

Daten

Mapping Compiler

(Low-level) Logisches Mapping(Transformationsprogramm oder

Anfrage)

“entspricht”

Schema Mapping im Kontext

Quelle: [FHP+02]

Page 21: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 21

Schema Mapping im Kontext

1. Schema Matching &

Korrespondenzen

2. Schema Mapping

3. Mapping Interpretation

4. Daten-transformation

Page 22: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 22

Wdh: Schematische Heterogenität – Beispiel

Normalisiert vs. Denormalisiert 1:n Assoziationen zwischen Werten wird

unterschiedlich dargestellt Durch Vorkommen im gleichen Tupel Durch Schlüssel-Fremdschlüssel Beziehung

Lösung: Schema Mapping

Page 23: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 23

Schema Mapping Beispiel

•ARTICLE•artPK•title•pages

•AUTHOR•artFK•name

•PUBLICATION•pubID•title•date•author

SELECT artPK AS pubID title AS title null AS date null AS authorFROM ARTICLE

UNION SELECT null AS pubID null AS title null AS date name AS author FROM AUTHOR

Page 24: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 24

Schematische Heterogenität – Lösungen

•ARTICLE•artPK•title•pages

•AUTHOR•artFK•name

•PUBLICATION•pubID•title•date•author

SELECT artPK AS pubIDtitle AS titlenull AS datename AS author

FROM ARTICLE, AUTHORWHERE ARTICLE.artPK = AUTHOR.artFK

Page 25: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 25

Schematische Heterogenität – Lösungen

•ARTICLE•artPK•title•pages

•AUTHOR•artFK•name

•PUBLICATION•pubID•title•date•author

SELECT artPK AS pubIDtitle AS titlenull AS datename AS author

FROM ARTICLE LEFT OUTER JOIN AUTHORON ARTICLE.artPK = AUTHOR.artFK

Gilt Schlüssel-eigenschaft?

Page 26: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 26

Wdh: Schematische Heterogenität – Lösungen

•ARTICLE•artPK•title•pages

•AUTHOR•artFK•name

•PUBLICATION•title•date•author

SELECT SK(title) AS artFK author AS name

FROM PUBLICATION

SELECT SK(title) AS artPK title AS title

null AS pagesFROM PUBLICATION

Page 27: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 27

Wdh: Schematische Heterogenität – Beispiel

Geschachtelt vs. Flach 1:n Assoziationen werden unterschiedlich

dargestellt Als geschachtelte Elemente Als Schlüssel-Fremdschlüssel Beziehung

Lösung: Schema Mapping

Page 28: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 28

Wdh: Schematische Heterogenität – Lösungen

•ARTICLE•artPK•title•pages•AUTHOR

•name

•PUBLICATION•pubID•title•author

LET $doc0 := document(“articles.xml") RETURN<root> { distinct-values ( FOR $x0 IN $doc0/authorDB/ARTICLE, $x1 IN $x0/AUTHOR RETURN

<publication> <pubID> { $x0/artPK/text() } </pubID><title> { $x0/title/text() } </title><author> { $x1/name/text() } </author></publication> )

} </root>

Page 29: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 29

LET $doc0 := document(“publication.xml")RETURN<articles> { distinct-values ( FOR $x0 IN $doc0/dblp/publication RETURN <ARTICLE> <title> { $x0/title/text() } </title> { distinct-values ( FOR $x0L1 IN $doc0/dblp/publication WHERE $x0/title/text() = $x0L1/title/text() RETURN <AUTHOR> <name> { $x0L1/author/text() } </name>

</AUTHOR> )} </ARTICLE> ) } </articles>

Wdh: Schematische Heterogenität – Lösungen

•ARTICLE•title•AUTHOR

•name

•PUBLICATION•title•date•author

Page 30: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 30

Page 31: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 31

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation

Algorithmus (Transformation)

Schema Matching (Ausblick) Demo

Aus [FHP+02] und aus VLDB 2002 Vortragsfolien

Page 32: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 32

Mapping – Das Problem Gegeben: Zwei Schemata

Unabhängig voneinander erzeugt Relational Geschachtelt Mit Integritätsbedingungen (Schlüssel/Fremdschlüssel) Stellen teilweise unterschiedliche Daten dar

Gegeben: Eine Menge von Korrespondenzen zwischen den Schemata

Gesucht: Anfrage, die Daten des einen in Daten des anderen Schemas transformiert, wobei Semantik des Quellschemas erhalten bleibt, Integritätsbedingungen des Zielschemas berücksichtigt werden, und möglichst alle Korrespondenzen berücksichtigt werden.

Page 33: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 33

Relationale vs. XML Schemata

Relationale Schemata Flach

XML Schemata Flach oder geschachtelt

NF2

Page 34: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 34

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Quelle für Beispiel: [FHP+02]

Page 35: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 35

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Interpretation:- Erzeuge für jede firma in spendenDB. eine org in haushaltDB.- orgID muss „erfunden“ werden- stadt muss „erfunden“ werden

Page 36: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 36

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Interpretation:- Erzeuge für jede firma in spendenDB. eine org in haushaltDB.- stadt muss „erfunden“ werden

Page 37: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 37

„Erfinden“ von Werten Zwei Gründe zum Erfinden: non-null und Identität Non-null Werte

Erfundener Wert egal Z.B. „unbekannt“ oder „null“ (oder „Berlin“)

ID Werte Skolemfunktion:

Input: n Werte (beliebige Domäne) Output: bezgl. Input eindeutiger Wert (beliebiger Domäne) Beispiel: Konkatenation aller Inputwerte als String

Wert für org.orgID nicht egal, sondern je nach firma.name eindeutig!

Page 38: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 38

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Interpretation:- Erzeuge für jede spendenDB.firma.stadt ein haushaltDB.stadthaushalt mit gleichem Namen.- Gruppiere jede firma unter den entsprechenden stadtHaushalt.

Page 39: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 39

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: stringInterpretation:- Erzeuge für jede firma in spendenDB. eine org in haushaltDB.- Erzeuge für jede spende in spendenDB eine einnahme in haushaltDB- Erzeuge für jede spende in spendenDB eine buchung in haushaltDB- Gruppiere korrekt: Schachtelung & Fremdschlüssel!

Page 40: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 40

Mapping – Beispiel

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Weitere Interpretation: &

Page 41: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 41

Verschiedene Mapping Situationen

Team s [1, 1]

Team Nam e:string [1, 1]

Team [0, *]

ID:integer [1, 1]

Team URL:string [1, 1]

Nam e:string [1, 1]

Person [0, *]

ID:integer [1, 1]

DOB:date [0, 1]

root [1, 1]

Team Nam e:VARCHAR (10) [1, 1]

Team [0, *]

ID:VARCHAR [1, 1]

Team URL:VARCHAR (100) [0, 1]

Vornam e:VARCHAR (10) [1, 1]

Person [0, *]

ID:VARCHAR [1, 1]

Nachnam e:VARCHAR (10) [1, 1]

Team FK:INTEGER [1, 1]

Adresse

concat()

Quellschem aZielschem a

verschiedene Datentypen

2:1 Korrespondenz Attribute nicht Teil des Mappings

verschiedene Kardinalitäten

FK-Beziehung vs. Schachtelung

Folie: Frank Legler

Page 42: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 42

Klassifikation von Mapping Situationen

Q uelle

M apping Situationen

Mapping S ituationen info lge fehlender K o rres pondenzen

Attribut des Q uellschemas n icht Te il des M appings

Attribut des Z ie lschemas n icht Te il des M appings

Teil e ines Schlüssel oder UN IQ UE-Constra in ts

Teil e ines F remd-schlüssels

erforderlich mit/ohne Vorgabewert

n icht erforderlich

E lement des Q uell- oder Z ie lschemas n icht Teil des M appings

Mapping Situationen, die einzelne Korrespondenzenbetreffen

Situationen in Abhängigke it von der Kard ina litaet

S ituationen in Abhängigke it vom Datentyp

Transformationsfunktionund/oder F ilter vorhanden

Zusammenhang der Q uellstrukturen

strukture lle r Zusammenhang

F remdschlüsselbasierter Zusammenhang

kein (offensichtlicher) Zusammenhang

Zusammenhang der Z ie lstrukturen

strukture lle r Zusammenhang

F remdschlüsselbasierterZusammenhang

kein (offensichtlicher) Zusammenhang

unterschied liche Strukturen in Q uelle und Z ie l

alle Kombinationen

1:1 Korrespondenzen n:1 Korrespondenzen m:n Korrespondenzen 1:n Korrespondenzen

(n icht untersucht)

Unterscheidungen je nach Zusammenhang der Q uell- und/oder Z ie lstrukturen ähnlich

Mapping Situationen, die mehr als eine Korrespondenzbetreffen

spezie lle S ituationen mit Choice-G ruppierungen

Erzeugung von Duplikaten

Element

Attribut

Z ie l

E lement

Attribut

(nur fü r A ttribute)

Folie: Frank Legler

Page 43: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 43

Mapping Situationen infolge fehlender Korrespondenzen

Attribut des Quellschemasnicht Teil des Mappings

Attribut des Zielschemas nicht Teil des Mappings

Element des Quell- oderZielschemas nicht Teil desMappings

Teil eines Schlüssel oder UNIQUE-Constraints

Teil eines Fremd-schlüssels

erforderlich mit/ohneVorgabewert

nicht erforderlich

Klassifikation von Mapping Situationen

Folie: Frank Legler

nicht hier

Page 44: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 44

Mapping Situationen, die einzelne Korrespondenzenbetreffen

1:1 Korrespondenzen n:1 Korrespondenzen m:n Korrespondenzen 1:n Korrespondenzen

Unterscheidungen je nachZusammenhang der Quell-und/oder Zielstrukturen

(nicht untersucht)

Quelle

Attribut

Element

(nur für Attribute)

Situationen inAbhängigkeit von derKardinalität

Transformationsfunktionund/oder Filter vorhanden

Situationen inAbhängigkeit vomDatentyp

Ziel

Attribut

Element

Klassifikation von Mapping Situationen

Folie: Frank Legler

Page 45: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 45

Mapping Situationen, die mehrals eine Korrespondenzbetreffen

spezielle Situationen mit Choice-Gruppierungen

unterschiedliche Strukturen in Quelle und Ziel

Zusammenhang der Zielstrukturen

struktureller Zusammenhang

Fremdschlüsselbasierter Zusammenhang

kein (offensichtlicher)Zusammenhang

Zusammenhang der Quellstrukturen

struktureller Zusammenhang

Fremdschlüsselbasierter Zusammenhang

kein (offensichtlicher)Zusammenhang

alle Kombinationen

Klassifikation von Mapping Situationen

Folie: Frank Legler

nicht hier

Page 46: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 46

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation

Algorithmus (Transformation)

Schema Matching (Ausblick) Demo

Aus [FHP+02] und aus VLDB 2002 Vortragsfolien

Page 47: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 47

Mapping – Algorithmus

Drei Schritte1. Entdeckung von

intra-Schema Assoziationen

2. Entdeckung von inter-Schema logischen Mappings

3. Anfrage-erzeugung

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Page 48: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 48

Entdeckung von Assoziationen Schritt 1

Intra-schema Assoziationen zwischen Schemaelementen Relationale Sichten enthalten maximale Gruppen assoziierter Elemente Jede Sicht repräsentiert eine eigene „Kategorie“ an Daten der Datenquelle Unabhängig vom Mapping (aber beschränkt auf „gemappte“ Elemente)

Quell- schema S

Ziel- schema T

Assoziationen des Quellschemas

Assoziationen des Zielschemas

Quelle: [FHP+02]

Page 49: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 49

Entdeckung von Assoziationen

Start: Alle „primären“ Pfade (primary paths) Assoziationen im Schema

ohne Integritätsbedingungen Relationale Schemas

Jede Relation entspricht einem primären Pfad

Geschachtelte Schemas Attribute einer Ebene Attribute geschachtelter

Ebenen

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

Page 50: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 50

Entdeckung von Assoziationen

Betrachte nun Schlüssel / Fremdschlüssel (ICs)

Logische Relation Erweitere jeden

primären Pfad durch „Verfolgen“ der ICs (chase)

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

Page 51: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 51

Entdeckung von Assoziationen

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Spielen noch keine Rolle.

Page 52: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 52

Entdeckung von logischen Mappings Schritt 2

Entdecke logische Mappings zwischen Quell- und Zielschema Betrachte alle Kombinationen aus Assoziationen des

Quellschemas und Assoziationen des Zielschemas Unter Berücksichtigung aller Korrespondenzen (sofern Korrespondenzen

zwischen ihnen überhaupt existieren)

Quell- schema S

Ziel- schema T

Element - Element Korrespondenzen

Logische Mappings

Assoziationen des Quellschemas

Assoziationen des Zielschemas

Page 53: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 53

Entdeckung von logischen Mappings

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

&

&

&

& &

&

&

&

Ausgehende Korrespondenzen: Finden alle ein Ziel in der Kombination?

Page 54: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 54

Entdeckung von logischen Mappings

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

&

&

&

Eingehende Korrespondenzen: Stammen sie alle aus Assoziationen der Kombination?

Page 55: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 55

Entdeckung von logischen Mappings

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

&

&

Page 56: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 56

Input des Nutzers bzw. Domänenexperten

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

&

&

1. Nutzer „malt“ Korrespondenzen

2. Nutzer wählt logische Mappings

(Interpretationen) aus

Page 57: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 57

Erzeugung der Anfragen

Schritt 3 Erzeuge für jedes (ausgewählte) logische Mapping eine

Anfrage Auswahl und verknüpfen der entsprechenden Quelldaten Generierung der entsprechenden Zieldaten

Logisches MappingAnfrage:- entschachteln- joinen

Anfrage (target):- schachteln- splitten- Werte erfinden

Assoziationen des Quellschemas

Assoziationen des Zielschemas

Quell- schema S

Ziel- schema T

Element - Element Korrespondenzen

Page 58: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 58

Erzeugung der Anfragen

2 Probleme Erfinden von Werten

NULL-Werte nicht immer ausreichend. Schlüssel und passende Fremdschlüssel müssen

erzeugt werden. Schachtelung

Es soll nicht eine logische Relation (flach) materialisiert werden, sondern geschachtelte Strukturen.

Es muss entsprechend gruppiert werden.

Page 59: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 59

Erfinden neuer Werte Logische Relation: buchungen Wert für buchungID wird nicht gefüllt

Entweder: Egal Oder: Not-null: Dann Default-Wert, z.B. „null“ Oder ID: Dann eindeutigen Werte erzeugen Skolemfunktion, basierend auf

allen Werten des Mappings dieser logischen Relation haushaltDB

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB spenden spende firmaID: integer

spendeID: integer

projekt: string

betrag: decimal spender: string

buchungID = Sk(betrag)

Page 60: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 60

Erfinden neuer Werte Logische Relation: einnahmen, buchungen buchungID-Attribute haben keine

Korrespondenz Assoziationen gingen verloren Also neue ID erfinden Wieder: Skolemfunktion basierend auf allen

Werten des Mappings dieser logischen Relation Trick wie gehabt: Gleiche Funktion für Schlüssel

und Fremdschlüssel

haushaltDB einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB spenden spende firmaID: integer

spendeID: integer

projekt: string

betrag: decimal spender: string

buchungID = Sk(spendeID,projekt,betrag)

Page 61: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 61

Erfinden neuer Werte

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

buchungID = Sk(betrag, projekt)

Frage: Warum nicht Sk(betrag,spendeID,firmaID)?

Page 62: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 62

Erfinden neuer Werte

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

buchungID = Sk(betrag,projekt,name)

Jetzt erst recht: Warum nicht Sk(betrag,projekt,name,firmaID)?

Page 63: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 63

Erfinden neuer Werte Gegenfrage: Warum nicht gleiche ALLE ungemappten Werte? Vier Antworten (von Lucian Popa)

Prinzipiell ginge das, aber Duplikate könnten entstehen

2 Spenden, mit gleichem Betrag und gleichem Projekt aber von unterschiedlichen Firmen

firmenID könnte für User völlig uninteressant sein. Mapping hätte dann die Rolle

einer Projektion, in der Duplikate fehl am Platz wären

Sie wären sogar völlig uner-klärlich für den Nutzer

Minimalität Beide Varianten sind in

Ordnung, aber eine ist kleiner:Keine Duplikate

Page 64: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 64

Gruppierung Alle Attribute erhalten Werte Aber:

Assoziationen könnten verloren gehen. Neue (falsche) Assoziationen könnten erzeugt werden

Deshalb: Gruppierung notwendig Trick: Virtuelle ID Generierung mittels Skolemfunktion basierend auf allen

Werten hierarchisch über der aktuellen Relation. Im Beispiel: Jedes Tupel haushaltDB erhält ID Sk(land, stadt) Jedes weitere Tupel aus firmen mit gleichen Werten für stadt und land errechnet

gleiche ID und wird unter gleichem Element geschachtelt.

haushaltDB land: string

stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

spendenDB firmen firma firmaID: integer

name: string

stadt: string

land: string

Page 65: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 65

Erzeugung der Anfragen

Implementationsspezifisch Abhängig von Datenmodell

Relational Relational: SQL Relational XML: SQLX (Schachtelung und tagging des

Ergebnisses)

XML Relational: XQuery oder XSLT (tags weglassen)

XML XML: XQuery oder XSLT

In Clio Erzeugung proprietärer Regeln Dann: Übersetzung der Regeln in jeweilige Anfragesprache

Page 66: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 66

Erzeugung der Anfragen

Erzeugung proprietärer Regeln in Clio for x in spenden

let a = x.spende.spendeID, b = x.spende.projekt return <einnahme = <spendeID = a, proj = b, buchungID = null>>

in einnahmenhaushaltDB einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB spenden spende firmaID: integer

spendeID: integer

projekt: string

betrag: decimal spender: string

Page 67: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 67

Erzeugung der Anfragen

Erzeugung proprietärer Regeln in Clio for x in spenden

let a = x.spende.spendeID, b = x.spende.projekt, c = x.spende.betrag return <einnahme = <spendeID = a, proj = b, buchungID = Sk(a,b,c)>> in einnahmen, <buchung = <buchingID = Sk(a,b,c), datum = null, menge = c>> in buchungen

haushaltDB einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB spenden spende firmaID: integer

spendeID: integer

projekt: string

betrag: decimal spender: string

Page 68: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 68

Erzeugung der Anfragen – XQuery

for x in spendenlet a = x.spende.spendeID, b = x.spende.projekt, c = x.spende.betrag return <einnahme = <spendeID = a, proj = b, buchungID = Sk(a,b,c)>> in einnahmen, <buchung = <buchingID = Sk(a,b,c), datum = null, menge = c>> in buchungen

LET $doc0 := document("input XML file goes here")RETURN <haushaltDB> { distinct-values ( FOR $x0 IN $doc0/spendenDB/spende RETURN <einnahme> <spendeID> { $x0/spendeID/text() } </spendeID> <proj> { $x0/projekt/text() } </proj> <buchungID> { "Sk32(", $x0/betrag/text(), ", ", $x0/spendeID/text(), ", ", $x0/projekt/text(), ")" } </buchungID> </einnahme> ) } { distinct-values ( FOR $x0 IN $doc0/spendenDB/spende RETURN <buchung> <buchungID> { "Sk32(", $x0/betrag/text(), ", ", $x0/spendeID/text(), ", ", $x0/projekt/text(), ")" } </buchungID> <menge> { $x0/betrag/text() } </menge> </buchung> ) } </haushaltDB>

Page 69: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 69

Erzeugung der Anfragen – SQL

for x in spendenlet a = x.spende.spendeID, b = x.spende.projekt, c = x.spende.betrag return <einnahme = <spendeID = a, proj = b, buchungID = Sk(a,b,c)>> in einnahmen, <buchung = <buchingID = Sk(a,b,c), datum = null, menge = c>> in buchungen

-- CREATE VIEW einnahme ASSELECT x0.spendeID AS spendeID, x0.projekt AS proj, RTRIM('Sk32(` CHAR(x0.betrag) || ',' || (CHAR(x0.spendeID) || ',' || CHAR(x0.projekt) || ')') AS buchungIDFROM spendenDB.spende x0------------------------------------------------------- CREATE VIEW buchung ASSELECT RTRIM('Sk32(' || CHAR(x0.betrag) || ',' || CHAR(x0.spendeID) || ',' || CHAR(x0.projekt) || ')') AS buchungID, x0.betrag AS mengeFROM spendenDB.spende x0

Page 70: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 70

Page 71: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 71

Einbettung in GaV/LaV Ergebnis des Schema Mapping Prozess sind Anfragen

Eine oder mehrere Anfragen pro Assoziation Relationales Modell:

Jede Ziel-Relation entspricht einem primären Pfad Verwerfe Fremdschlüssel Jede Ziel-Relation entspricht einer Assoziation Jede Anfrage (oder Vereinigung von Anfrage) liefert Daten für

eine Relation, also wie GaV. Schema Mapping leistet aber mehr!

Erzeugung von Daten für mehrere Zielrelationen zugleich Unter Berücksichtigung von Integritätsbedingungen in Quell- und

Zielschema „Kombination von LaV und GaV“: GLaV

Page 72: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 72

Schematische Heterogenität

Struktur Modellierung

Relation vs. Attribut Attribut vs. Wert Relation vs. Wert

Benennung Relationen Attribute

Normalisiert vs. Denormalisiert Geschachtelt vs. Fremdschlüssel Geschachtelt vs. Flach

bisher

Higher-order Mappings

Page 73: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 73

High-order Mappings

Person( Id, Vorname, Nachname,männlich,

weiblich)

Männer( Id, Vorname, Nachname)Frauen( Id, Vorname, Nachname)

Person( Id, Vorname, Nachname, Geschlecht)

Attribut vs. Wert

Relation vs. Wert

Relation vs. Attribut

Page 74: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 74

High-order Mappings

Männer Vorname NachnameFrauen Vorname Nachname

Person Vorname Nachname Geschlecht

`m´

`w´

Page 75: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 75

High-order Mappings

Männer Vorname NachnameFrauen Vorname Nachname

Person Vorname Nachname Geschlecht

= `m´

= `w´

Page 76: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 76

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation

Algorithmus (Transformation)

Schema Matching (Ausblick) Demo

Aus [FHP+02] und aus VLDB 2002 Vortragsfolien

Page 77: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 77

Schema Matching

Ausblick auf nächste Woche: Schema Matching erzeugt automatisch

Korrespondenzen Basierend auf

Namen der Schemaelemente (label-based) Darunterliegende Daten (instance-based) Struktur des Schemas (structure-based) Mischformen, Meta-Matcher

Siehe auch [RB01]

Page 78: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 78

Zusammenfassung

Drei Schritte1. Entdeckung von

intra-Schema Assoziationen

2. Entdeckung von inter-Schema logischen Mappings

3. Anfrage-erzeugung

haushaltDB stadtHaushalt stadt: string

organisationen org orgID: integer

orgname: string

einnahmen einnahme spendeID: integer

proj: string

buchungID: integer

buchungen buchung buchungID: integer

datum: date

menge: decimal

spendenDB firmen firma firmaID: integer

name: string

stadt: string

spenden spende firmaID: integer

spendeID: integer

betrag: decimal

projekt: string

spender: string

Page 79: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 79

Überblick

Schema Mapping Überblick Schema Mapping

(Matching) Mapping Interpretation

Algorithmus (Transformation)

Schema Matching (Ausblick) Demo

Aus [FHP+02] und aus VLDB 2002 Vortragsfolien

Page 80: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 80

Vergleich dreier Tools

Altovas MapForce IBMs Clio [IBMs WSAD] Szenario

expenseDB -> statisticsDB Definition des Mappings Generierung der Transformation Vergleich der XML Ergebnisse

XML Screenshots aus XMLSpy www.xmlspy.com

Page 81: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 81

Szenario - ExpenseDB

Page 82: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 82

Szenario - ExpenseDB

Page 83: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 83

Szenario StatisticsDB

Zu WSAD

Page 84: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 84

Altovas MapForce

Page 85: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 85

Altovas MapForce

Page 86: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 86

Altovas MapForce

Zusammenfassung Informationen gehen nicht verloren Joins

werden nicht erkannt können manuell in GUI erstellt werden

Gruppierung wird nicht erkannt

Page 87: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 87

IBMs Clio

Page 88: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 88

IBMs Clio

Page 89: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 89

IBMs Clio

Zusammenfassung Joins werden erkannt

Aber nicht erzwungen: Interpretation Gruppierung wird erkannt

Page 90: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 90

IBMs WSAD

Page 91: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 91

IBMs WSAD

Zusammenfassung Mögliche Joins werden nicht erkannt Gruppierung wird nicht erkannt Informationen werden verworfen

Nur erste Stadt Information wird „erfunden“

Jede Organization erhält jedes Projekt

Page 92: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 92

Zusammenfassung der Demo IBMs WSAD

Mögliche Joins werden nicht erkannt. Gruppierung wird nicht erkannt. Daten werden verworfen. Assoziationen zw. Daten werden „erfunden“.

Altovas MapForce Daten gehen nicht verloren. Joins werden nicht erkannt, aber können

manuell in GUI erstellt werden. Gruppierung wird nicht erkannt.

IBMs Clio Joins werden erkannt, aber nicht erzwungen:

Interpretationen möglich Gruppierung wird erkannt.

Page 93: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 93

Literatur [FHP+02] Ron Fagin, Mauricio Hernandez, Lucian Popa, Renee

Miller, and Yannis Velegrakis, Translating Web Data, VLDB 2002, Hong Kong, China.

[RB01] Erhard Rahm and Philip Bernstein, A survey of approaches to automatic schema matching, VLDB Journal 10(4), 2001.

Zu der Problematik, ob Duplikate Teil des Outputs sein sollten: Ronald Fagin, Phokion G. Kolaitis, Renée J. Miller, Lucian Popa:

Data Exchange: Semantics and Query Answering. ICDT 2003: 207-224

Clio: http://www.almaden.ibm.com/software/projects/criollo/ oder http://www.cs.toronto.edu/db/clio/