informationsintegration schema mapping 3.1.2006 – 10.1.2006 felix naumann

Post on 05-Apr-2015

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 …

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]

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

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

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

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

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?

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

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

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>

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

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

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

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.

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

Relationale vs. XML Schemata

Relationale Schemata Flach

XML Schemata Flach oder geschachtelt

NF2

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]

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

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

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!

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.

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!

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: &

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

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

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

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

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

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

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

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]

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

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

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.

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

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?

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?

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

&

&

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

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

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.

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)

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)

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)?

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)?

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

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

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

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

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

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>

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

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

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

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

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

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´

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´

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

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]

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

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

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

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

Szenario - ExpenseDB

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

Szenario - ExpenseDB

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

Szenario StatisticsDB

Zu WSAD

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

Altovas MapForce

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

Altovas MapForce

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

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

IBMs Clio

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

IBMs Clio

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

IBMs Clio

Zusammenfassung Joins werden erkannt

Aber nicht erzwungen: Interpretation Gruppierung wird erkannt

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

IBMs WSAD

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

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.

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/

top related