Informationsintegration Schema Mapping

Slides:



Advertisements
Ähnliche Präsentationen
Heterogene Informationssysteme
Advertisements

EDIS Workshop Datenintegration - Ulm A. Kroupa / N. Hirneisen Gültige Namen und ihre Eignung als Fixpunkte in taxonomischen Datenbankprojekten.
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Entwurf eines Bibliothekssystems
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Datenmodellierung Externe Phase Informationsstruktur
Informationsintegration Heterogenität Felix Naumann.
Informationsintegration Local-as-View: LaV
Informationsintegration Der Bucket-Algorithmus Felix Naumann.
VL Informationsintegration Verteilung, Autonomie und Heterogenität
Informationsintegration Dynamische Programmierung
Informationsintegration Einführung
Informationsintegration ETL & Datenherkunft (Lineage)
Informationsintegration Global-as-View: GaV
Informationsintegration Containment und Local-as-View Anfragebearbeitung Felix Naumann.
Informationsintegration Schema Matching Felix Naumann.
Informationsintegration SchemaSQL Felix Naumann.
DEPARTMENT FÜR INFORMATIK
Das Entity-Relationship-Modell
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
On a Buzzword: Hierachical Structure David Parnas.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
DOM (Document Object Model)
SQL als Abfragesprache
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Wissensbasierte Daten- interpretation für einen automatisierten und adaptiven Inhaltsintegrationsprozeß Lyndon J B Nixon
Magnus Niemann Strukturierung von Topic Maps.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Übung Datenbanksysteme SQL-Anfragen (2)
Explizite und editierbare Metainformationen für Software Muster.
Seminar: Verteilte Datenbanken
Informationsintegration Architekturen
Informationsintegration Mediator/Wrapper-Architektur & Peer-Data-Management Felix Naumann.
Informationsintegration Anwendungsszenarien
Informationsintegration Materialisierte vs. Virtuelle Integration
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Datenbankentwurfsprozess
Aufgabe Aufgabe: Einflussfaktoren: ?
2.2 Definition eines Datenbankschemas (SQL-DDL)
IGH – 05/061 Die drei Netze der. 2 Götz Gantner (1) Verwaltungsnetz R-232 Hausmeister 4 PC / 2 Drucker LZ 1PC / 1 Laser.
Die Grundterminologie
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Datenbanksysteme für hörer anderer Fachrichtungen
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
Relationales Datenmodell und DDL
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
Normalisierungsprozess
Institute of Scientific Computing – University of ViennaP.Brezany Integration von föderierten Datenbanken Peter Brezany Institut für Scientific Computing.
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
Abbildung UML-Schema  Rel. Schema (1)
Vordefinierte Datentypen (1)
Peter Brezany Institut für Softwarewissenschaften Universität Wien
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
 Präsentation transkript:

Informationsintegration Schema Mapping 3.1.2006 – 10.1.2006 Felix Naumann

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

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

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

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

Wdh: Bottom-up oder Top-down Entwurf Beim Entwurf des integrierten Systems Bottom-up: Ausgelöst durch den Bedarf, mehrere Quellen integriert anzufragen Schemaintegration ist wichtig. Änderungen schwierig, da neu integriert werden muss. Typisches Szenario: Data Warehouse Top-down Ausgelöst durch globalen Informationsbedarf Vorteilhaft bei labilen Quellen Schemaintegration nicht nötig, bzw. leichter 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

Schemaintegration vs. Schema Mapping Beide Probleme müssen strukturelle und semantische Heterogenität überwinden. Aber: Schemaintegration liefert Schema Mapping „frei Haus“. Zielschema hat keine eigene Semantik. Schemaintegration ist unflexibel. Deshalb nun: Schema Mapping 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

Schema Mapping - Definitionen (Inter-Schema) Korrespondenz Eine Zuordnung eines oder mehrerer Elemente eines (Quell-) Schemas zu einem oder mehreren Elementen eines anderen (Ziel-) Schemas Auch: Value-correspondence (High-level) Mapping Eine Menge von Korrespondenzen zwischen zwei Schemas. (Low-Level) Logisches Mapping Logische Übersetzung eines oder mehrerer Mappings, die den Integritätsbedingungen beider Schemas gehorcht und die Intention des Nutzers wiederspiegelt. Interpretation Übersetzung eines Mappings in ein oder mehrere logische Mappings Übersetzung eines logischen Mappings in eine Transformationsanfrage Transformationsanfrage Anfrage in einer Anfragesprache (z.B. SQL), die Daten des Quellschemas in die Struktur des Zielschemas überführt 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Wdh: Schematische Heterogenität Struktur Modellierung Relation vs. Attribut Attribut vs. Wert Relation vs. Wert Benennung Relationen Attribute Normalisiert vs. Denormalisiert Geschachtelt vs. Fremdschlüssel hier 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

Motivation – Weitere Probleme Geschachtelte Strukturen unterstützen Geschachteltes relationales Modell XML Geschachtelte Integritätsbedingungen Korrespondenzen Nutzerfreundlich Automatische Entdeckung Intention des Nutzers erkennen und repräsentieren Semantik der Daten erhalten Assoziationen entdecken & erhalten Schemata und deren Integritätsbedingungen nutzen Neue Datenwerte erzeugen Korrekte Gruppierungen erzeugen … 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

Schema Mapping im Kontext Schema Matching & Korrespondenzen Schema Mapping Mapping Interpretation Daten-transformation 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Wdh: Schematische Heterogenität – Beispiel Normalisiert vs. Denormalisiert 1:n Assoziationen zwischen Werten wird unterschiedlich dargestellt Durch Vorkommen im gleichen Tupel Durch Schlüssel-Fremdschlüssel Beziehung Lösung: Schema Mapping 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

Wdh: Schematische Heterogenität – Beispiel Geschachtelt vs. Flach 1:n Assoziationen werden unterschiedlich dargestellt Als geschachtelte Elemente Als Schlüssel-Fremdschlüssel Beziehung Lösung: Schema Mapping 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

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 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

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 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Folie: Frank Legler

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

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

Entdeckung von Assoziationen Schritt 1 Intra-schema Assoziationen zwischen Schemaelementen Relationale Sichten enthalten maximale Gruppen assoziierter Elemente Jede Sicht repräsentiert eine eigene „Kategorie“ an Daten der Datenquelle Unabhängig vom Mapping (aber beschränkt auf „gemappte“ Elemente) Quell- schema S Ziel- schema T Assoziationen des Quellschemas Assoziationen des Zielschemas Quelle: [FHP+02] 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

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

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

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

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

Erzeugung der Anfragen 2 Probleme Erfinden von Werten NULL-Werte nicht immer ausreichend. Schlüssel und passende Fremdschlüssel müssen erzeugt werden. Schachtelung Es soll nicht eine logische Relation (flach) materialisiert werden, sondern geschachtelte Strukturen. Es muss entsprechend gruppiert werden. 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

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

Erzeugung der Anfragen Implementationsspezifisch Abhängig von Datenmodell Relational  Relational: SQL Relational  XML: SQLX (Schachtelung und tagging des Ergebnisses) XML  Relational: XQuery oder XSLT (tags weglassen) XML  XML: XQuery oder XSLT In Clio Erzeugung proprietärer Regeln Dann: Übersetzung der Regeln in jeweilige Anfragesprache 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vergleich dreier Tools Altovas MapForce IBMs Clio [IBMs WSAD] Szenario expenseDB -> statisticsDB Definition des Mappings Generierung der Transformation Vergleich der XML Ergebnisse XML Screenshots aus XMLSpy www.xmlspy.com 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

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

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

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

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

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

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

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

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

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

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: 207-224 Clio: http://www.almaden.ibm.com/software/projects/criollo/ oder http://www.cs.toronto.edu/db/clio/ 3.1.2006 Felix Naumann, VL Informationsintegration, WS 05/06