Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.
-
Upload
juliane-schinkel -
Category
Documents
-
view
108 -
download
0
Transcript of Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.
![Page 1: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/1.jpg)
Informationsintegration
Schema Mapping
3.1.2006 – 10.1.2006
Felix Naumann
![Page 2: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/14.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/17.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/18.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/19.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/20.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/21.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/22.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/23.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/24.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/25.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/26.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/27.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/28.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/29.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/30.jpg)
3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 30
![Page 31: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/31.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/32.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/33.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/34.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/35.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/36.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/37.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/38.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/39.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/40.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/41.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/42.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/43.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/44.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/45.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/46.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/47.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/48.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/49.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/50.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/51.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/52.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/53.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/54.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/55.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/56.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/57.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/58.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/59.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/60.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/61.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/62.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/63.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/64.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/65.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/66.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/67.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/68.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/69.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/70.jpg)
3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 70
![Page 71: Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/71.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/72.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/73.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/74.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/75.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/76.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/77.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/78.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/79.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/80.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/81.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/82.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/83.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/84.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/85.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/86.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/87.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/88.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/89.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/90.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/91.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/92.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022062512/55204d6749795902118bcf57/html5/thumbnails/93.jpg)
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/