InformationsintegrationLocal-as-View: LaV
22.11.2005
Felix Naumann
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 2
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 3
WdH.: Das Problem
Föderiertes Schema
Externes Schema 1
Externes Schema N...
Komponenten-schema
Komponenten-schema
Lokales internes Schema
Lokales internes Schema
...
...
Exportschema Exportschema
Wie drückt man diesen Übergang aus?
Quelle 1 Quelle 2 Quelle 3
Mediator
Anwendung 1 Anwendung 2
Wrapper 2
Wrapper 3Wrapper 1
Wie drückt man die Funktionalität des Wrappers aus?
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 4
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 5
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 6
WdH.: Global as View / Local as View
Global 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 7
WdH.: Global as View (GaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S1: IMDB(Titel, Regie, Jahr, Genre)S2: MyMovies(Titel, Regie, Jahr, Genre)S3: RegieDB(Titel, Regie)S4: GenreDB(Titel, Jahr, Genre)
CREATE VIEW Film ASSELECT * FROM IMDB
UNIONSELECT * FROM MyMovies
UNIONSELECT RegieDB.Titel, RegieDB.Regie, GenreDB.Jahr, GenreDB.GenreFROM RegieDB, GenreDBWHERE RegieDB.Titel = GenreDB.Titel
Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002
Typisches Merk-mal bei GaV
Join über mehrere Quellen
(Anfragebearbeitung!)
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 8
WdH.: GaV – Beispiel
SELECT F.Titel, P.KinoFROM Film F, Programm PWHERE F.Titel = P.TitelAND 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 PWHERE F.Titel = P.TitelAND P.Zeit > 20:00
S1: IMDB(Titel, Regie, Jahr, Genre)S2: RegieDB(Titel, Regie)S3: GenreDB(Titel, Jahr, Genre)S7: KinoDB(Titel, Kino, Genre, Zeit)
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 9
WdH.: GaV - Schachtelung
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 PWHERE F.Titel = P.TitelAND P.Zeit > 20:00
SELECT F.Titel, P.Kino FROM IMDB F, KinoDB PWHERE F.Titel = P.TitelAND P.Zeit > 20:00
UNION
SELECT F1.Titel, P1.Jino FROM RegieDB F1, GenreDB F2, KinoDB PWHERE F1.Titel = F1.TitelWHERE F1.Titel = P1.TitelAND P1.Zeit > 20:00
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 10
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 11
Local as View (LaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S1: IMDB(Titel, Regie, Jahr, Genre)S2: MyMovies(Titel, Regie, Jahr, Genre)S3: RegieDB(Titel, Regie)S4: GenreDB(Titel, Jahr, Genre)
CREATE VIEW S1 ASSELECT * FROM Film
CREATE VIEW S2 ASSELECT * FROM Film
CREATE VIEW S3 ASSELECT Film.Titel, Film.RegieFROM Film
CREATE VIEW S4 ASSELECT Film.Titel, Film.Jahr,
Film.GenreFROM Film
Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 12
Local as View (LaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S9: ActorDB(Titel, Schauspieler, Jahr)
CREATE VIEW S9 ASSELECT Titel, NULL, JahrFROM Film
„Verpasste Chance“
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 13
Local as View (LaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S7: KinoDB(Kino, Genre)
CREATE VIEW S7 ASSELECT Programm.Kino, Film.GenreFROM Film, ProgrammWHERE Film.Titel = Programm.Titel
Assoziationen des globalenSchemas können in derSicht hergestellt werden.
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 14
Local as View (LaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S9: Filme(Titel, Jahr, Ort, RegieID) Regie(ID, Regisseur)
CREATE VIEW S7Filme ASSELECT Titel, Jahr, NULL, NULLFROM Film
CREATE VIEW S7Regie ASSELECT NULL, RegieFROM Film
Assoziationen des lokalenSchemas können nicht abgebildet werden.
Später: Erzeugung neuer IDs (VL Schema Mapping)
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 15
Local as View (LaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S8: NeueFilme(Titel, Regie, Genre)(Nebenbedingung: Jahr > 2000)
CREATE VIEW S8 ASSELECT Titel, Regie, GenreFROM FilmWHERE Jahr > 2000
Bekannte Nebenbedingung auf der Quelle kann modelliert werden.
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 16
Local as View (LaV) – Beispiel
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)
CREATE VIEW S1 ASSELECT * FROM NeuerFilm(WHERE Jahr> 2000)
CREATE VIEW S2 ASSELECT * FROM NeuerFilm(WHERE Jahr> 2000)
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 17
Local as View (LaV) – lokale Nebenbedingungen
Globales Schema Film(Titel, Regie, Jahr, Genre)
CREATE VIEW S1 ASSELECT * FROM Film
CREATE VIEW S2 ASSELECT Titel, Regie, Genre FROM Film
CREATE VIEW S3 ASSELECT * FROM Film(WHERE Jahr > 2000)
CREATE VIEW S4 ASSELECT Titel, Regie, Genre FROM Film(WHERE Jahr > 2000)
CREATE VIEW S5 ASSELECT Titel, Regie, Genre FROM Film(WHERE Jahr = 2004)
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)
(Nebenbedingung: Jahr > 2000)S5: AktuelleFilme(Titel, Regie, Genre)
(Nebenbedingung: Jahr = 2004)
Modellierung jeweils nur für Optimierung
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 18
Local as View (LaV) – globale Nebenbedingungen
CREATE VIEW AlleFilmeNett ASSELECT * FROM NeuerFilm(WHERE JAHR > 2000)
[CREATE VIEW AlleFilmeBöse ASSELECT Titel, Regie, Genre FROM NeuerFilm]
Problem:Bekannte Nebenbedingung auf dem globalen Schema kannnicht modelliert werden.
Frage:Ist das schlimm?
Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre)Nebenbedingung: Jahr > 2000
oder NeuerFilm(Titel, Regie, Genre)Nebenbedingung: Jahr > 2000
S1: AlleFilmeNett(Titel, Regie, Jahr, Genre)S2: AlleFilmeBöse(Titel, Regie, Genre)
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 19
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 20
Problem Anfrageverarbeitung
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)
S1: IMDB(Titel, Regie, Jahr, Genre)S2: RegieDB(Titel, Regie)S3: GenreDB(Titel, Jahr, Genre)
GaVCREATE VIEW Film ASSELECT * FROM IMDB
UNIONSELECT R.Titel, R.Regie, G.Jahr, G.GenreFROM RegieDB R, GenreDB GWHERE R.Titel = G.Titel
LaVCREATE VIEW S1 ASSELECT * FROM Film
CREATE VIEW S2 ASSELECT Film.Titel, Film.RegieFROM Film
CREATE VIEW S3 ASSELECT Film.Titel, Film.Jahr,
Film.GenreFROM Film
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 21
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
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 22
LaV - Anfragebearbeitung
ABBILDUNG MIT SYSTEM-ÜBERBLICK WER MACHT WANN WAS
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 23
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 24
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
R1 R2 R3 R4 R5
MV1σ(A=10)
MV2⋈
MV4⋃
MV3⋈|
Optimierer:Query Answering Using Views
Q1: R1
Q3: R3
Q2: R1, A=10
Q4: R1 ⋈ R2
Q5: R4
Q6: R1 ⋈ R2 ⋈ R3
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 25
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 26
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 27
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 28
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 29
LaV – BeispielAusschnitt 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 30
LaV – BeispielAusschnitt 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 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 SELECT titel, kurs_id FROM Hum-VL
Frage: Warum hier doch
Quelle 2 einbeziehen?
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 31
LaV – Beispiel Vergleich
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 SELECT titel, kurs_id FROM Hum-VL
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
MaximaleAntwort
Frage:Was fehlt?
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 32
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 33
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 34
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 Kurse2 AS SELECT K.titel, K.univ 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 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 35
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 5: CREATE VIEW Kurse2 AS SELECT K.titel, K.univ FROM Kurs K AND K.univ = „Humboldt“
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“
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 36
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 37
CWA / OWA – Beispiel Relation R(A,B) View 1
CREATE VIEW V1 ASSELECT A FROM R
Extension: a View 2
CREATE VIEW V2 ASSELECT 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 38
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 39
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 40
Überblick
Global as View (GaV) Modellierung Anfragebearbeitung
Local as View (LaV) Modellierung Anwendungen Ausblick: Anfragebearbeitung
Global Local as View (GLAV) Vergleich
22.11.2005 Felix Naumann, VL Informationsintegration, WS 05/06 41
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 42
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 43
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 44
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
name name
bereich
lehrteval
sem
Betreut
Eingeschrieben
sem
VertiefungArbeitet
titel kurs_id