Informationsintegration Local-as-View: LaV

Slides:



Advertisements
Ähnliche Präsentationen
Deduktive Datenbanken
Advertisements

Heterogene Informationssysteme
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Entwurf eines Bibliothekssystems
TelegraphCQ Manuel Hertlein.
Informationsintegration Heterogenität Felix Naumann.
Informationsintegration Der Bucket-Algorithmus Felix Naumann.
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.
Universität Rostock Fakultät für Informatik und Elektrotechnik Institut für Informatik, Lehrstuhl DBIS Albert-Einstein-Straße 21, D Rostock Putbus,
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
© Karin Haenelt 2006, Operationen auf Akzeptoren und Transduktoren, ( ) 1 Operationen auf endlichen Akzeptoren und Transduktoren.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
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.
Übung Datenbanksysteme SQL-Anfragen (2)
Übung Datenbanksysteme UML
Normalformen Normalisieren Schlüssel
Seminar: Verteilte Datenbanken
Einführung Dateisystem <-> Datenbanksystem
Informationsintegration Architekturen
Informationsintegration Anwendungsszenarien
Informationsintegration Schema Mapping
Informationsintegration Materialisierte vs. Virtuelle Integration
Christian Gebhardt Berlin,
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.
RDF-S3 und eRQL: RDF-Technologien für Informationsportale Karsten Tolle und Fabian Wleklinski.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
mittels Systemanalyse
1 J4 Hash-Join R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash- Buckets abgebildet Hash-Buckets.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #10 Physische Datenorganisation
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
Institute of Scientific Computing – University of ViennaP.Brezany Integration von föderierten Datenbanken Peter Brezany Institut für Scientific Computing.
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Prüfung auf Serialisierbarkeit (3)
1 Sichten-Änderungen (1) Änderungen von Sichten sind i.d.R. problematisch, da sie in entsprechende Änderungen der Basisrelationen überführt werden müssen.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Institute for Software Science – University of ViennaP.Brezany Datenintegration Peter Brezany Institut für Softwarewissenschaften Universität Wien.
Aufbau semantischer Caches und Anfrageverarbeitung Seminar Semantic Caching 1/12 Kathleen Hänsch
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
 Präsentation transkript:

Informationsintegration Local-as-View: LaV 22.11.2005 Felix Naumann

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

WdH.: Das Problem Anwendung 1 Anwendung 2 Mediator Quelle 1 Quelle 2 Wie drückt man diesen Übergang aus? Externes Schema 1 Externes Schema N Anwendung 1 Anwendung 2 ... Föderiertes Schema Mediator Exportschema Exportschema ... Komponenten- schema Komponenten- schema Wrapper 1 Wrapper 3 Wrapper 2 Lokales internes Schema Lokales internes Schema ... Quelle 1 Quelle 2 Quelle 3 Wie drückt man die Funktionalität des Wrappers aus? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 WdH.: Das Problem Zwei heterogene Schemata Quellschema: Hier sind die Daten. Zielschema: Hiergegen wird die Anfrage gestellt. Teilproblem 1 Beziehungen zwischen Schemata spezifizieren Mappings Teilproblem 2 Daten von der Quelle zum Ziel transformieren Transformationsanfragen Teilproblem 3 Wie mache ich dies alles automatisch? -> VL 22-24 (Schema Mapping & Schema Matching) 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

WdH.: Modellierung von Datenquellen Kernidee Modellierung strukturell heterogener Quellen in Bezug auf ein globales Schema als Views (Sichten) Relationales Modell Allgemein: Eine Sicht verknüpft mehrere Relationen und produziert eine Relation. Sichten zur Verknüpfung von Schemata Sicht definiert auf Relationen eines Schemas und produziert eine Relation des anderen Schemas Jetzt: Unterscheidung lokales und globales Schema 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

WdH.: Global as View / Local as View Relationen des globalen Schemas werden als Sichten auf die lokalen Schemas der Quellen ausgedrückt. Local as View Relationen der Schemas der Quellen werden als Sichten auf das globale Schema ausgedrückt. 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

WdH.: Global as View (GaV) – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Regie, Jahr, Genre) S3: RegieDB(Titel, Regie) S4: GenreDB(Titel, Jahr, Genre) Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW Film AS SELECT * FROM IMDB UNION SELECT * FROM MyMovies SELECT RegieDB.Titel, RegieDB.Regie, GenreDB.Jahr, GenreDB.Genre FROM RegieDB, GenreDB WHERE RegieDB.Titel = GenreDB.Titel Typisches Merk-mal bei GaV Join über mehrere Quellen (Anfragebearbeitung!) Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 WdH.: GaV – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) S7: KinoDB(Titel, Kino, Genre, Zeit) SELECT F.Titel, P.Kino FROM Film F, Programm P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) AS F, ( SELECT * FROM KinoDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

WdH.: GaV - Schachtelung i.d.R. Belassen bei entfernten Quellen i.d.R. Auflösung bei materialisierten Sichten SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) AS F, ( SELECT * FROM KinoDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, P.Kino FROM IMDB F, KinoDB P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 UNION SELECT F1.Titel, P1.Jino FROM RegieDB F1, GenreDB F2, KinoDB P WHERE F1.Titel = F1.Titel WHERE F1.Titel = P1.Titel AND P1.Zeit > 20:00 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S1 AS SELECT * FROM Film CREATE VIEW S2 AS CREATE VIEW S3 AS SELECT Film.Titel, Film.Regie FROM Film CREATE VIEW S4 AS SELECT Film.Titel, Film.Jahr, Film.Genre S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Regie, Jahr, Genre) S3: RegieDB(Titel, Regie) S4: GenreDB(Titel, Jahr, Genre) Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S9 AS SELECT Titel, NULL, Jahr FROM Film S9: ActorDB(Titel, Schauspieler, Jahr) „Verpasste Chance“ 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S7 AS SELECT Programm.Kino, Film.Genre FROM Film, Programm WHERE Film.Titel = Programm.Titel S7: KinoDB(Kino, Genre) Assoziationen des globalen Schemas können in der Sicht hergestellt werden. 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel CREATE VIEW S7Filme AS SELECT Titel, Jahr, NULL, NULL FROM Film CREATE VIEW S7Regie AS SELECT NULL, Regie Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S9: Filme(Titel, Jahr, Ort, RegieID) Regie(ID, Regisseur) Assoziationen des lokalen Schemas können nicht abgebildet werden. Später: Erzeugung neuer IDs (VL Schema Mapping) 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S8 AS SELECT Titel, Regie, Genre FROM Film WHERE Jahr > 2000 S8: NeueFilme(Titel, Regie, Genre) (Nebenbedingung: Jahr > 2000) Bekannte Nebenbedingung auf der Quelle kann modelliert werden. 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – Beispiel CREATE VIEW S1 AS SELECT * FROM NeuerFilm (WHERE Jahr> 2000) CREATE VIEW S2 AS Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) Nebenbedingung: Jahr > 2000 S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Regie, Jahr, Genre) 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – lokale Nebenbedingungen CREATE VIEW S1 AS SELECT * FROM Film CREATE VIEW S2 AS SELECT Titel, Regie, Genre FROM Film CREATE VIEW S3 AS SELECT * FROM Film (WHERE Jahr > 2000) CREATE VIEW S4 AS (WHERE Jahr > 2000) CREATE VIEW S5 AS (WHERE Jahr = 2004) Globales Schema Film(Titel, Regie, Jahr, Genre) S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) S3: NeueFilmeNett(Titel, Regie, Jahr, Genre) (Nebenbedingung: Jahr > 2000) S4: NeueFilmeBöse(Titel, Regie, Genre) S5: AktuelleFilme(Titel, Regie, Genre) (Nebenbedingung: Jahr = 2004) Modellierung jeweils nur für Optimierung 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Local as View (LaV) – globale Nebenbedingungen Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Nebenbedingung: Jahr > 2000 oder NeuerFilm(Titel, Regie, Genre) CREATE VIEW AlleFilmeNett AS SELECT * FROM NeuerFilm (WHERE JAHR > 2000) [CREATE VIEW AlleFilmeBöse AS SELECT Titel, Regie, Genre FROM NeuerFilm] S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) Problem: Bekannte Nebenbedingung auf dem globalen Schema kann nicht modelliert werden. Frage: Ist das schlimm? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Problem Anfrageverarbeitung Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) LaV CREATE VIEW S1 AS SELECT * FROM Film CREATE VIEW S2 AS SELECT Film.Titel, Film.Regie FROM Film CREATE VIEW S3 AS SELECT Film.Titel, Film.Jahr, Film.Genre S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) GaV CREATE VIEW Film AS SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Anfragebearbeitung – LaV Gegeben: Anfrage an globales Schema Insbesondere: Auf Relationen des globalen Schemas Für jede lokale Relation genau eine Sicht auf globales Schema Gesucht: Alle Tupel, die die Anfragebedingungen erfüllen Aber: Daten sind in lokalen Quellen gespeichert. Idee: Anfrageumschreibung durch Einbeziehung der Sichten Kombiniere geschickt die einzelnen Sichten zu einer Anfrage, so dass deren Ergebnis einen Teil der Anfrage (oder die ganze Anfrage) beantworten. Gesamtergebnis ist dann die UNION der Ergebnisse mehrerer Anfrageumschreibungen "Query Answering Using Views" 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV - Anfragebearbeitung ABBILDUNG MIT SYSTEM-ÜBERBLICK WER MACHT WANN WAS 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Anwendungen Anfrageoptimierung Materialisierte Sichten auf Datenbankschema Datawarehouse Design Materialisierte Sichten auf Warehouse-Schema Semantisches Caching Materialisierte Daten beim Client Datenintegration Datenquellen als Sichten auf globales (Mediator) Schema 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV Anwendung: Anfrageoptimierung Materialisierte Sichten (materialized views, MV) auf Datenbankschema MQT: Materialized Query Table AST: Advanced Summary Table Welche Sichten helfen bei der Beantwortung einer Datenbankanfrage durch Vorberechnung von Prädikaten? Probleme: Es ist nicht immer besser eine MV zu verwenden (Indizes!). Aktualisierung von MVs Write auf MV Write auf Basisrelation Q1: R1 Q4: R1 ⋈ R2 Q2: R1, A=10 Q5: R4 Q3: R3 Q6: R1 ⋈ R2 ⋈ R3 Optimierer: Query Answering Using Views MV1 σ(A=10) MV2 ⋈ MV3 ⋈| MV4 ⋃ R1 R2 R3 R4 R5 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV Anwendung: Datawarehouse Design Materialisierte Sichten auf Warehouse-Schema Gegeben eine query workload Query workload = Menge von Anfragen mit Häufigkeiten Welche Sichten sollte ich materialisieren? Um alle Anfragen der Workload zu beantworten Allgemeiner: Gegeben eine query workload, welche Sichten sollte ich materialisieren um die workload optimal zu beantworten. Idee: Alle Kombinationen prüfen (AST Wizard) Frage: Warum ist dieses Problem eigentlich ganz einfach? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV Anwendung: Semantisches Caching In verteilten DBMS Materialisierte Daten beim Client Gegeben eine Anfrage Welche Daten im Cache kann ich zur Beantwortung verwenden? Welche Daten muss ich neu anfragen? Auch: Welche Sichten sollte ich vorberechnen? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV Anwendung: Datenintegration Datenquellen als Sichten auf globales (Mediator) Schema Fragen: Wie kann ich Antworten auf eine Anfrage an das globale Schema nur mittels der Sichten beantworten? Unterschied zu Anfrageoptimierung: Keine Basistabellen verfügbar. Kann ich die Anfrage vollständig (extensional) beantworten? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiel Ausschnitt Globales Schema Lehrt(prof,kurs_id, sem, eval, univ) Kurs(kurs_id, titel, univ) Quelle 1: Alle Datenbankveranstalt. CREATE VIEW DB-kurs AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND L.univ = K.univ AND K.titel LIKE „%_Datenbanken“ Quelle 2: Alle Humboldtvorlesungen CREATE VIEW Hum-VL AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.univ = „Humboldt“ AND L.univ = „Humboldt“ AND K.titel LIKE „%VL_%“ Globale Anfrage SELECT prof FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.titel LIKE „%_Datenbanken“ AND L.univ = „Humboldt“ Umgeschriebene Anfrage SELECT prof FROM DB-kurs D WHERE D.univ = „Humboldt“ Frage: Warum nicht Quelle 2 einbeziehen? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiel Ausschnitt Globales Schema Lehrt(prof,kurs_id, sem, eval, univ) Kurs(kurs_id, titel, univ) Quelle 2: Alle Humboldtvorlesungen CREATE VIEW Hum-VL AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.univ = „Humboldt“ AND L.univ = „Humboldt“ AND K.titel LIKE „%VL_%“ Quelle 1: Alle Datenbankveranstalt. CREATE VIEW DB-kurs AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND L.univ = K.univ AND K.titel LIKE „%_Datenbanken“ Umgeschriebene Anfrage SELECT titel, kurs_id FROM DB-kurs D WHERE D.univ = „Humboldt“ UNION FROM Hum-VL Globale Anfrage SELECT titel, kurs_id FROM Kurs K WHERE L.univ = „Humboldt“ Frage: Warum hier doch Quelle 2 einbeziehen? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV – Beispiel Vergleich Globale Anfrage SELECT prof FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.titel = „VL_Datenbanken“ AND L.univ = „Humboldt“ Umgeschriebene Anfrage SELECT prof FROM DB-kurs D WHERE D.univ = „Humboldt“ Vollständige Antwort Globale Anfrage SELECT titel, kurs_id FROM Kurs K WHERE L.univ = „Humboldt“ Umgeschriebene Anfrage SELECT titel, kurs_id FROM DB-kurs D WHERE D.univ = „Humboldt“ UNION FROM Hum-VL Maximale Antwort Frage: Was fehlt? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

LaV – Anfragebearbeitung Gegeben: Anfrage Q und Sichten V1, ..., Vn Gesucht: Umgeschriebene Anfrage Q‘, die bei Optimierung: äquivalent ist (Q = Q‘). bei Integration: maximal enthalten ist. D.h. Q  Q‘ und es existiert kein Q‘‘ mit Q  Q‘‘  Q‘ wobei Q‘‘  Q‘. Problem: Wie definiert und testet man Äquivalenz und maximal containment? 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiele Quelle 2: CREATE VIEW Hum-VL AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.univ = „Humboldt“ AND L.univ = „Humboldt“ AND K.titel LIKE „%VL_%“ ??? Quelle 3: CREATE VIEW Hum-Kurse AS SELECT K.titel, L.prof, K.kurs_id, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.univ = „Humboldt“ AND L.univ = „Humboldt“ 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiele Quelle 4: CREATE VIEW Kurse1 AS SELECT K.titel, K.kurs_id FROM Kurs K AND K.univ = „Humboldt“ AND K.titel LIKE „%VL_%“ Quelle 5: CREATE VIEW Kurse3 AS SELECT K.titel, K.kurs_id FROM Kurs K AND K.univ = „Humboldt“ Quelle 5: CREATE VIEW Kurse2 AS SELECT K.titel, K.univ FROM Kurs K AND K.univ = „Humboldt“ AND K.titel LIKE „%VL_%“ Quelle 6: CREATE VIEW Kurse4 AS SELECT K.titel FROM Kurs K AND K.univ = „Humboldt“ 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiele Prüfung von containment durch Prüfung aller möglichen Datenbanken? Zu complex! Prüfung von containment durch Existenz eines containment mapping. NP-vollständig in |Q|+|Q‘| nach [CM77] Mehrere Algorithmen Mehr in VL 19 Quelle 3: CREATE VIEW Hum-Kurse AS SELECT K.titel, K.univ FROM Lehrt L, Kurs K WHERE L.kurs_id = K.kurs_id AND K.univ = „Humboldt“ AND L.univ = „Humboldt“ Quelle 5: CREATE VIEW Kurse2 AS SELECT K.titel, K.univ FROM Kurs K AND K.univ = „Humboldt“ 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 CWA / OWA Closed World Assumption (CWA) Vereinigung aller Daten der Datenquellen entspricht der Menge aller relevanten Daten. Beispiele: Data Warehouse (und traditionelle DBMS) Open World Assumption (OWA) Vereinigung aller Daten der Datenquellen ist eine Teilmenge aller relevanten Daten. Probleme Inhalt der globalen Relation nicht fest Anfrageergebnisse können sich ändern Definition der Vollständigkeit der Ergebnisse Welchen Anteil an der world hat das Ergebnis? Negation in Anfragen 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 CWA / OWA – Beispiel Relation R(A,B) View 1 CREATE VIEW V1 AS SELECT A FROM R Extension: a View 2 CREATE VIEW V2 AS SELECT B FROM R Extension: b Anfrage: SELECT * FROM R CWA: (a,b) muss in der Extension von R sein. OWA: (a,b) muss nicht in der Extension von R sein. R = (a,b) R = (a,b) oder R = (a,x) (y,b) o.ä. 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Global-Local-as-View (GLAV) Kombination GaV und LaV GaV: Globale Relation = Sicht auf lokale Relationen (Globale Relation  Sicht auf lokale Relationen) LaV: Sicht auf globale Relationen = lokale Relation Sicht auf globale Relationen  lokale Relation GLaV: Sicht auf globale Relationen = Sicht auf lokale Relationen Sicht auf globale Relationen  Sicht auf lokale Relationen Auch „BaV“: Both-as-View 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick Global as View (GaV) Modellierung Anfragebearbeitung Local as View (LaV) Anwendungen Ausblick: Anfragebearbeitung Global Local as View (GLAV) Vergleich 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Vergleich GaV / LaV Modellierung GaV Jede globale Relation definiert als Sicht auf eine oder mehr Relationen aus einer oder mehr Quellen. Meist UNION über mehrere Quellen Nebenbedingungen auf lokalen Quellen können nicht modelliert werden. LaV Globale Relationen werden durch mehrere Sichten definiert. Definition oft nur in Kombination mit anderen globalen Relationen Nebenbedingungen auf globale Relationen können nicht definiert werden. 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Vergleich GaV / LaV Anfragebearbeitung GaV: Anfrageumschreibung: Einfaches View unfolding Eine große, umgeschriebene Anfrage Interessante Optimierungsprobleme LaV Anfrageumschreibung: Answering queries using views UNION über viele mögliche umgeschriebene Anfragen Mehrere Algorithmen Viele Anwendungen Noch interessantere Optimierungsprobleme Flexibilität GaV: Views setzen Relationen mehrerer Quellen in Beziehung LaV: Jede View bezieht sich nur auf eine Quelle 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Literatur Gute Zusammenfassung für LaV und weiterführende Literatur: [Levy01] Alon Y. Halevy: Answering queries using views: A survey, in VLDB Journal 10: 270-294, 2001. Eher theoretisch [Ull00] Jeffrey D. Ullman: Information Integration Using Logical Views. TCS 2000: 189-210 [Hull97] Managing Semantic Heterogeneity in Databases: A Theoretical Perspective. Richard Hull. PODS 1997 tutorial 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 LaV – Beispiel Globales Schema Prof(name, bereich) Kurs(kurs_id, titel, univ) Lehrt(prof,kurs_id, sem, eval, univ) Eingeschrieben(stud, kurs_id, sem) Vertiefung(stud, fach) Arbeitet(prof, fach) Betreut(prof, stud) Prof fach stud name Kurs bereich lehrt eval sem Betreut Eingeschrieben Vertiefung Arbeitet titel kurs_id 22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06