Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Global-as-View: GaV 15.11.2005 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Global-as-View: GaV 15.11.2005 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Global-as-View: GaV Felix Naumann

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

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

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

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

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

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

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

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

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

11 Felix Naumann, VL Informationsintegration, WS 05/0611 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 AS SELECT * FROM IMDB UNION SELECT * FROM MyMovies UNION SELECT RegieDB.Titel, RegieDB.Regie, GenreDB.Jahr, GenreDB.Genre FROM RegieDB, GenreDB WHERE RegieDB.Titel = GenreDB.Titel Quelle: VL Data Integration, Alon Halevy, University of Washington, 2002 Typisches Merk- mal bei GaV Join über mehrere Quellen (Anfragebearbeitung!)

12 Felix Naumann, VL Informationsintegration, WS 05/0612 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 Quelle: VL Data Integration, Alon Halevy, University of Washington, 2002 Fehlende Attribute Form des Ergebnisses; Datenfusion

13 Felix Naumann, VL Informationsintegration, WS 05/0613 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 FROM KinoDB Problem: Assoziationen werden getrennt, da nur eine Sicht pro globaler Relation. Quelle: VL Data Integration, Alon Halevy, University of Washington, 2002 Allenfalls interessant für passing bindings

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

15 Felix Naumann, VL Informationsintegration, WS 05/0615 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 WHERE Jahr > 2000 Bekannte Nebenbedingung auf dem globalen Schema kann modelliert werden.

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

17 Felix Naumann, VL Informationsintegration, WS 05/0617 Global as View (GaV) – globale Nebenbedingungen 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) CREATE VIEW NeuerFilm AS SELECT * FROM AlleFilmeNett WHERE Jahr > 2000 oder CREATE VIEW NeuerFilm AS SELECT Titel, Regie, Genre FROM AlleFilmeNett WHERE Jahr > 2000 Quelle S2 kann nicht modelliert werden!

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

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

20 Felix Naumann, VL Informationsintegration, WS 05/0620 Global as View (GaV) – Nebenbedingungen Globales Schema Film(Titel, Regie, Jahr, Genre) Anfrage 1: SELECT * FROM Film WHERE Jahr > 2001 SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse UNION SELECT * FROM NeueFilmeNett (WHERE Jahr > 2000) UNION SELECT Titel, Regie, NULL, Genre FROM NeueFilmeBöse UNION 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

21 Felix Naumann, VL Informationsintegration, WS 05/0621 Global as View (GaV) – Nebenbedingungen Globales Schema Film(Titel, Regie, Jahr, Genre) Anfrage 1: SELECT * FROM Film WHERE Jahr = 2001 SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse UNION SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 UNION SELECT Titel, Regie, NULL, Genre FROM NeueFilmeBöse UNION 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 ( )

22 Felix Naumann, VL Informationsintegration, WS 05/0622 Global as View (GaV) – Nebenbedingungen Globales Schema Film(Titel, Regie, Jahr, Genre) Anfrage 1: SELECT * FROM Film WHERE Jahr < 1950 SELECT * FROM (SELECT * FROM AlleFilmeNett UNION SELECT Titel, Regie, NULL, Genre FROM AlleFilmeBöse UNION SELECT * FROM NeueFilmeNett WHERE Jahr > 2000 UNION SELECT Titel, Regie, NULL, Genre FROM NeueFilmeBöse UNION 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)

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

24 Felix Naumann, VL Informationsintegration, WS 05/0624 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 = haben. tragen möglicherweise nicht zum Anfrageergebnis bei, wenn Nebenbedingung nicht modelliert wurde.

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

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

27 Felix Naumann, VL Informationsintegration, WS 05/0627 GaV – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) SELECT * FROM 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 ) Globale Sicht für Film S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre)

28 Felix Naumann, VL Informationsintegration, WS 05/0628 GaV – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) 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 S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre)

29 Felix Naumann, VL Informationsintegration, WS 05/0629 GaV – Beispiel 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 S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) S7: KinoDB(Titel, Kino, Genre, Zeit)

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

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

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

33 Felix Naumann, VL Informationsintegration, WS 05/0633 GaV - Schachtelung P.Zeit>20:00 Titel KinoDBIMDBRegieDBGenreDB Titel P.Zeit>20:00 Titel KinoDBIMDBRegieDBGenreDB Titel

34 Felix Naumann, VL Informationsintegration, WS 05/0634 GaV - Schachtelung P.Zeit>20:00 Titel KinoDBIMDBRegieDBGenreDB Titel P.Zeit>20:00 Titel KinoDBIMDBRegieDBGenreDB Titel

35 Felix Naumann, VL Informationsintegration, WS 05/0635 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 WHERE MDB.Titel = MovDB.Titel 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 WHERE MDB.Titel = MovDB.Titel ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00

36 Felix Naumann, VL Informationsintegration, WS 05/0636 GaV - Schachtelung P.Zeit>20:00 Titel MovDBMDB Titel 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 WHERE MDB.Titel = MovDB.Titel ) AS P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 Titel

37 Felix Naumann, VL Informationsintegration, WS 05/0637 GaV - Schachtelung P.Zeit>20:00 Titel MovDBMDB Titel P.Zeit>20:00 Titel MovDBMDB

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

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

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

41 Felix Naumann, VL Informationsintegration, WS 05/0641 Literatur Gute Zusammenfassung für LaV und weiterführende Literatur: [Levy01] Alon Y. Halevy: Answering queries using views: A survey, in VLDB Journal 10: , 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


Herunterladen ppt "Informationsintegration Global-as-View: GaV 15.11.2005 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen