Schema Mapping

Werbung
Informationsintegration
Schema Mapping
8.5.2012
Felix Naumann
Erste Hälfte
2
■ Problemstellung
□ Einführung in die Informationsintegration
□ Szenarien der Informationsintegration
□ Verteilung und Autonomie
□ Heterogenität
■ Architekturen
□ Materialisierte und virtuelle Integration
□ 5-Schichten Architektur
□ Mediator/Wrapper-Architektur / PDMS
■ Mapping
□ Schema Mapping
□ Schema Matching
■ Modellierung
□ Global-as-View und Lokal-as-View Modellierung
□ Global-as-View Anfragebearbeitung
Felix Naumann | Informationsintegration | Sommer 2012
Zweite Hälfte
3
■ Anfragen
□ Containment & Local-as-View Anfragebearbeitung
□ Bucket Algorithmus
□ Verteilte Anfragebearbeitung
■ Datenintegration
□ Duplikaterkennung
□ Datenfusion - Union & Co.
□ DWH, ETL & Data Lineage
□ Informationsqualität
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
4
■ Motivation
■ Schema Mapping
■ Schema Matching
■ Mapping Interpretation
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Virtuelle Integration
5
Anwendung 1 Anwendung 2
■ Datenfluss
■ Anfragebearbeitung
■ Entwicklung
□ Top-down
Mediator
■ Schema
Wrapper 1
Wrapper 2
Wrapper 3
Quelle 1
Quelle 2
Quelle 3
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Bottom-up oder Top-down
Entwurf
6
■ Beim Entwurf des integrierten Systems
■ Bottom-up
□ Ausgelöst durch den Bedarf, mehrere (alle) Quellen integriert
anzufragen
□ Schemaintegration ist nötig.
□ Ä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
Felix Naumann | Informationsintegration | Sommer 2012
Schemaintegration vs. Schema Mapping
7
■ 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
Felix Naumann | Informationsintegration | Sommer 2012
Verwendung von Schema Mappings
8
■ Datentransformation
View
Mapping
Transformationsanfrage
Quellschema
Mapping
Zielschema
Quellschema
Quelldaten
Transformationsanfrage
Zieldaten
Quelldaten
Felix Naumann | Informationsintegration | Sommer 2012
Folie: Frank Legler
Verwendung von Schema Mappings
9
■ Schemaintegration
integriertes Schema
Mapping
Schema 1
Mapping
Mapping
Daten
Felix Naumann | Informationsintegration | Sommer 2012
Schema 2
Daten
Folie: Frank Legler
Verwendung von Schema Mappings
10
■ Schemaevolution
Schema
verändertes
Schema
Mapping
Schemaevolution
Daten
Felix Naumann | Informationsintegration | Sommer 2012
Query (Insert/Update/Delete)
Folie: Frank Legler
Verwendung von Schema Mappings
11
■ Im weiteren: Datentransformation
□ Materialisierte Integration
□ Virtuelle Integration
Quellschema
Mapping
Zielschema
Quelldaten
Transformationsanfrage
Zieldaten
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
12
■ Motivation
■ Schema Mapping
■ Schema Matching
■ Mapping Interpretation
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Schema Mapping - Definitionen
13
■ (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
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität
14
■ Struktur
□ Modellierung
◊ Relation vs. Attribut
◊ Attribut vs. Wert
High-order
Mappings
◊ Relation vs. Wert
□ Benennung
◊ Relationen
◊ Attribute
□ Normalisiert vs. Denormalisiert
□ Geschachtelt vs. Fremdschlüssel
Felix Naumann | Informationsintegration | Sommer 2012
hier
Motivation
15
■ 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
Felix Naumann | Informationsintegration | Sommer 2012
Motivation – Probleme
16
■ 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
Felix Naumann | Informationsintegration | Sommer 2012
Motivation – Weitere Probleme
17
■ Geschachtelte Strukturen
unterstützen
■ Intention des Nutzers
erkennen und repräsentieren
□ Geschachteltes,
relationales Modell
■ Semantik der Daten erhalten
□ Assoziationen entdecken
& erhalten
□ XML
□ Schemata und deren
Integritätsbedingungen
nutzen
□ Geschachtelte
Integritätsbedingungen
■ Korrespondenzen
□ Nutzerfreundlich
■ Neue Datenwerte erzeugen
□ Automatische Entdeckung
(Schema Matching)
■ Korrekte Gruppierungen
erzeugen
■ …
Felix Naumann | Informationsintegration | Sommer 2012
Schema Mapping im Kontext
18
• Möchte Daten aus S
• Versteht/Kennt T
• Versteht nicht immer S
Quellschema S
“entspricht”
(High-level) Mapping
Mapping
Compiler
Zielschema T
“entspricht”
Daten
(Low-level) Logisches Mapping
(Transformationsprogramm oder
Anfrage)
Felix Naumann | Informationsintegration | Sommer 2012
Quelle: [FHP+02]
Schema Mapping im Kontext
19
filmDB
regisseure
regisseur
personID
name
studio
filme
film
regieID
filmID
produzent
titel
Wertkorrespondenzen
movieDB
studios
studio
studio
directors
director
dirID
dirname
producers
producer
prodID
name
Interpretation
Quellschema
Logisches Mapping
Zielschema
Anfragegenerierung
Quelldaten
Transformationsanfrage
Virtuelle
Zieldaten
(Sichtdefinition)
Felix Naumann | Informationsintegration | Sommer 2012
Materialisierte
Zieldaten
Schema Mapping im Kontext
20
■ Schema Matching
Korrespondenzen
&
■ Schema Mapping
■ Mapping Interpretation
■ Daten-transformation
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität –
Beispiel
21
■ 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
Felix Naumann | Informationsintegration | Sommer 2012
Schema Mapping Beispiel
22
•ARTICLE
•artPK
•title
•pages
•AUTHOR
•artFK
•name
•PUBLICATION
•pubID
•title
•date
•author
SELECT artPK AS pubID
title AS title
null AS date
null AS author
FROM
ARTICLE
UNION
SELECT null AS
null AS
null AS
name AS
FROM
AUTHOR
Felix Naumann | Informationsintegration | Sommer 2012
pubID
title
date
author
Schematische Heterogenität – Lösungen
23
•PUBLICATION
•pubID
•title
•date
•author
•ARTICLE
•artPK
•title
•pages
•AUTHOR
•artFK
•name
SELECT
FROM
WHERE
Weitere
Interpretationen?
artPK AS pubID
title AS title
null AS date
name AS author
ARTICLE, AUTHOR
ARTICLE.artPK = AUTHOR.artFK
Felix Naumann | Informationsintegration | Sommer 2012
Schematische Heterogenität – Lösungen
24
•PUBLICATION
•pubID
•title
•date
•author
•ARTICLE
•artPK
•title
•pages
•AUTHOR
•artFK
•name
SELECT
FROM
ON
Gilt Schlüsseleigenschaft?
artPK AS pubID
title AS title
null AS date
name AS author
ARTICLE LEFT OUTER JOIN AUTHOR
ARTICLE.artPK = AUTHOR.artFK
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität –
Lösungen
25
•PUBLICATION
•title
•date
•author
DISTINCT
SELECT SK(title) AS artPK
title AS title
null AS pages
FROM
PUBLICATION
•ARTICLE
•artPK
•title
•pages
•AUTHOR
•artFK
•name
SELECT SK(title) AS artFK
author AS name
FROM
PUBLICATION
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität –
Beispiel
26
■ Geschachtelt vs. Flach
□ 1:n Assoziationen werden unterschiedlich dargestellt
◊ Als geschachtelte Elemente
◊ Als Schlüssel-Fremdschlüssel Beziehung
■ Lösung: Schema Mapping
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität –
Lösungen
27
•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>
Felix Naumann | Informationsintegration | Sommer 2012
Wdh: Schematische Heterogenität –
Lösungen
28
•PUBLICATION
•title
•date
•author
•ARTICLE
•title
•AUTHOR
•name
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>
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
29
■ Motivation
■ Schema Mapping
■ Schema Matching
□ Klassifikation von Schema
Matching Methoden
□ Erweiterungen
□ Globales Matching
■ Mapping Interpretation
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching im Kontext
30
filmDB
regisseure
regisseur
personID
name
studio
filme
film
regieID
filmID
produzent
titel
Wertkorrespondenzen
movieDB
studios
studio
studio
directors
director
dirID
dirname
producers
producer
prodID
name
Interpretation
Quellschema
Logisches Mapping
Zielschema
Anfragegenerierung
Quelldaten
Transformationsanfrage
Virtuelle
Zieldaten
(Sichtdefinition)
Felix Naumann | Informationsintegration | Sommer 2012
Materialisierte
Zieldaten
Schema Matching – Motivation
31
■ Große Schemas
■ Irreführende Schemas
□ > 100 Tabellen, viele
Attribute
■ Fremdsprachliche Schemas
□ Bildschirm nicht lang genug
■ Kryptische Schemas
■ Unübersichtliche Schemas
□ Tiefe Schachtelungen
□ Unbekannte Homonyme
□ |Attributnamen| ≤ 8 Zeichen
□ |Tabellennamen| ≤ 8 Zeichen
□ Fremdschlüssel
□ Bildschirm nicht breit genug
□ XML Schema
■ Fremde Schemas
□ Unbekannte Synonyme
Felix Naumann | Informationsintegration | Sommer 2012
32
Man beachte die
Scrollbar!
Man beachte die
Schachtelungstiefe!
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Motivation
33
■ Die Folgen
□ Falsche Korrespondenzen (false positives)
□ Fehlende Korrespondenzen (false negatives)
□ Frustration
◊ User verlieren sich im Schema
◊ User verstehen Semantik der Schemas nicht
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching Classification [RB01]
34
Schema Matching Approaches
Combined Approaches
Individual Approaches
Schema-based
Linguistic
Constraintbased
Instance-based
Linguistic
Duplicatebased
Constraint-based
Felix Naumann | Informationsintegration | Sommer 2012
Hybrid
Combined
Manual
Automatic
Schema Matching Klassifikation
35
Schema Matching basierend auf
■ Namen der Schemaelemente (label-based)
■ Darunterliegende Daten (instance-based)
■ Struktur des Schemas (structure-based)
■ Andere Matcher (composite)
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Label-based
36
■ Gegeben zwei Schemata mit Attributmengen A und B
■ Kernidee:
□ Bilde Kreuzprodukt aller Attribute aus A und B.
□ Für jedes Paar vergleiche Ähnlichkeit bezgl. Attributnamen (Label).
◊ Z.B. Edit-distance
□ Ähnlichste Paare sind Matches
■ Probleme:
□ Effizienz
□ Auswahl der besten Matches (globales Matching)
◊ Iterativ?
◊ Stable Marriage?
□ Synonyme und Homonyme werden nicht erkannt
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Label-based
37
Stand der Technik in kommerziellen Produkten
■ Label-based
■ Namensgleichheit
■ Kein globales Matching
■ Keine Ähnlichkeitsmaße
■ Kein Instanz-basiertes Matching
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Instance-based
38
■ Gegeben zwei Schemata mit Attributmengen A und B, jeweils mit
darunterliegenden Daten.
■ Kernidee
□ Für jedes Attribut extrahiere interessante Eigenschaften der
Daten
◊ Buchstabenverteilung, Länge, etc.
□ Bilde Kreuzprodukt aller Attribute aus A und B.
□ Für jedes Paar vergleiche Ähnlichkeit bzgl. der Eigenschaften
■ Probleme
□ Auswahl der Eigenschaften
□ Datenmenge: Sampling
□ Vergleichsmethode, z.B. Naive Bayes
□ Gewichtung (Maschinelles Lernen)
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Structure-based
39
■ Gegeben zwei Schemata mit Elementmengen A und B.
■ Kernidee
□ Nutze (komplexe) Struktur des Schemas aus.
□ Hierarchieebene
□ Elementtyp (Attribut, Relation, ...)
□ Nachbarschaftsbeziehungen
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Structure-based
40
Beispiel: Similarity Flooding nach [MGMR02]
■ Gegeben initiale Ähnlichkeit zwischen Schemaelementen (z.B.
durch edit-distance oder durch Analyse der darunterliegenden
Daten)
■ Lasse Ähnlichkeiten „abfärben“ auf die Nachbarn
□ Nachbarn sind durch Struktur definiert
□ Sind alle Nachbarn von x und y ähnlich zueinander, sind
(vielleicht) auch x und y ein match.
■ Analogie: Man „flutet“ das Netzwerk der Ähnlichkeiten bis ein
Gleichgewicht erreicht ist.
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Mischformen
41
Schema
Schema
BasisMatcher
BasisMatcher
Schema
BasisMatcher
■ Hybrid
□ Gleichzeitige Anwendung mehrerer
Techniken
□ Bsp: Instance-based + Datentypvergleich
■ Composite
□ Repertoire bekannter Techniken (inkl.
hybrider Techniken)
□ Kombination dieser unabhängigen
Verfahren
□ Bsp: Durch Gewichtung
□ Bsp: Durch automatisches Lernen
◊ Des besten Verfahrens
◊ Einer guten Gewichtung
MatchKombination
Schema
Felix Naumann | Informationsintegration | Sommer 2012
MatchAuswahl
Matching
Schema Matching in Clio
42
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
43
■ Motivation
■ Schema Mapping
■ Schema Matching
□ Klassifikation von Schema
Matching Methoden
□ Erweiterungen
□ Globales Matching
■ Mapping Interpretation
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Erweiterungen
44
■ n:1 und 1:n Matches
□ Viele Kombinationsmöglichkeiten
n:1 Matching
Vorname
Nachname
concat()
1:n Matching
□ Viele Funktionen denkbar
◊ Mathematische
Name
extract()
Operatoren,
extract()
Konkatenation, etc.
□ Parsingregeln
m:n matching
■ n:m Matching?
Name
■ Matching in komplexen Title
Schemata
extract() concat()
extract()
Name
Vorname
Nachname
First name
Last name
□ Ziel: Finde logisches
Mapping, nicht
nurKorrespondenzen
Sigmund Freud
Prof. Dr.
Prof. Dr. Sigmund
Felix Naumann | Informationsintegration | Sommer 2012
Freud
Schema Matching – Erweiterungen
45
■ Global matching (gleich)
□ Matche nicht nur einzelne Attribute (oder Attributmengen)
□ Sondern komplette Tabellen oder komplette Schemata
□ Stable Marriage Problem
A
B
1.0
0.81
0.54
0.27
C
D
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Weitere
Anwendungen
46
■ Herkömmlich: Korrespondenzen finden
■ Schlüssel – Fremdschlüssel finden
□ Ähnliche Attribute innerhalb eines Schemas sind gute
Kandidaten
■ Höher-stufige Korrespondenzen finden
□ Ähnlichkeiten von Tabellen durch Aggregation der Matches
ihrer Attribute
Felix Naumann | Informationsintegration | Sommer 2012
Phil Bernstein and Sergey Melnik –
SIGMOD 2007 keynote
47
■ Past goal: Improved precision and recall
□ Big productivity gains are unlikely
■ Better goals
□ Return top-k, not best overall match
□ Avoid the tedium. Manage work.
◊ Help with scrolling
□ HCI – handle large schemas
□ User studies – what would improve productivity?
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
48
■ Motivation
■ Schema Mapping
■ Schema Matching
□ Klassifikation von Schema
Matching Methoden
□ Erweiterungen
□ Globales Matching
■ Mapping Interpretation
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Schema Matching – Stable Marriage
49
■ Gegeben
□ n Frauen (Attribute in Schema A) und m Männer (Attribute in
Schema B)
■ Monogamie
□ Je eine Frau kann nur mit je einem Mann verheiratet sein (nur
1:1 matches)
■ Jede Frau hat eine Rangliste der Männer und umgekehrt
□ Bei Schema Matching
◊ Attribut-Ähnlichkeit gemäß eines der vorigen Verfahren
◊ Rangliste ist (normalerweise) symmetrisch
■ Gesucht: Paarung (globales Matching), so dass niemals gilt
□ f1 heiratet m1, f2 heiratet m2,
□ aber f1 bevorzugt m2 und m2 bevorzugt f1 (Instabil!)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
50
Männer (1-4)
1: B, D, A, C
2: C, A, D, B
3: B, C, A, D
4: D, A, C, B
Frauen (A-D)
A: 2, 1, 4, 3
B: 4, 3, 1, 2
C: 1, 4, 3, 2
D: 2, 1, 4, 3
Beispiel aus: David Toth,
"The Stable Marriage Problem: More Marital Happiness than Reality TV"
April 25, 2003, Connecticut College, New London, CT, USA,
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
51
Männer (1-4)
Frauen (A-D)
1: B, D, A, C
A: 2, 1, 4, 3
2: C, A, D, B
B: 4, 3, 1, 2
3: B, C, A, D
C: 1, 4, 3, 2
4: D, A, C, B
D: 2, 1, 4, 3
1 stellt Antrag an B, sie willigt ein: (1, B)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
52
Männer (1-4)
Frauen (A-D)
1: B, D, A, C
A: 2, 1, 4, 3
2: C, A, D, B
B: 4, 3, 1, 2
3: B, C, A, D
C: 1, 4, 3, 2
4: D, A, C, B
D: 2, 1, 4, 3
1 stellt Antrag an B, sie willigt ein: (1, B)
2 stellt Antrag an C, sie willigt ein: (1, B) (2, C)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
53
Männer (1-4)
Frauen (A-D)
1: B, D, A, C
A: 2, 1, 4, 3
2: C, A, D, B
B: 4, 3, 1, 2
3: B, C, A, D
C: 1, 4, 3, 2
4: D, A, C, B
D: 2, 1, 4, 3
1 stellt Antrag an B, sie willigt ein: (1, B)
2 stellt Antrag an C, sie willigt ein: (1, B) (2, C)
3 stellt Antrag an B, sie willigt ein & verlässt 1: (2, C) (3, B)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
54
Männer (1-4)
Frauen (A-D)
1: B, D, A, C
A: 2, 1, 4, 3
2: C, A, D, B
B: 4, 3, 1, 2
3: B, C, A, D
C: 1, 4, 3, 2
4: D, A, C, B
D: 2, 1, 4, 3
1 stellt Antrag an B, sie willigt ein : (1, B)
2 stellt Antrag an C, sie willigt ein : (1, B) (2, C)
3 stellt Antrag an B, sie willigt ein & verlässt 1: (2, C) (3, B)
1 stellt Antrag an D, sie willigt ein : (1, D) (2, C) (3, B)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
55
1
2
3
1
4
Männer (1-4)
Frauen (A-D)
1:
2:
3:
4:
A: 2, 1, 4, 3
B: 4, 3, 1, 2
C: 1, 4, 3, 2
D: 2, 1, 4, 3
B, D, A, C
C, A, D, B
B, C, A, D
D, A, C, B
stellt Antrag an B, sie willigt ein : (1, B)
stellt Antrag an C, sie willigt ein : (1, B) (2, C)
stellt Antrag an B, sie willigt ein & verlässt 1: (2, C) (3, B)
stellt Antrag an D, sie willigt ein : (1, D) (2, C) (3, B)
stellt Antrag an D, sie lehnt ab : (1, D) (2, C) (3, B)
Felix Naumann | Informationsintegration | Sommer 2012
Stable Marriage – Beispiel
56
1
2
3
1
4
4
Männer (1-4)
Frauen (A-D)
1:
2:
3:
4:
A: 2, 1, 4, 3
B: 4, 3, 1, 2
C: 1, 4, 3, 2
D: 2, 1, 4, 3
B, D, A, C
C, A, D, B
B, C, A, D
D, A, C, B
stellt Antrag an B, sie willigt ein : (1, B)
stellt Antrag an C, sie willigt ein : (1, B) (2, C)
stellt Antrag an B, sie willigt ein & verlässt 1: (2, C) (3, B)
stellt Antrag an D, sie willigt ein : (1, D) (2, C) (3, B)
stellt Antrag an D, sie lehnt ab: (1, D) (2, C) (3, B)
stellt Antrag an A, sie willigt ein : (1, D) (2, C) (3, B) (4, A)
Felix Naumann | Informationsintegration | Sommer 2012
Maximum Weighted Matching
57
■ Alternative zu Stable Marriage
■ Suche Matching mit maximalem Gewicht in bipartiten Graphen
□ Bipartit:
◊ Knoten in zwei Klassen (Quelle & Ziel)
◊ Kanten nur zwischen Knoten verschiedener Klassen
(Korrespondenzen)
□ Maximiere Summe der einzelnen Gewichte/Ähnlichkeiten
■ O(n³) („Ungarische Methode“)
Felix Naumann | Informationsintegration | Sommer 2012
Zusammenfassung – Schema Matching
58
■ Schema Matching basierend auf
□ Namen der Schemaelemente (label-based)
□ Darunterliegende Daten (instance-based)
□ Struktur des Schemas (structure-based)
□ Mischformen, Meta-Matcher
■ High-order Matching
■ n:m Matching
■ Globales Matching
Felix Naumann | Informationsintegration | Sommer 2012
Überblick
59
■ Motivation
■ Schema Mapping
■ Schema Matching
■ Mapping Interpretation
□ Aus [FHP+02] und
VLDB 2002 Vortragsfolien
■ Mapping Werkzeuge
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Das Problem
60
■ 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.
Felix Naumann | Informationsintegration | Sommer 2012
Relationale vs. XML Schemata
61
■ Relationale Schemata
□ Flach
■ XML Schemata
□ Flach oder geschachtelt
■ NF2
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
62
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
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
Quelle für Beispiel: [FHP+02]
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
63
haushaltDB
stadtHaushalt
stadt: string
organisationen
firmaID: integer
org
name: string
orgID: integer
stadt: string
orgname: string
spenden
einnahmen
spende
einnahme
firmaID: integer
spendeID: integer
spendeID: integer
proj: string
betrag: decimal
buchungID: integer
projekt: string
buchungen
spender: string
buchung
Interpretation:
buchungID: integer
- Erzeuge für jede firma in spendenDB.
datum: date
menge: decimal
eine org in haushaltDB.
spendenDB
firmen
firma
- orgID muss „erfunden“ werden
- stadt muss „erfunden“ werden
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
64
haushaltDB
stadtHaushalt
stadt: string
organisationen
firmaID: integer
org
name: string
orgID: integer
stadt: string
orgname: string
spenden
einnahmen
spende
einnahme
firmaID: integer
spendeID: integer
spendeID: integer
proj: string
betrag: decimal
buchungID: integer
projekt: string
buchungen
spender: string
buchung
Interpretation:
buchungID: integer
- Erzeuge für jede firma in spendenDB.
datum: date
menge: decimal
eine org in haushaltDB.
spendenDB
firmen
firma
- stadt muss „erfunden“ werden
Felix Naumann | Informationsintegration | Sommer 2012
„Erfinden“ von Werten
65
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!
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
66
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
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
Interpretation:
- Erzeuge für jede spendenDB.firma.stadt
ein haushaltDB.stadthaushalt mit gleichem Namen.
- Gruppiere jede firma unter den entsprechenden
stadtHaushalt.
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
67
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.
- 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!
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
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Beispiel
68
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
Weitere Interpretation:
&
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
Felix Naumann | Informationsintegration | Sommer 2012
Mapping – Algorithmus
69
Drei Schritte
1.
2.
3.
haushaltDB
stadtHaushalt
stadt: string
Schema Assoziationen
organisationen
firmaID: integer
org
name: string
Entdeckung von interorgID: integer
stadt: string
Schema logischen
orgname: string
spenden
einnahmen
Mappings
spende
einnahme
firmaID: integer
Anfrage-erzeugung
spendeID: integer
spendeID: integer
proj: string
betrag: decimal
buchungID: integer
projekt: string
buchungen
spender: string
buchung
buchungID: integer
datum: date
menge: decimal
spendenDB
Entdeckung von intra- firmen
firma
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von Assoziationen
70
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)
Quellschema S
Assoziationen des
Quellschemas
Felix Naumann | Informationsintegration | Sommer 2012
Ziel- schema
T
Assoziationen des
Zielschemas
Quelle: [FHP+02]
Entdeckung von Assoziationen
71
Start: Alle „primären“ Pfade (primary paths)
■ Assoziationen im Schema ohne
haushaltDB
Integritätsbedingungen
stadtHaushalt
stadt: string
Relationale Schemas
organisationen
■ Jede Relation entspricht einem primären
org
Pfad
orgID: integer
Geschachtelte Schemas
orgname: string
einnahmen
■ Attribute einer Ebene
einnahme
■ Attribute geschachtelter Ebenen
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von Assoziationen
72
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
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von Assoziationen
73
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.
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
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von logischen Mappings
74
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)
Quellschema S
Element - Element Korrespondenzen
Ziel- schema
T
Logische Mappings
Assoziationen des
Quellschemas
Felix Naumann | Informationsintegration | Sommer 2012
Assoziationen des
Zielschemas
Entdeckung von logischen Mappings
75
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
&
&
&
&
&
&
&
&
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
Ausgehende Korrespondenzen:
Finden alle ein Ziel in der Kombination?
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von logischen Mappings
76
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
&
&
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
&
Eingehende Korrespondenzen:
Stammen sie alle aus Assoziationen der Kombination?
Felix Naumann | Informationsintegration | Sommer 2012
Entdeckung von logischen Mappings
77
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
&
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
&
Felix Naumann | Informationsintegration | Sommer 2012
Input des Nutzers bzw.
Domänenexperten
78
spendenDB
2. firmen
Nutzer wählt logische
Mappings
firma(Interpretationen)
firmaID
aus : integer
name: string
stadt: string
spenden
spende
firmaID: integer
spendeID: integer
betrag: decimal
projekt: string
spender: string
&
haushaltDB
1. Nutzer „malt“
stadtHaushalt
stadt: stringKorrespondenzen
organisationen
org
orgID: integer
orgname: string
einnahmen
einnahme
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
&
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen
79
Schritt 3
■ Erzeuge für jedes (ausgewählte) logische Mapping eine Anfrage
□ Auswahl und verknüpfen der entsprechenden Quelldaten
□ Generierung der entsprechenden Zieldaten
Quellschema S
Element - Element Korrespondenzen
Anfrage:
- entschachteln
- joinen
Logisches Mapping
Assoziationen des
Quellschemas
Felix Naumann | Informationsintegration | Sommer 2012
Ziel- schema
T
Anfrage (target):
- schachteln
- splitten
- Werte erfinden
Assoziationen des
Zielschemas
Erzeugung der Anfragen
80
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.
Felix Naumann | Informationsintegration | Sommer 2012
Erfinden neuer Werte (Wdh.)
81
■ 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
spendenDB
spenden
spende
firmaID: integer
spendeID: integer
projekt: string
betrag: decimal
spender: string
buchungID = Sk(betrag)
haushaltDB
einnahmen
einnahme
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
Felix Naumann | Informationsintegration | Sommer 2012
Erfinden neuer Werte
82
■ 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
buchungID =
Sk(spendeID,projekt,betrag)
□ Trick wie gehabt: Gleiche Funktion haushaltDB
einnahmen
für Schlüssel und Fremdschlüssel
einnahme
spendenDB
spenden
spende
firmaID: integer
spendeID: integer
projekt: string
betrag: decimal
spender: string
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
Felix Naumann | Informationsintegration | Sommer 2012
Erfinden neuer Werte
83
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)
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
Frage: Warum nicht Sk(betrag,spendeID,projekt)?
Felix Naumann | Informationsintegration | Sommer 2012
Erfinden neuer Werte
84
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)
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
Jetzt erst recht: Warum nicht Sk(betrag,projekt,name,firmaID)?
Felix Naumann | Informationsintegration | Sommer 2012
Erfinden neuer Werte
85
Gegenfrage: Warum nicht gleiche ALLE ungemappten Werte?
Vier Antworten (von Lucian Popa)
1. Prinzipiell ginge das, aber
2. Unerklärliche „Duplikate“ könnten entstehen
□ 2 Spenden, mit gleichem Betrag und gleichem Projekt aber von
unterschiedlichen Firmen
3. firmenID könnte für Nutzer 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 unerklärlich für den Nutzer.
4. Minimalität
□ Beide Varianten sind in
Ordnung, aber eine ist kleiner.
Felix Naumann | Informationsintegration | Sommer 2012
Gruppierung
86
■ 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
(gemapten) 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.
spendenDB
firmen
firma
firmaID: integer
name: string
stadt: string
land: string
haushaltDB
land: string
stadtHaushalt
stadt: string
organisationen
org
orgID: integer
orgname: string
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen
87
■ Implementationsspezifisch
■ Abhängig von Datenmodell
□ Relational → Relational: SQL
□ Relational → XML: SQL/XML
◊ 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
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen
88
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 einnahmen
spendenDB
spenden
spende
firmaID: integer
spendeID: integer
projekt: string
betrag: decimal
spender: string
haushaltDB
einnahmen
einnahme
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen
89
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
spendenDB
spenden
spende
firmaID: integer
spendeID: integer
projekt: string
betrag: decimal
spender: string
haushaltDB
einnahmen
einnahme
spendeID: integer
proj: string
buchungID: integer
buchungen
buchung
buchungID: integer
datum: date
menge: decimal
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen – XQuery
90
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
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>
Felix Naumann | Informationsintegration | Sommer 2012
Erzeugung der Anfragen – SQL
91
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
-- CREATE VIEW einnahme AS
SELECT
x0.spendeID AS spendeID,
x0.projekt AS proj,
RTRIM('Sk32(` CHAR(x0.betrag) || ',' || (CHAR(x0.spendeID) || ',' || CHAR(x0.projekt) || ')') AS buchungID
FROM
spendenDB.spende x0
------------------------------------------------------ CREATE VIEW buchung AS
SELECT
RTRIM('Sk32(' || CHAR(x0.betrag) || ',' || CHAR(x0.spendeID) || ',' || CHAR(x0.projekt) || ')') AS buchungID,
x0.betrag AS menge
FROM
spendenDB.spende x0
Felix Naumann | Informationsintegration | Sommer 2012
92
Felix Naumann | Informationsintegration | Sommer 2012
Vorschau:
Global as View / Local as View
93
Global as View (GaV)
■ Relationen des globalen Schemas
werden als Sichten auf die lokalen
Schemas der Quellen ausgedrückt.
Local as View (LaV)
■ Relationen der Schemas der Quellen
werden als Sichten auf das globale
Schema ausgedrückt.
Felix Naumann | Informationsintegration | Sommer 2012
Einschub: Sichten im relationalen Modell
94
■ Relationen aus CREATE TABLE Ausdrücken existieren tatsächlich
(materialisiert, physisch) in der Datenbank.
■ Die Daten aus Sichten (views) existieren nur virtuell.
□ Sichten entsprechen Anfragen, denen man einen Namen gibt.
Sie wirken wie physische Relationen.
■ CREATE VIEW ParamountFilme AS
SELECT Titel, Jahr
FROM Filme
WHERE StudioName = ‚Paramount‘;
■ Semantik
□ Bei jeder Anfrage an die Sicht wird die SQL Anfrage der Sicht
ausgeführt.
□ Die ursprüngliche Anfrage verwendet das Ergebnis als Relation.
Felix Naumann | Informationsintegration | Sommer 2012
Anfrageplanung mit Sichten
95
Baumdarstellung von Anfragen
■ Blätter repräsentieren Relationen
□ Basisrelationen
□ Sichten
■ Ersetzung der Sichten durch die Sichtdefinition
□ Als Subanfrage
Q
V
Q
W
Def. V
Felix Naumann | Informationsintegration | Sommer 2012
Def. W
Anfragen an Sichten
96
■ CREATE VIEW ParamountFilme AS
SELECT Titel, Jahr
FROM Filme
WHERE StudioName = ‚Paramount‘;
■ SELECT Titel
FROM ParamountFilme
WHERE Jahr = 1979;
■ Umwandlung der ursprünglichen Anfrage in eine Anfrage an
Basisrelationen
□ SELECT Titel
FROM Filme
WHERE StudioName = ‚Paramount‘ AND Jahr = 1979;
□ Übersetzung durch DBMS
■ Anfrage zugleich an Sichten und Basisrelationen möglich
□ SELECT DISTINCT Schauspieler
FROM ParamountFilme, spielt_in
WHERE Titel = FilmTitel AND Jahr = FilmJahr;
Felix Naumann | Informationsintegration | Sommer 2012
Anfragen an Sichten
97
■ Filme(Titel, Jahr, Länge, inFarbe, StudioName, ProduzentID)
■ Manager(Name, Adresse, ManagerID, Gehalt)
■ CREATE VIEW FilmeProduzenten AS
SELECT Titel, Name
FROM Filme, Manager
WHERE ProduzentID = ManagerID;
■ Anfrage
□ SELECT Name
FROM FilmeProduzenten
WHERE Titel = ‚Gone with the Wind‘
■ Übersetzung
□ SELECT Name
FROM Filme, Manager
WHERE ProduzentID = ManagerID
AND Titel = ‚Gone with the Wind‘;
Felix Naumann | Informationsintegration | Sommer 2012
Einbettung in GaV/LaV
98
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
Felix Naumann | Informationsintegration | Sommer 2012
Schematische Heterogenität
99
Struktur
■ Modellierung
□ Relation vs. Attribut
□ Attribut vs. Wert
□ Relation vs. Wert
Higher-order
Mappings
■ Benennung
□ Relationen
□ Attribute
■ Normalisiert vs. Denormalisiert
■ Geschachtelt vs. Fremdschlüssel
■ Geschachtelt vs. Flach
Felix Naumann | Informationsintegration | Sommer 2012
bisher
High-order Mappings
100
Männer( Id, Vorname, Nachname)
Frauen( Id, Vorname, Nachname)
Relation vs. Wert
Relation vs. Attribut
Person( Id, Vorname,
Nachname,männlich,
weiblich)
Person( Id, Vorname,
Nachname, Geschlecht)
Felix Naumann | Informationsintegration | Sommer 2012
Attribut vs. Wert
High-order Mappings
101
Männer
`m´
Person
Vorname
Nachname
Frauen
Vorname
Nachname
`w´
Vorname
Nachname
Geschlecht
Felix Naumann | Informationsintegration | Sommer 2012
High-order Mappings
102
Person
Vorname
Nachname
Geschlecht
= `m´
Männer
Vorname
Nachname
= `w´
Frauen
Felix Naumann | Informationsintegration | Sommer 2012
Vorname
Nachname
Zusammenfassung
103
haushaltDB
stadtHaushalt
stadt: string
Entdeckung von
organisationen
firmaID: integer
org
Schema Assoziationen
name: string
orgID: integer
stadt: string
Entdeckung von inter- spenden
orgname: string
einnahmen
spende
Schema logischen
einnahme
firmaID: integer
Mappings
spendeID: integer
spendeID: integer
proj: string
betrag: decimal
Anfrage-erzeugung
buchungID: integer
projekt: string
buchungen
spender: string
buchung
buchungID: integer
datum: date
menge: decimal
Drei Schritte
1.
2.
3.
spendenDB
firmen
intra- firma
Felix Naumann | Informationsintegration | Sommer 2012
Literatur – Schema Mapping
104
■ [FHP+02] Ron Fagin, Mauricio Hernandez, Lucian Popa, Renee
Miller, and Yannis Velegrakis, Translating Web Data, VLDB 2002,
Hong Kong, China.
■ 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/
Felix Naumann | Informationsintegration | Sommer 2012
Literatur – Schema Matching
105
■ Artikel mit der Klassifikation:
□ [RB01] Erhard Rahm and Philip Bernstein, A survey of
approaches to automatic schema matching, VLDB Journal
10(4), 2001.
■ Online: http://www.ontologymatching.org/ plus Buch
■ Spezielle Algorithmen
□ [MGMR02] Sergey Melnik, Hector Garcia-Molina, Erhard Rahm:
Similarity Flooding: A Versatile Graph Matching Algorithm and
Its Application to Schema Matching. ICDE 2002: 117-128
□ [BN05] Schema Matching using Duplicates
Alexander Bilke and Felix Naumann: Proceedings of the
International Conference on Data Engineering (ICDE 05)
Tokyo, Japan.
□ uvam.
Felix Naumann | Informationsintegration | Sommer 2012
Herunterladen