Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Schema Mapping – Felix Naumann

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

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

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

5 Felix Naumann, VL Informationsintegration, WS 05/065 Wdh: Virtuelle Integration Datenfluss Anfragebearbeitung Entwicklung Top-down Schema Quelle 1 Quelle 2Quelle 3 Mediator Anwendung 1Anwendung 2 Wrapper 2Wrapper 3Wrapper 1

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

7 Felix Naumann, VL Informationsintegration, WS 05/067 Wdh: Bottom-up Entwicklung Wesentliche Merkmale Vorhandene lokale Schemata ALLE Daten sollen integriert werden Deshalb Schema- integration

8 Felix Naumann, VL Informationsintegration, WS 05/068 Wdh: Top-down Entwicklung Wesentliche Merkmale Vorhandenes globales Schema Passende lokale Systeme werden gesucht Deshalb LaV und Schema Mapping

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

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

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

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

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

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

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

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

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

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

19 Felix Naumann, VL Informationsintegration, WS 05/0619 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 …

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

21 Felix Naumann, VL Informationsintegration, WS 05/0621 Schema Mapping im Kontext 1. Schema Matching & Korrespondenzen 2. Schema Mapping 3. Mapping Interpretation 4. Daten- transformation

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

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

24 Felix Naumann, VL Informationsintegration, WS 05/0624 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 FROMARTICLE, AUTHOR WHEREARTICLE.artPK = AUTHOR.artFK

25 Felix Naumann, VL Informationsintegration, WS 05/0625 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 FROMARTICLE LEFT OUTER JOIN AUTHOR ONARTICLE.artPK = AUTHOR.artFK Gilt Schlüssel- eigenschaft?

26 Felix Naumann, VL Informationsintegration, WS 05/0626 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 pages FROM PUBLICATION

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

28 Felix Naumann, VL Informationsintegration, WS 05/0628 Wdh: Schematische Heterogenität – Lösungen ARTICLE artPK title pages AUTHOR name PUBLICATION pubID title author LET $doc0 := document(articles.xml") RETURN { distinct-values ( FOR $x0 IN $doc0/authorDB/ARTICLE, $x1 IN $x0/AUTHOR RETURN { $x0/artPK/text() } { $x0/title/text() } { $x1/name/text() } ) }

29 Felix Naumann, VL Informationsintegration, WS 05/0629 LET $doc0 := document(publication.xml") RETURN { distinct-values ( FOR $x0 IN $doc0/dblp/publication RETURN { $x0/title/text() } { distinct-values ( FOR $x0L1 IN $doc0/dblp/publication WHERE $x0/title/text() = $x0L1/title/text() RETURN { $x0L1/author/text() } )} Wdh: Schematische Heterogenität – Lösungen ARTICLE title AUTHOR name PUBLICATION title date author

30 Felix Naumann, VL Informationsintegration, WS 05/0630

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

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

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

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

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

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

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

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

39 Felix Naumann, VL Informationsintegration, WS 05/0639 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. - 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!

40 Felix Naumann, VL Informationsintegration, WS 05/0640 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: &

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

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

43 Felix Naumann, VL Informationsintegration, WS 05/0643 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 Teil eines Schlüssel oder UNIQUE-Constraints Teil eines Fremd- schlüssels erforderlich mit/ohne Vorgabewert nicht erforderlich Klassifikation von Mapping Situationen Folie: Frank Legler nicht hier

44 Felix Naumann, VL Informationsintegration, WS 05/0644 Mapping Situationen, die einzelne Korrespondenzen betreffen 1:1 Korrespondenzen n:1 Korrespondenzenm:n Korrespondenzen1:n Korrespondenzen Unterscheidungen je nach Zusammenhang der Quell- und/oder Zielstrukturen (nicht untersucht) Quelle 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 Ziel Attribut Element Klassifikation von Mapping Situationen Folie: Frank Legler

45 Felix Naumann, VL Informationsintegration, WS 05/0645 Mapping Situationen, die mehr als eine Korrespondenz betreffen 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

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

47 Felix Naumann, VL Informationsintegration, WS 05/0647 Mapping – Algorithmus Drei Schritte 1. 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

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

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

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

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

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

53 Felix Naumann, VL Informationsintegration, WS 05/0653 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?

54 Felix Naumann, VL Informationsintegration, WS 05/0654 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?

55 Felix Naumann, VL Informationsintegration, WS 05/0655 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 & &

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

57 Felix Naumann, VL Informationsintegration, WS 05/0657 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 Mapping Anfrage: - entschachteln - joinen Anfrage (target): - schachteln - splitten - Werte erfinden Assoziationen des Quellschemas Assoziationen des Zielschemas Quell- schema S Ziel- schema T Element - Element Korrespondenzen

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

59 Felix Naumann, VL Informationsintegration, WS 05/0659 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)

60 Felix Naumann, VL Informationsintegration, WS 05/0660 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)

61 Felix Naumann, VL Informationsintegration, WS 05/0661 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)?

62 Felix Naumann, VL Informationsintegration, WS 05/0662 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)?

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

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

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

66 Felix Naumann, VL Informationsintegration, WS 05/0666 Erzeugung der Anfragen Erzeugung proprietärer Regeln in Clio for x in spenden let a = x.spende.spendeID, b = x.spende.projekt return > in einnahmen 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

67 Felix Naumann, VL Informationsintegration, WS 05/0667 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 > in einnahmen, > 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

68 Felix Naumann, VL Informationsintegration, WS 05/0668 Erzeugung der Anfragen – XQuery for x in spenden let a = x.spende.spendeID, b = x.spende.projekt, c = x.spende.betrag return > in einnahmen, > in buchungen LET $doc0 := document("input XML file goes here") RETURN { distinct-values ( FOR $x0 IN $doc0/spendenDB/spende RETURN { $x0/spendeID/text() } { $x0/projekt/text() } { "Sk32(", $x0/betrag/text(), ", ", $x0/spendeID/text(), ", ", $x0/projekt/text(), ")" } ) } { distinct-values ( FOR $x0 IN $doc0/spendenDB/spende RETURN { "Sk32(", $x0/betrag/text(), ", ", $x0/spendeID/text(), ", ", $x0/projekt/text(), ")" } { $x0/betrag/text() } ) }

69 Felix Naumann, VL Informationsintegration, WS 05/0669 Erzeugung der Anfragen – SQL for x in spenden let a = x.spende.spendeID, b = x.spende.projekt, c = x.spende.betrag return > in einnahmen, > 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 x 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

70 Felix Naumann, VL Informationsintegration, WS 05/0670

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

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

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

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

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

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

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

78 Felix Naumann, VL Informationsintegration, WS 05/0678 Zusammenfassung Drei Schritte 1. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

93 Felix Naumann, VL Informationsintegration, WS 05/0693 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), 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: Ronald FaginPhokion G. KolaitisRenée J. MillerICDT 2003 Clio: oder


Herunterladen ppt "Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen