Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Schema Mapping

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Schema Mapping"—  Präsentation transkript:

1 Informationsintegration Schema Mapping
Felix Naumann

2 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation (Transformation) Schema Matching (Ausblick) Demo Felix Naumann, VL Informationsintegration, WS 05/06

3 Felix Naumann, VL Informationsintegration, WS 05/06
10,000 feet Einführung in die Informationsintegration Szenarien der Informationsintegration Verteilung und Autonomie Heterogenität Materialisierte und virtuelle Integration Klassifikation integrierter Informationssysteme und 5-Schichten Architektur Mediator/Wrapper-Architektur Global-as-View und Lokal-as-View Modellierung Global-as-View Anfragebearbeitung SchemaSQL Verteilte Anfragebearbeitung Dynamische Programmierung in verteilten Datenbanken Top-N Anfragen Problemstellung Architekturen Modellierung Optimierung Felix Naumann, VL Informationsintegration, WS 05/06

4 Felix Naumann, VL Informationsintegration, WS 05/06
10,000 feet Schema Mapping Schema Matching Containment & Local-as-View Anfragebearbeitung Bucket Algorithmus Peer-Data-Management Systeme (PDMS) Informationsqualität Duplikaterkennung ETL & Data Lineage Datenfusion - Union & Co. Hidden Web Semantic Web Forschungsprojekte  - TSIMMIS, Garlic, Revere, etc Data Streams Mapping Anfragen Konflikte Systeme Felix Naumann, VL Informationsintegration, WS 05/06

5 Wdh: Virtuelle Integration
Datenfluss Anfragebearbeitung Entwicklung Top-down Schema Anwendung 1 Anwendung 2 Mediator Wrapper 1 Wrapper 2 Wrapper 3 Quelle 1 Quelle 2 Quelle 3 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 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 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 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 Felix Naumann, VL Informationsintegration, WS 05/06

10 Verwendung von Schema Mappings
Datentransformation Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

11 Verwendung von Schema Mappings
Schemaintegration Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

12 Verwendung von Schema Mappings
Schemaevolution Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

13 Verwendung von Schema Mappings
Datentransformation Materialisierte Integration Virtuelle Integration Anfrage Felix Naumann, VL Informationsintegration, WS 05/06

14 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation (Transformation) Schema Matching (Ausblick) Demo Aus [FHP+02] und aus VLDB 2002 Vortragsfolien 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 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 Felix Naumann, VL Informationsintegration, WS 05/06

17 Felix Naumann, VL Informationsintegration, WS 05/06
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 Felix Naumann, VL Informationsintegration, WS 05/06

18 Felix Naumann, VL Informationsintegration, WS 05/06
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 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 Felix Naumann, VL Informationsintegration, WS 05/06

20 Schema Mapping im Kontext
Möchte Daten aus S Versteht/Kennt T Versteht nicht immer S (High-level) Mapping Quell- schema S Ziel- schema T Mapping Compiler “entspricht” “entspricht” Daten (Low-level) Logisches Mapping (Transformationsprogramm oder Anfrage) Quelle: [FHP+02] Felix Naumann, VL Informationsintegration, WS 05/06

21 Schema Mapping im Kontext
Schema Matching & Korrespondenzen Schema Mapping Mapping Interpretation Daten-transformation 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 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 author FROM ARTICLE UNION SELECT null AS pubID null AS title null AS date name AS author FROM AUTHOR 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 pubID title AS title null AS date name AS author FROM ARTICLE, AUTHOR WHERE ARTICLE.artPK = AUTHOR.artFK 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 Gilt Schlüssel-eigenschaft? SELECT artPK AS pubID title AS title null AS date name AS author FROM ARTICLE LEFT OUTER JOIN AUTHOR ON ARTICLE.artPK = AUTHOR.artFK Felix Naumann, VL Informationsintegration, WS 05/06

26 Wdh: Schematische Heterogenität – Lösungen
PUBLICATION title date author ARTICLE artPK title pages AUTHOR artFK name SELECT SK(title) AS artPK title AS title null AS pages FROM PUBLICATION SELECT SK(title) AS artFK author AS name FROM PUBLICATION 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 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> Felix Naumann, VL Informationsintegration, WS 05/06

29 Wdh: Schematische Heterogenität – Lösungen
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() <AUTHOR> <name> { $x0L1/author/text() } </name> </AUTHOR> )} </ARTICLE> ) } </articles> Felix Naumann, VL Informationsintegration, WS 05/06

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

31 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation Algorithmus (Transformation) Schema Matching (Ausblick) Demo Aus [FHP+02] und aus VLDB 2002 Vortragsfolien Felix Naumann, VL Informationsintegration, WS 05/06

32 Felix Naumann, VL Informationsintegration, WS 05/06
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. Felix Naumann, VL Informationsintegration, WS 05/06

33 Relationale vs. XML Schemata
Relationale Schemata Flach XML Schemata Flach oder geschachtelt NF2 Felix Naumann, VL Informationsintegration, WS 05/06

34 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal Quelle für Beispiel: [FHP+02] Felix Naumann, VL Informationsintegration, WS 05/06

35 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal Interpretation: Erzeuge für jede firma in spendenDB. eine org in haushaltDB. orgID muss „erfunden“ werden stadt muss „erfunden“ werden Felix Naumann, VL Informationsintegration, WS 05/06

36 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal Interpretation: Erzeuge für jede firma in spendenDB. eine org in haushaltDB. stadt muss „erfunden“ werden Felix Naumann, VL Informationsintegration, WS 05/06

37 Felix Naumann, VL Informationsintegration, WS 05/06
„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! Felix Naumann, VL Informationsintegration, WS 05/06

38 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 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, VL Informationsintegration, WS 05/06

39 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal 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! Felix Naumann, VL Informationsintegration, WS 05/06

40 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Beispiel spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal Weitere Interpretation: & Felix Naumann, VL Informationsintegration, WS 05/06

41 Verschiedene Mapping Situationen
verschiedene Kardinalitäten verschiedene Datentypen FK-Beziehung vs. Schachtelung Attribute nicht Teil des Mappings 2:1 Korrespondenz Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

42 Klassifikation von Mapping Situationen
Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

43 Klassifikation von Mapping Situationen
infolge fehlender Korrespondenzen Attribut des Quellschemas nicht Teil des Mappings Attribut des Zielschemas nicht Teil des Mappings Element des Quell- oder Zielschemas nicht Teil des Mappings nicht hier Teil eines Schlüssel oder UNIQUE-Constraints Teil eines Fremd- schlüssels erforderlich mit/ohne Vorgabewert nicht erforderlich Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

44 Klassifikation von Mapping Situationen
die einzelne Korrespondenzen betreffen (nicht untersucht) 1:1 Korrespondenzen n:1 Korrespondenzen m:n Korrespondenzen 1:n Korrespondenzen Unterscheidungen je nach Zusammenhang der Quell- und/oder Zielstrukturen Quelle Attribut Element Ziel Attribut Element (nur für Attribute) Situationen in Abhängigkeit von der Kardinalität Transformationsfunktion und/oder Filter vorhanden Situationen in Abhängigkeit vom Datentyp Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

45 Klassifikation von Mapping Situationen
Mapping Situationen, die mehr als eine Korrespondenz betreffen nicht hier spezielle Situationen mit Choice-Gruppierungen unterschiedliche Strukturen in Quelle und Ziel Zusammenhang der Quellstrukturen struktureller Zusammenhang Fremdschlüsselbasierter Zusammenhang kein (offensichtlicher) Zusammenhang der Zielstrukturen struktureller Zusammenhang Fremdschlüsselbasierter Zusammenhang kein (offensichtlicher) alle Kombinationen Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

46 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation Algorithmus (Transformation) Schema Matching (Ausblick) Demo Aus [FHP+02] und aus VLDB 2002 Vortragsfolien Felix Naumann, VL Informationsintegration, WS 05/06

47 Felix Naumann, VL Informationsintegration, WS 05/06
Mapping – Algorithmus Drei Schritte Entdeckung von intra-Schema Assoziationen Entdeckung von inter-Schema logischen Mappings Anfrage-erzeugung spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal 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] 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 datum: date menge: decimal 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 datum: date menge: decimal Felix Naumann, VL Informationsintegration, WS 05/06

51 Entdeckung von Assoziationen
spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal Spielen noch keine Rolle. 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 Element - Element Korrespondenzen Ziel- schema T Logische Mappings Assoziationen des Quellschemas Assoziationen des Zielschemas Felix Naumann, VL Informationsintegration, WS 05/06

53 Entdeckung von logischen Mappings
spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal & & & & & & Ausgehende Korrespondenzen: Finden alle ein Ziel in der Kombination? & & Felix Naumann, VL Informationsintegration, WS 05/06

54 Entdeckung von logischen Mappings
spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal & & & Eingehende Korrespondenzen: Stammen sie alle aus Assoziationen der Kombination? Felix Naumann, VL Informationsintegration, WS 05/06

55 Entdeckung von logischen Mappings
spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal & & Felix Naumann, VL Informationsintegration, WS 05/06

56 Input des Nutzers bzw. Domänenexperten
2. Nutzer wählt logische Mappings (Interpretationen) aus 1. Nutzer „malt“ Korrespondenzen spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal & & 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 Quell- schema S Element - Element Korrespondenzen Ziel- schema T Anfrage (target): schachteln splitten Werte erfinden Anfrage: entschachteln joinen Logisches Mapping Assoziationen des Quellschemas Assoziationen des Zielschemas 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. Felix Naumann, VL Informationsintegration, WS 05/06

59 Felix Naumann, VL Informationsintegration, WS 05/06
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 buchungID = Sk(betrag) haushaltDB einnahmen einnahme spendeID: integer proj: string buchungID: integer buchungen buchung datum: date menge: decimal spendenDB spenden spende firmaID: integer spendeID: integer projekt: string betrag: decimal spender: string Felix Naumann, VL Informationsintegration, WS 05/06

60 Felix Naumann, VL Informationsintegration, WS 05/06
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 buchungID = Sk(spendeID,projekt,betrag) haushaltDB einnahmen einnahme spendeID: integer proj: string buchungID: integer buchungen buchung datum: date menge: decimal spendenDB spenden spende firmaID: integer spendeID: integer projekt: string betrag: decimal spender: string Felix Naumann, VL Informationsintegration, WS 05/06

61 Felix Naumann, VL Informationsintegration, WS 05/06
Erfinden neuer Werte spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal buchungID = Sk(betrag, projekt) Frage: Warum nicht Sk(betrag,spendeID,firmaID)? Felix Naumann, VL Informationsintegration, WS 05/06

62 Felix Naumann, VL Informationsintegration, WS 05/06
Erfinden neuer Werte spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende 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 datum: date menge: decimal buchungID = Sk(betrag,projekt,name) Jetzt erst recht: Warum nicht Sk(betrag,projekt,name,firmaID)? Felix Naumann, VL Informationsintegration, WS 05/06

63 Felix Naumann, VL Informationsintegration, WS 05/06
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 Felix Naumann, VL Informationsintegration, WS 05/06

64 Felix Naumann, VL Informationsintegration, WS 05/06
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 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 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 einnahmen haushaltDB einnahmen einnahme spendeID: integer proj: string buchungID: integer buchungen buchung datum: date menge: decimal spendenDB spenden spende firmaID: integer spendeID: integer projekt: string betrag: decimal spender: string 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 datum: date menge: decimal spendenDB spenden spende firmaID: integer spendeID: integer projekt: string betrag: decimal spender: string Felix Naumann, VL Informationsintegration, WS 05/06

68 Erzeugung der Anfragen – XQuery
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> <menge> { $x0/betrag/text() } </menge> </buchung> ) } </haushaltDB> Felix Naumann, VL Informationsintegration, WS 05/06

69 Erzeugung der Anfragen – SQL
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 RTRIM('Sk32(' || CHAR(x0.betrag) || ',' || CHAR(x0.spendeID) || ',' || CHAR(x0.projekt) || ')') AS buchungID, x0.betrag AS menge Felix Naumann, VL Informationsintegration, WS 05/06

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

71 Felix Naumann, VL Informationsintegration, WS 05/06
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 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 Higher-order Mappings bisher Felix Naumann, VL Informationsintegration, WS 05/06

73 Felix Naumann, VL Informationsintegration, WS 05/06
High-order Mappings Männer( Id, Vorname, Nachname) Frauen( Id, Vorname, Nachname) Relation vs. Attribut Person( Id, Vorname, Nachname,männlich, weiblich) Relation vs. Wert Attribut vs. Wert Person( Id, Vorname, Nachname, Geschlecht) Felix Naumann, VL Informationsintegration, WS 05/06

74 Felix Naumann, VL Informationsintegration, WS 05/06
High-order Mappings Männer Vorname Nachname Frauen `m´ Person Vorname Nachname Geschlecht `w´ Felix Naumann, VL Informationsintegration, WS 05/06

75 Felix Naumann, VL Informationsintegration, WS 05/06
High-order Mappings Männer Vorname Nachname Frauen = `m´ Person Vorname Nachname Geschlecht = `w´ Felix Naumann, VL Informationsintegration, WS 05/06

76 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation Algorithmus (Transformation) Schema Matching (Ausblick) Demo Aus [FHP+02] und aus VLDB 2002 Vortragsfolien Felix Naumann, VL Informationsintegration, WS 05/06

77 Felix Naumann, VL Informationsintegration, WS 05/06
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] Felix Naumann, VL Informationsintegration, WS 05/06

78 Felix Naumann, VL Informationsintegration, WS 05/06
Zusammenfassung haushaltDB stadtHaushalt stadt: string organisationen org orgID: integer orgname: string einnahmen einnahme spendeID: integer proj: string buchungID: integer buchungen buchung datum: date menge: decimal Drei Schritte Entdeckung von intra-Schema Assoziationen Entdeckung von inter-Schema logischen Mappings Anfrage-erzeugung spendenDB firmen firma firmaID: integer name: string stadt: string spenden spende spendeID: integer betrag: decimal projekt: string spender: string Felix Naumann, VL Informationsintegration, WS 05/06

79 Felix Naumann, VL Informationsintegration, WS 05/06
Überblick Schema Mapping Überblick Schema Mapping (Matching) Mapping Interpretation Algorithmus (Transformation) Schema Matching (Ausblick) Demo Aus [FHP+02] und aus VLDB 2002 Vortragsfolien 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 Felix Naumann, VL Informationsintegration, WS 05/06

81 Felix Naumann, VL Informationsintegration, WS 05/06
Szenario - ExpenseDB Felix Naumann, VL Informationsintegration, WS 05/06

82 Felix Naumann, VL Informationsintegration, WS 05/06
Szenario - ExpenseDB Felix Naumann, VL Informationsintegration, WS 05/06

83 Szenario StatisticsDB
Zu WSAD Felix Naumann, VL Informationsintegration, WS 05/06

84 Felix Naumann, VL Informationsintegration, WS 05/06
Altovas MapForce Felix Naumann, VL Informationsintegration, WS 05/06

85 Felix Naumann, VL Informationsintegration, WS 05/06
Altovas MapForce Felix Naumann, VL Informationsintegration, WS 05/06

86 Felix Naumann, VL Informationsintegration, WS 05/06
Altovas MapForce Zusammenfassung Informationen gehen nicht verloren Joins werden nicht erkannt können manuell in GUI erstellt werden Gruppierung wird nicht erkannt Felix Naumann, VL Informationsintegration, WS 05/06

87 Felix Naumann, VL Informationsintegration, WS 05/06
IBMs Clio Felix Naumann, VL Informationsintegration, WS 05/06

88 Felix Naumann, VL Informationsintegration, WS 05/06
IBMs Clio Felix Naumann, VL Informationsintegration, WS 05/06

89 Felix Naumann, VL Informationsintegration, WS 05/06
IBMs Clio Zusammenfassung Joins werden erkannt Aber nicht erzwungen: Interpretation Gruppierung wird erkannt Felix Naumann, VL Informationsintegration, WS 05/06

90 Felix Naumann, VL Informationsintegration, WS 05/06
IBMs WSAD Felix Naumann, VL Informationsintegration, WS 05/06

91 Felix Naumann, VL Informationsintegration, WS 05/06
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 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. IBMs Clio Joins werden erkannt, aber nicht erzwungen: Interpretationen möglich Gruppierung wird erkannt. Felix Naumann, VL Informationsintegration, WS 05/06

93 Felix Naumann, VL Informationsintegration, WS 05/06
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: Clio: oder Felix Naumann, VL Informationsintegration, WS 05/06


Herunterladen ppt "Informationsintegration Schema Mapping"

Ähnliche Präsentationen


Google-Anzeigen