Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Global-as-View: GaV

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Global-as-View: GaV"—  Präsentation transkript:

1 Informationsintegration Global-as-View: GaV
Felix Naumann

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

3 Felix Naumann, VL Informationsintegration, WS 05/06
Wdh.: Architekturen 4-Schichten-Architektur 5-Schichten-Architektur Mediator-Wrapper-Architektur Peer-Data-Management-Architektur Felix Naumann, VL Informationsintegration, WS 05/06

4 Das Problem Externes Schema 1 Externes Schema N ... Föderiertes Schema
Wie drückt man diesen Übergang aus? Exportschema Exportschema ... Komponenten- schema Komponenten- schema Lokales internes Schema Lokales internes Schema ... Felix Naumann, VL Informationsintegration, WS 05/06

5 Das Problem Anwendung 1 Anwendung 2 Data Warehouse Quelle 1 Quelle 2
Wie spezifiziert man die Datentransformationen? Data Warehouse ETL 1 ETL 3 ETL 2 Quelle 1 Quelle 2 Quelle 3 Felix Naumann, VL Informationsintegration, WS 05/06

6 Das Problem Anwendung 1 Anwendung 2 Mediator Quelle 1 Quelle 2
Wie drückt man die Funktionalität des Wrappers aus? Mediator Wrapper 1 Wrapper 3 Wrapper 2 Quelle 1 Quelle 2 Quelle 3 Felix Naumann, VL Informationsintegration, WS 05/06

7 Das Problem Peer 3 Peer 5 Peer 1 Peer 4
Wie sieht so ein „Mapping“ aus? Peer 2 Felix Naumann, VL Informationsintegration, WS 05/06

8 Felix Naumann, VL Informationsintegration, WS 05/06
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 (Schema Mapping & Schema Matching) Felix Naumann, VL Informationsintegration, WS 05/06

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

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

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

12 Global as View (GaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S5: MDB(Titel, Regie, Jahr) S6: MovDB(Titel, Regie, Genre) CREATE VIEW Film AS SELECT Titel, Regie, Jahr, NULL AS Genre FROM MDB UNION SELECT Titel, Regie, NULL AS Jahr, Genre FROM MovDB Fehlende Attribute Form des Ergebnisses; Datenfusion Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 Felix Naumann, VL Informationsintegration, WS 05/06

13 Global as View (GaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S7: KinoDB(Kino, Genre) CREATE VIEW Film AS SELECT NULL, NULL, NULL, Genre FROM KinoDB CREATE VIEW Programm AS SELECT Kino, NULL, NULL Problem: Assoziationen werden getrennt, da nur eine Sicht pro globaler Relation. Allenfalls interessant für passing bindings Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002 Felix Naumann, VL Informationsintegration, WS 05/06

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

15 Global as View (GaV) – 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 NeuerFilm AS SELECT * FROM IMDB WHERE Jahr > 2000 UNION SELECT * FROM MyMovies Bekannte Nebenbedingung auf dem globalen Schema kann modelliert werden. Felix Naumann, VL Informationsintegration, WS 05/06

16 Global as View (GaV) – Beispiel
Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S8: NeueFilme(Titel,Regie, Genre) (Nebenbedingung: Jahr > 2000) CREATE VIEW Film AS SELECT Titel, Regie, NULL, Genre FROM NeueFilme Problem: Bekannte Nebenbedingung auf der Quelle kann nicht modelliert werden. Frage: Warum ist das schlimm? Felix Naumann, VL Informationsintegration, WS 05/06

17 Global as View (GaV) – globale Nebenbedingungen
Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Nebenbedingung: Jahr > 2000 oder NeuerFilm(Titel, Regie, Genre) S1: AlleFilmeNett(Titel, Regie, Jahr, Genre) S2: AlleFilmeBöse(Titel, Regie, Genre) CREATE VIEW NeuerFilm AS SELECT * FROM AlleFilmeNett WHERE Jahr > 2000 oder SELECT Titel, Regie, Genre FROM AlleFilmeNett Quelle S2 kann nicht modelliert werden! Felix Naumann, VL Informationsintegration, WS 05/06

18 Global as View (GaV) – lokale Nebenbedingungen
Modellierung nur für Optimierung Globales Schema Film(Titel, Regie, Jahr, Genre) CREATE VIEW Film AS SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme 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) Jede Quelle kann modelliert werden! Jede Sicht exportiert alle Daten der Quelle! Felix Naumann, VL Informationsintegration, WS 05/06

19 Global as View (GaV) – Nebenbedingungen
Anfrage 1: SELECT * FROM Film Globales Schema Film(Titel, Regie, Jahr, Genre) CREATE VIEW Film AS SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) Felix Naumann, VL Informationsintegration, WS 05/06

20 Global as View (GaV) – Nebenbedingungen
Anfrage 1: SELECT * FROM Film WHERE Jahr > 2001 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr > 2001 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei Felix Naumann, VL Informationsintegration, WS 05/06

21 Global as View (GaV) – Nebenbedingungen
Anfrage 1: SELECT * FROM Film WHERE Jahr = 2001 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr = 2001 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt nicht zum Ergebnis bei (2001  2004) Felix Naumann, VL Informationsintegration, WS 05/06

22 Global as View (GaV) – Nebenbedingungen
Anfrage 1: SELECT * FROM Film WHERE Jahr < 1950 Globales Schema Film(Titel, Regie, Jahr, Genre) SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 FROM NeueFilmeBöse SELECT Titel, Regie, 2004, Genre FROM AktuelleFilme) WHERE Jahr < 1950 Trägt voll zum Ergebnis bei Trägt nicht zum Ergebnis bei, obwohl nützlich Trägt nicht zum Ergebnis bei (2000 > 1950) Trägt nicht zum Ergebnis bei (zum Glück) Trägt nicht zum Ergebnis bei (2004 > 1950) Felix Naumann, VL Informationsintegration, WS 05/06

23 Global as View (GaV) – globale und lokale Nebenbedingungen
Globales Schema NeuerFilm(Titel, Regie, Genre) Nebenbedingung: Jahr > 2000 CREATE VIEW Film AS SELECT Titel, Regie, Genre FROM AlleFilmeNett WHERE Jahr > 2000 UNION ??? FROM NeueFilmeNett (WHERE Jahr > 2000) FROM NeueFilmeBöse FROM AktuelleFilme 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) Quelle S2 kann nicht modelliert werden! Felix Naumann, VL Informationsintegration, WS 05/06

24 Global as View (GaV) – Nebenbedingungen
Fazit Nebenbedingungen im globalen Schema können die Integration von Quellen verhindern, wenn die Bedingung nicht geprüft werden kann (fehlendes Attribut). Nebenbedingungen in den lokalen Schemas können modelliert werden, wenn sie auf exportierten Attributen gelten, oder wenn sie auf globalen Attributen gelten und die Form attribute = <constant> haben. tragen möglicherweise nicht zum Anfrageergebnis bei, wenn Nebenbedingung nicht modelliert wurde. Felix Naumann, VL Informationsintegration, WS 05/06

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

26 Anfragebearbeitung – GaV
Gegeben: Anfrage an globales Schema Insbesondere: Auf Relationen des globalen Schemas Für jede globale Relation genau eine Sicht auf lokale Quellen Gesucht: Alle Tupel, die die Anfragebedingungen erfüllen Aber: Daten sind in lokalen Quellen gespeichert. Idee: Ersetze jede Relation der Anfrage durch ihre Sicht (Sichtentfaltung, View Expansion, Query Unfolding). Geschachtelte Anfrage Felix Naumann, VL Informationsintegration, WS 05/06

27 Felix Naumann, VL Informationsintegration, WS 05/06
GaV – Beispiel S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) SELECT * FROM Film Globale Sicht für Film SELECT * FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) Felix Naumann, VL Informationsintegration, WS 05/06

28 Felix Naumann, VL Informationsintegration, WS 05/06
GaV – Beispiel 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) SELECT Titel, Jahr FROM Film WHERE Jahr = ‚2003‘ SELECT Titel, Jahr FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, G.Jahr, G.Genre FROM RegieDB R, GenreDB G WHERE R.Titel = G.Titel ) WHERE Jahr = ‚2003‘ Felix Naumann, VL Informationsintegration, WS 05/06

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

30 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung Geschachtelte Anfragen Beliebig tiefe Schachtelung Bearbeitung Konzeptionell: Ausführung der Anfragen von innen nach außen und Speicherung in temporären Relationen. Tatsächlich: Optimierungspotential durch Umschreiben der Anfrage (Entschachtelung) Caching und Materialisierte Sichten (materialized views) Felix Naumann, VL Informationsintegration, WS 05/06

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

32 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung 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 P.Zeit>20:00 ⋈Titel ⋈Titel GenreDB RegieDB IMDB KinoDB Felix Naumann, VL Informationsintegration, WS 05/06

33 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung P.Zeit>20:00 ⋈Titel ⋈Titel P.Zeit>20:00 ⋈Titel ⋈Titel GenreDB RegieDB IMDB KinoDB GenreDB RegieDB IMDB KinoDB Felix Naumann, VL Informationsintegration, WS 05/06

34 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung ⋈Titel P.Zeit>20:00 ⋈Titel ⋈Titel ⋈Titel P.Zeit>20:00 GenreDB RegieDB IMDB KinoDB GenreDB RegieDB IMDB KinoDB Felix Naumann, VL Informationsintegration, WS 05/06

35 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung Globales Schema Film(Titel, Regie, Genre) Programm(Kino, Titel, Zeit) S5: MDB(Titel, Zeit, Regie) S6: MovDB(Kino, Genre, Titel) CREATE VIEW Film AS SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel CREATE VIEW Programm AS SELECT Kino, Titel, Zeit FROM MovDB, MDB SELECT F.Titel, P.Kino FROM Film F, Programm P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, F.Jahr FROM ( SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel ) AS F, ( SELECT Kino, Titel, Zeit FROM MovDB, MDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 Felix Naumann, VL Informationsintegration, WS 05/06

36 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung SELECT F.Titel, F.Jahr FROM ( SELECT Titel, Regie, Genre FROM MDB, MovDB WHERE MDB.Titel = MovDB.Titel ) AS F, ( SELECT Kino, Titel, Zeit FROM MovDB, MDB ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 P.Zeit>20:00 ⋈Titel ⋈Titel ⋈Titel MDB MovDB Felix Naumann, VL Informationsintegration, WS 05/06

37 Felix Naumann, VL Informationsintegration, WS 05/06
GaV - Schachtelung P.Zeit>20:00 ⋈Titel ⋈Titel P.Zeit>20:00 ⋈Titel ⋈Titel MDB MovDB MDB MovDB Felix Naumann, VL Informationsintegration, WS 05/06

38 Felix Naumann, VL Informationsintegration, WS 05/06
SQL – Schachtelungen Teilanfrage in FROM Klausel s.o. Teilanfrage (subquery) in WHERE Klausel Skalare Teilanfrage Nicht-skalare Teilanfrage Felix Naumann, VL Informationsintegration, WS 05/06

39 Felix Naumann, VL Informationsintegration, WS 05/06
Skalare Teilanfragen Teilanfrage überall dort wo Konstanten erwartet werden Typisch: Eine Relation wird nur benutzt um einen einzigen Wert zu ermitteln Es werden nur Daten einer Relation ausgegeben (denn Daten aus Teilanfragen können nicht im Ergebnis erscheinen) SELECT Regie FROM RegieDB, MovieDB WHERE Titel = ‚Star Wars‘ AND RegieDB.movieID = MovieDB.ID SELECT Regie FROM RegieDB WHERE movieID = (SELECT ID FROM MovieDB WHERE Titel = ‚Star Wars‘) Falls 0 oder >1 Tupel produziert werden: error Felix Naumann, VL Informationsintegration, WS 05/06

40 Nicht-skalare Teilanfragen
Für Quantoren EXISTS SELECT ID FROM MovieDB WHERE EXISTS (SELECT * FROM GenreDB WHERE Genre = ‚Drama‘) IN SELECT Jahr FROM MovieDB WHERE ID IN (SELECT MovieID FROM RegieDB AND Regie = ‚Coppola‘) Teilanfrage darf nur ein Attribut haben ALL ... WHERE JAHR < ALL (SELECT FROM WHERE) ANY ... WHERE JAHR < ANY (SELECT FROM WHERE) Jeweils mit NOT Variante Besseres Beispiel? Felix Naumann, VL Informationsintegration, WS 05/06

41 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: , 2001. Eher theoretisch [Ull00] Jeffrey D. Ullman: Information Integration Using Logical Views. TCS 2000: [Hull97] Managing Semantic Heterogeneity in Databases: A Theoretical Perspective. Richard Hull. PODS 1997 tutorial Felix Naumann, VL Informationsintegration, WS 05/06


Herunterladen ppt "Informationsintegration Global-as-View: GaV"

Ähnliche Präsentationen


Google-Anzeigen