Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Containment und Local-as-View Anfragebearbeitung 12.1.2006 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Containment und Local-as-View Anfragebearbeitung 12.1.2006 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Containment und Local-as-View Anfragebearbeitung Felix Naumann

2 Felix Naumann, VL Informationsintegration, WS 05/062 Überblick Wiederholung Global-as-View (GaV) & GaV Anfragebearbeitung Local-as-View (LaV) LaV Anfragebearbeitung Containment Definition Test Nutzbarkeit und Nützlichkeit von Views

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

4 Felix Naumann, VL Informationsintegration, WS 05/064 Global as View (GaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) 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

5 Felix Naumann, VL Informationsintegration, WS 05/065 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 (View Expansion, Query Unfolding). Geschachtelte Anfrage

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

7 Felix Naumann, VL Informationsintegration, WS 05/067 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, F.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 ) 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(Kino, Genre, Zeit)

8 Felix Naumann, VL Informationsintegration, WS 05/068 Global as View (GaV) Anfrageumschreibung entspricht Sichtentfaltung Ersetze Sicht durch Sicht-Definition. Konzeptionell: Ausführung der Anfragen von innen nach außen und Speicherung in temporären Relationen. Tatsächlich: Optimierungspotential durch Umschreiben der Anfrage (Entschachtelung) Konzeptionell simpel Neue Quellen hinzufügen ist schwierig. Alle bisherigen Quellen müssen betrachtet werden. Geeignet für materialisierte Integration

9 Felix Naumann, VL Informationsintegration, WS 05/069 Überblick Wiederholung Global-as-View (GaV) & GaV Anfragebearbeitung Local-as-View (LaV) LaV Anfragebearbeitung Containment Definition Test Nutzbarkeit und Nützlichkeit von Views

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

11 Felix Naumann, VL Informationsintegration, WS 05/0611 Local as View (LaV) – Beispiel Globales Schema Film(Titel, Regie, Jahr, Genre) S9: ActorDB(Titel, Schauspieler, Jahr) CREATE VIEW S9 AS SELECT Titel, NULL, Jahr FROM Film

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

13 Felix Naumann, VL Informationsintegration, WS 05/0613 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 AS SELECT Titel, Regie, NULL, Genre FROM Film WHERE Jahr > 2000

14 Felix Naumann, VL Informationsintegration, WS 05/0614 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 AS SELECT * FROM NeuerFilm CREATE VIEW S2 AS SELECT * FROM NeuerFilm

15 Felix Naumann, VL Informationsintegration, WS 05/0615 Local as View (LaV) Flexibel Beschreibung der Quellen mit voller Mächtigkeit der Anfragesprache Quellen können leicht hinzugefügt werden (unabhängig von bisherigen Quellen) Anfrageumschreibung schwierig Answering Queries using Views Viele potentielle (und überlappende) Pläne Geeignet für virtuelle Integration

16 Felix Naumann, VL Informationsintegration, WS 05/0616 Überblick Wiederholung Global-as-View (GaV) & GaV Anfragebearbeitung Local-as-View (LaV) LaV Anfragebearbeitung Containment Definition Test Nutzbarkeit und Nützlichkeit von Views

17 Felix Naumann, VL Informationsintegration, WS 05/0617 Problem Anfrageverarbeitung Globales Schema Film(Titel, Regie, Jahr, 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 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 FROM Film

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

19 Felix Naumann, VL Informationsintegration, WS 05/0619 LaV Anfrageumschreibung – 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 ANDL.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?

20 Felix Naumann, VL Informationsintegration, WS 05/0620 LaV Visualisierung (OWA) Globales Schema Lokales Schema RelARelB RelC LaV RelC = RelA RelB Lokales Schema RelD RelD = RelB Nutzer-Anfrage SELECT ??? FROM RelB WHERE ??? Umgeschriebene Anfrage SELECT ??? FROM RelD WHERE ??? UNION SELECT Attr(B) FROM RelC WHERE ??? Anfrage- umschreibung

21 Felix Naumann, VL Informationsintegration, WS 05/0621 LaV Visualisierung Globales Schema Lokales Schema RelARelB RelC LaV RelC = RelA RelB Lokales Schema RelD RelB = RelD Nutzer-Anfrage SELECT ??? FROM RelA, RelB WHERE ??? Umgeschriebene Anfrage SELECT ??? FROM RelC WHERE ??? Anfrage- umschreibung

22 Felix Naumann, VL Informationsintegration, WS 05/0622 LaV – Anwendungen Anfrageoptimierung Materialisierte Sichten auf Datenbankschema Materialized Views (MVs) Frage: Welche Sichten helfen bei der Beantwortung einer Datenbankanfrage, z.B. durch Vorberechnung von Prädikaten? MV Anfrage Anfrage MV Anfrage = MV Siehe auch DWH VL von Ulf Leser Andere Anwendung: Multi-Query-Optimierung

23 Felix Naumann, VL Informationsintegration, WS 05/0623 LaV – Anwendungen Anfrage MV Umgeschriebene Anfrage Anmerkungen - Nutzbar, - aber nicht immer nützlich Quelle: [Hal01]

24 Felix Naumann, VL Informationsintegration, WS 05/0624 LaV – Anwendungen 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? Wegen virtueller Integration Kann ich die Anfrage vollständig (extensional) beantworten? Open world vs. closed world Beispiele später

25 Felix Naumann, VL Informationsintegration, WS 05/0625 LaV – Anwendungen Datawarehouse Design: Materialisierte Sichten auf Warehouse-Schema Frage: Welche Sichten sollte ich materialisieren (gegeben eine query workload)? Semantisches Caching: Materialisierte Daten beim Client Frage: Welche Daten (modelliert als Anfrage) sollte ich beim Client materialisieren?

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

27 Felix Naumann, VL Informationsintegration, WS 05/0627 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 = %_Datenbanken AND L.univ = Humboldt Umgeschriebene Anfrage SELECT prof FROM DB-kurs D WHERE D.univ = Humboldt Vollständige Antwort (CWA) Frage: Welche Daten fehlen hier? Maximale Antwort

28 Felix Naumann, VL Informationsintegration, WS 05/0628 LaV – Anfragebearbeitung Gegeben: Anfrage Q und Sichten V 1,..., V n Gesucht: Umgeschriebene Anfrage Q, die bei Optimierung (mit MVs): ä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 bzw. maximal containment?

29 Felix Naumann, VL Informationsintegration, WS 05/0629 Überblick Wiederholung Global-as-View (GaV) & GaV Anfragebearbeitung Local-as-View (LaV) LaV Anfragebearbeitung Containment Definition Test Nutzbarkeit und Nützlichkeit von Views

30 Felix Naumann, VL Informationsintegration, WS 05/0630 LaV – Anfrageumschreibungen Gegeben Anfrage Q (query) Sicht V (view) Fragen Ist Ergebnis von V identisch dem Ergebnis von Q? Kurz: Ist V äquivalent zu Q, V = Q ? Rückführung auf Enthalten sein (containment) Ist das Ergebnis von V in Q enthalten? Kurz: Ist V in Q enthalten, V Q ? Denn V Q, Q V V = Q Quelle: VL Data Warehousing, Prof. Ulf Leser, HU Berlin

31 Felix Naumann, VL Informationsintegration, WS 05/0631 LaV – Anfrageumschreibungen Query containment (Anfrage-Enthaltensein) Sei S ein Schema. Seien Q und Q Anfragen gegen S. Eine Instanz von S ist eine beliebige Datenbank D mit Schema S. Das Ergebnis einer Anfrage Q gegen S auf einer Datenbank D, geschrieben Q(D), ist die Menge aller Tupel, die die Ausführung von Q in D ergibt. Q ist contained (enthalten) in Q, geschrieben Q Q, gdw. Q(D) Q(D) für jedes mögliche D. Quelle: VL Data Warehousing, Prof. Ulf Leser, HU Berlin

32 Felix Naumann, VL Informationsintegration, WS 05/0632 LaV – Anfrageumschreibungen Query equivalence (Anfrageäquivalenz) Q ist äquivalent mit Q, geschrieben Q = Q, gdw. Q(D) Q(D) und Q(D) Q(D) für jede mögliche Datenbank D. Wichtig Es zählt das Ergebnis einer Anfrage, nicht die Syntax.

33 Felix Naumann, VL Informationsintegration, WS 05/0633 LaV – Beispiele 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 ANDL.univ = Humboldt AND K.titel LIKE %VL_% 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 ANDL.univ = Humboldt ???

34 Felix Naumann, VL Informationsintegration, WS 05/0634 LaV – Beispiele SELECT K.titel, K.kurs_id FROM Kurs K AND K.univ = Humboldt AND K.titel LIKE %VL_% ??? SELECT K.titel, K.univ FROM Kurs K AND K.univ = Humboldt AND K.titel LIKE %VL_% SELECT K.titel, K.kurs_id FROM Kurs K AND K.univ = Humboldt ??? SELECT K.titel FROM Kurs K AND K.univ = Humboldt

35 Felix Naumann, VL Informationsintegration, WS 05/0635 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 ??? 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 ANDL.univ = Humboldt

36 Felix Naumann, VL Informationsintegration, WS 05/0636 Datalog Notation Im Folgenden: Nur Konjunktive Anfragen Nur Equijoins und Bedingungen mit =, zw. Attribut und Konstanten Kein NOT, EXISTS, GROUP BY,, X>Y,... Schreibweise: Datalog / Prolog SELECT Klausel Regelkopf, Exportierte Attribute FROM Klausel Relationen werden zu Prädikaten WHERE Klausel Joins werden durch gleiche Attributnamen angezeigt Bedingungen werden explizit angegeben

37 Felix Naumann, VL Informationsintegration, WS 05/0637 SQL – Datalog SELECT S.price, L.region_name FROM sales S, time T,... WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND L.shop_id = 123 AND T.year > 1999 q(P,RN) :- sales(SID,PID,TID,RID,P,...), time(TID,D,M,Y), localization(LID,SN,RN), product(PID,PN,PGN), Y > 1999, SID = 123 SELECT FROM WHERE Joins

38 Felix Naumann, VL Informationsintegration, WS 05/0638 Query Containment A query p is contained in a query u, p u, iff all tuples computed by p are also computed by u for every DB. Beispiele (Regelkopf weggelassen) map(Mn,Ms) map(Mn,Ms); map(Mn,Ms), Mn = HGM map(Mn,Ms); map(Mn,Ms), Ms<500 map(Mn,Ms); map(Mn,Ms), clone(Mn,Cn,-) map(Mn,Ms); clone(Mn,Cn,Cs), clone(Mn,Cn,Cs) clone(Mn,Cn,Cs); Quelle: Folien Ulf Leser

39 Felix Naumann, VL Informationsintegration, WS 05/0639 Beweis für Query Containment p u gdw ein containment mapping von u nach p existiert. Containment mapping: h: sym(u) sym(p) (Abbildung der Symbole) CM1: Jede Konstante in u wird auf die gleiche Konstante in p abgebildet. CM2: Jede exportierte Variable in u wird auf eine exportierte Variable in p abgebildet. CM3: Jedes Literal (Relation) in u wird auf mindestens ein Literal in p abgebildet CM4: Die Bedingungen von p implizieren die Bedingungen von u Beweis: [CM77] map(Mn,Ms),clone(Mn,Cn,-,-) map(Mn,Ms); Quelle: Folien Ulf Leser

40 Felix Naumann, VL Informationsintegration, WS 05/0640 Finden von Containment Mappings Problem ist NP vollständig Exponentiell in der Anzahl der Literale Beweis: Reduktion auf Exakt Cover Also: Alles ausprobieren Aufbau eines Suchbaums Jede Ebene entspricht einem Literal Auffächerung nach möglichen CMs Algorithmus Nicht hier siehe DWH VL Ulf Leser

41 Felix Naumann, VL Informationsintegration, WS 05/0641 CM Beispiele Quelle: DWH VL Leser

42 Felix Naumann, VL Informationsintegration, WS 05/0642 CM Beispiele Quelle: DWH VL Leser

43 Felix Naumann, VL Informationsintegration, WS 05/0643 Erzeugung der Anfragen Beobachtung: Interpretation als containment name,spendeID,betrag (spendenDB.firmen spendenDB.spenden) orgname,spendeID,menge (haushaltDB.stadtHaushalt.org.einnahmen haushaltDB.stadtHaushalt.buchungen) name (spendenDB.firmen) orgname (haushaltDB.stadtHaushalt.org)

44 Felix Naumann, VL Informationsintegration, WS 05/0644 Literatur Gute Zusammenfassung für LaV und weiterführende Literatur: [Hal01] Alon Y. Halevy: Answering queries using views: A survey, in VLDB Journal 10: , Weitere Literatur [Ull97] Jeffrey D. Ullman: Information Integration Using Logical Views. ICDT 1997: 19-40ICDT 1997 [CM77] Ashok K. Chandra and Philip M. Merlin. Optimal implementation of conjunctive queries in relational data bases. In Conference Record of the Ninth Annual ACM Symposium on Theory of Computing, pages 77-90, Boulder, Colorado, 2-4 May 1977.Ashok K. ChandraPhilip M. Merlin [LMSS95] Alon Y. Levy, Alberto O. Mendelzon, Yehoshua Sagiv, Divesh Srivastava: Answering Queries Using Views. PODS 1995: Alberto O. MendelzonYehoshua Sagiv Divesh SrivastavaPODS 1995

45 Felix Naumann, VL Informationsintegration, WS 05/0645 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 bereich lehrt eval sem Betreut Eingeschrieben sem VertiefungArbeitet titelkurs_id


Herunterladen ppt "Informationsintegration Containment und Local-as-View Anfragebearbeitung 12.1.2006 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen