Informationsintegration Korrespondenzen Local-as-View Semantik der Anfrageplanung Ulf Leser Wissensmanagement in der Bioinformatik
Abstrakter Wenn das integrierte System ein globales Schema zur Verfügung stellt Wie beschreibt man die Beziehungen zwischen dem globalen und den verschiedenen lokalen Schemata? Wie benutzt man diese Beziehungen zur Anfrageplanung? Kann man aus solchen Beziehungen das integrierte Schema erzeugen? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 2
Aufgabe Globales Schema Korrespondenzen Exportschema Aufgabe der Anfragebearbeitung Gegeben eine Anfrage q gegen das globale Schema Gegeben eine Menge von Korrespondenzen zwischen globalem und lokalen Schemata Finde alle Antworten auf q Ulf Leser: Informationsintegration, Wintersemester 2008/2009 3
Anfragebearbeitung Schritt 1: Anfrageplanung (in den nächsten Wochen) Welche Quellen können / sollen / müssen benutzt werden? Welche Teile der Anfrage sollen an welche Quelle geschickt werden? Schritt 2: Anfrageübersetzung Übersetzung aus der Sprache der Föderation in die Sprache der Quellen Schritt 3: Anfrageoptimierung Finde geeignete Reihenfolge der Ausführung der Teilanfragen Wer führt was aus (Pushen)? Wer kann was ausführen (Kompensation)? Schritt 4: Anfrageausführung Monitoring, Puffern, Cachen Dynamische Reoptimierung Schritt 5: Ergebnisintegration Duplikaterkennung und Konfliktauflösung Ulf Leser: Informationsintegration, Wintersemester 2008/2009 4
Beispiel Globales Schema Datenquellen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 5
Anfrageplanung Globale Anfrage Alle Filme, in denen Hans Albers eine Hauptrolle spielte Was kommt in Frage? film: Quellen imdb.movie und fd.film spielt: Quellen imdb.acts und fd.spielt Ergibt vier Anfragepläne Ulf Leser: Informationsintegration, Wintersemester 2008/2009 6
Global as View / Local as View Global as View Relationen des globalen Schemata werden als Sichten auf die lokalen Schemas der Quellen ausgedrückt Local as View Relationen der Schemata der Quellen werden als Sichten auf das globale Schema ausgedrückt Ulf Leser: Informationsintegration, Wintersemester 2008/2009 7
Global as View (GaV) Beispiel Film( Titel, Name, Jahr, Genre) Regisseur( Name, Foto, Alter) 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 Ulf Leser: Informationsintegration, Wintersemester 2008/2009 8
Zwei Arten von GaV Regel Einfache GaV Regeln: Quellspezifisch Lokale Anfrage adressiert nur eine Quelle Verknüpfung über Quellen hinweg übernimmt die Anfrageplanung Besser wartbar (Änderung einer Quelle kann nur wenige Sichten betreffen) Einfacher zu erweitern (bestehende Views nicht anfassen) Komplexe GaV Regeln: Quellübergreifend Lokale Anfrage ist eine Anfrage in einer Multidatenbanksprache Eine Sicht fasst alle Objekte einer globalen Relation zusammen Sicht film, schauspieler, Anfrageplanung übernimmt nur noch Verknüpfung zwischen verschiedenen Relationen, d.h., Joins in der globalen Anfrage Weniger robust, schwerer zu erweitern Änderung einer Quelle kann alle Sichten betreffen Klassenspezifische Konfliktlösung kann in den View eingebaut werden Ulf Leser: Informationsintegration, Wintersemester 2008/2009 9
Globale Integritätsconstraints Neuerfilm( Titel, Regie, Jahr, Genre); Regisseur( Name, Foto, Alter); IC: Jahr > 2000 CREATE VIEW NeuerFilm AS SELECT * FROM IMDB WHERE Jahr > 2000 UNION SELECT * FROM MyMovies WHERE Jahr > 2000 S1: IMDB( Titel, Regie, Jahr, Genre) S2: MyMovies( Titel, Regie, Jahr, Genre) IC auf globalem Schema in die Sichtdefinition aufnehmen Ausführung in der Quelle (push) oder im Mediator Gegenbeispiel? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 10
GaV Beispiel 3 Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S1: IMDB(Titel, Regie, Jahr, Genre) S2: RegieDB(Titel, Regie) S3: GenreDB(Titel, Jahr, Genre) S7: KinoDB(Titel, Kino, Zeit) SELECT F.Titel, P.Kino, F.Regie FROM Film F, Programm P WHERE F.Titel = P.Titel AND P.Zeit > 20:00 SELECT F.Titel, P.Kino, F.Regie 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 Ulf Leser: Informationsintegration, Wintersemester 2008/2009 11
Direkte Übersetzung SELECT F.Titel, P.Kino FROM ( SELECT * FROM IMDB UNION SELECT R.Titel, R.Regie, 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 π titel,kino σ P.Zeit>20:00 Titel Titel GenreDB RegieDB IMDB KinoDB Ulf Leser: Informationsintegration, Wintersemester 2008/2009 12
Alternative Join-Ausführung π titel,kino π titel,kino Titel σ P.Zeit>20:00 Titel Titel Titel σ P.Zeit>20:00 GenreDB RegieDB IMDB KinoDB GenreDB RegieDB IMDB KinoDB Ulf Leser: Informationsintegration, Wintersemester 2008/2009 13
Inhalt dieser Vorlesung Anfragekorrespondenzen Einführung Korrespondenztypen und -arten GaV erklärt Local as View Query Containment Semantische Korrektheit von Anfrageplänen Später Algorithmen zum Query Containment Answering Queries using Views GLaV Global and Local as View Ulf Leser: Informationsintegration, Wintersemester 2008/2009 14
Anfrageplan Gegeben Eine Anfrage q an das globale Schema Lokale Schemata Definition Gegeben eine globale Anfrage q. Ein Anfrageplan p für q ist eine Anfrage der Form q 1 q n so dass Jedes q i kann von genau einem Wrapper ausgeführt werden Jedes von p berechnete Tupel ist eine semantisch korrekte Antwort für q Bemerkungen Semantisch korrekt haben wir noch nicht definiert In der Regel gibt es viele Anfragepläne Die q i heißen Teilanfragen oder Teilpläne Ulf Leser: Informationsintegration, Wintersemester 2008/2009 15
Viele Anfragepläne Definition Gegeben eine globale Anfrage q. Sei p 1,, p n die Menge aller Anfragepläne für q. Dann ist das Ergebnis von q definiert als Bemerkungen result( q) = In der Informationsintegration sollte UNION Duplikate entfernen Problem der Ergebnisintegration Wie das Ergebnis berechnet wird, ist Sache der Anfrageoptimierung Pläne können sich in Teilanfragen überlappen Ergebnis von q hängt nur von den definierten Korrespondenzen ab U i= 1.. n result( p i ) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 16
Anfragekorrespondenzen Anfrageplanung übersetzt zwischen verschiedenen Sprachen im selben Datenmodell Zielschema und Quellschemata Beziehungen zwischen den Sprachelementen sind Grundlage der semantischen Korrektheit von Plänen Beziehungen: Homonyme, Synonyme, Hyperonyme, etc. Sprachen: Wörter, Sätze, Texte Schemata: Attribute, Relationen, Anfragen Beziehungen werden durch Korrespondenzen ausgedrückt Ulf Leser: Informationsintegration, Wintersemester 2008/2009 17
Übersetzung The dog barked and went away Der Hund bellte und ging weg Strukturelle und semantische Heterogenität Last summer we went to greece spending a year s income Wir sind letzten Sommer nach Griechenland gefahren und haben ein Jahreseinkommen auf den Kopf gehauen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 18
Auf Schemaebene SELECT titel, regisseur FROM film titel SELECT titel, rolle FROM spielt WHERE rolle= Hauptrolle AND s_name= Hans Albers q 1 SELECT title, director FROM imdb.movie q 2 p = q 1 title q 2 SELECT title, role FROM imdb.acts WHERE role = main actor AND actor_name= Hans Albers Ulf Leser: Informationsintegration, Wintersemester 2008/2009 19
Viele Fragen Welche Attribute entsprechen welchen Attributen? Wie bricht man die globale Anfrage am besten auf? Für welche Teile der globalen Anfrage gibt es äquivalente Anfragen an Wrapper? Wie drückt man diese Korrespondenzen aus? Wie kann man dabei mit beschränkten Quellen umgehen? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 20
Inhalt dieser Vorlesung Anfragekorrespondenzen Einführung Korrespondenztypen und -arten GaV erklärt Local as View Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 21
Korrespondenzarten Beziehungen zwischen Attributen Einfach zu finden: Schema Mapping Bottom-Up Beziehungen zwischen Relationen / Anfragen werden hergeleitet Das geht nicht immer eindeutig (später) Beziehungen zwischen Relationen Natürliche Ebene Planung wird zur Ersetzung von Relationennamen Reicht oft nicht, weil Relationen eines Schemas nicht 1:1 den Relationen eines anderen Schemas entsprechen Beziehungen zwischen Anfragen Subsumiert beide vorherigen Konzepte Sehr flexibel Schwierigere Anfrageplanung (LaV gleich) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 22
Korrespondenztypen 1 Sei q 1 ein Sprachelement des globalen Schemas und q 2 ein Sprachelement eines lokalen Schemas Sprachelement = Anfrage/Relation/Attribut Exklusion: q 1 q 2 = Die Extensionen von q 1 und q 2 sind überlappungsfrei Das ist der Normalfall und wird angenommen, wenn keine Korrespondenz zwischen zwei Anfragen bekannt ist Inklusion: q 1 q 2 Die Extensionen von q 2 ist in der von q 1 enthalten In unserem Setting: Extension der Wrapperanfragen (q 2 ) ist in der Extension der globalen Anfrage (q 1 ) enthalten Besser denken: soll enthalten sein Beachte: q 2 wird nur einmal in einer Korrespondenz vorkommen, aber q 1 kann die Obermenge vieler Wrapperanfragen sein Ulf Leser: Informationsintegration, Wintersemester 2008/2009 23
Korrespondenztypen 2 Äquivalenz: q 1 q 2 Die Extensionen von q 1 und q 2 sind identisch Interpretation: q 2 ist die einzig mögliche Datenquelle von q 1 Es darf also keine weitere Regel der Art q i q 2 oder q i q 2 geben Oder damit wird ausgedrückt, dass q 1 q i Betrachten wir im folgenden nicht Überlappung: q 1 q 2 (q 1 q 2 ) ( q 1 q 2 ) Die Extensionen von q 1 und q 2 überschneiden sich, ohne das eine die andere enthält Damit sind manche Ergebnisse von q 2 nicht in der Extension von q 1 enthalten falsche Ergebnisse Diese Korrepondenzen nützen uns nichts Vorgehen: Finde eine Einschränkung filter von q 2 so, dass q 1 filter(q 2 ) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 24
Korrespondenzen Definition Eine (Anfrage-)korrespondenz ist eine Regel der Art q 1 q 2 q 1 ist eine Anfrage an das globale Schema q 2 ist eine ausführbare Anfrage an das Exportschema eines Wrappers Bemerkung Eine Korrespondenz sagt etwas über die Extensionen von Anfragen aus Also über die Beziehungen von Tupelmengen, die durch Anfragen in unterschiedlichen Schemata berechnet werden Also ist das eine Aussage über die Semantik von Anfragen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 25
GaV und LaV Definition Eine Korrespondenz q 1 q 2 heißt GaV (Global-as-View), wenn q 1 (globales Schema) eine einzelne Relation ohne Selektionen oder Joins ist LaV (Local-as-View), wenn q 2 (Wrapperschema) eine einzelne Relation ohne Selektionen oder Joins ist Sonst heißt sie GLaV (Global-local-as-view) Bemerkungen Wir verwenden ab jetzt nur noch - Korrespondenzen Die nächste Zeit wird uns LaV beschäftigen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 26
Inhalt dieser Vorlesung Anfragekorrespondenzen Einführung Korrespondenztypen und -arten GaV erklärt Local as View Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 27
Global-as-View erklärt Eine GaV-Korrespondenz besteht also aus Einer Relation q 1 des globalen Schemas mit Projektionen Aber ohne Selektionen Einer ausführbaren Anfrage q 2 an ein Wrapperschema q 2 hat dasselbe Exportschema wie q 1 Beispiel π titel,regisseur ( film) π title,director ( imdb.movie) π titel,rolle,s_name (spielt) π title,role,actor_name (imdb.acts) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 28
GaV Planung σ rolle,s_name (π titel,regisseur ( film) titel π titel,rolle,s_name (spielt)) π title,director ( imdb.movie) π title,role,actor_name (imdb.acts) p = σ rolle,s_name (q 1 title q 2 ) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 29
Spezifischere Korrespondenzen Man könnte auch andere Regeln spezifizieren q 1 : π titel,regisseur ( film) π title,director ( imdb.movie) q 2 : π titel,rolle,s_name (spielt) σ role,actor_name ( π title,role,actor_name (imdb.acts)) Damit q: π titel,regisseur (film) titel σ rolle,s_name (π titel,rolle,s_name (spielt)) q: q 1 q 2 Vorteil Selektionen werden implizit (durch Regeldefinition) gepushed Nachteil Regel ist gut genau für q für andere Anfragen schlecht Wir brauchen exponentiell mehr Regeln Deklarativer Charakter von Korrespondenzen geht verloren Korrespondenzen: so generisch wie möglich Alles weitere der Anfrageoptimierung überlassen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 30
GaV Planung Relationen des globalen Schemas werden in Anfragen an Wrapper übersetzt Wir fordern meistens an einen Wrapper, aber das kann auch eine UNION von Anfragen an verschiede Wrapper sein Planung mit GaV Regeln: Gegeben q q in relationale Algebra übersetzen Alle Selektionen nach außen ziehen Damit werden alle Selektionen im Mediator ausgeführt Raum für Anfrageoptimierung Projektionen nach außen ziehen Dito - Anfrageoptimierung Alle Relationen in q durch entsprechende Anfragen aus GaV Regeln für die jeweilige Relation ersetzen Testen, ob der Plan ausführbar ist Was kann schief gehen? Alle Pläne: Alle möglichen Kombinationen aus Ersetzungen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 31
Zu allgemeine Wrapperkonzepte Wenn nun aber Global: luxusauto( ) Lokal: auto( ) Luxusautos sind Autos, aber nicht umgekehrt: luxusauto auto Können wir die Quelle also nicht verwenden? Korrespondenzen anders spezifizieren Lokal: auto(,preis, ) Damit: luxusauto σ preis>50000 ( auto(,preis, )) Wenn semantische Einschränkungen nicht durch Anfragen ausdrückbar sind, kann man die Quelle tatsächlich nicht sicher integrieren Siehe globale Integritätsconstraints bei GaV Ulf Leser: Informationsintegration, Wintersemester 2008/2009 32
Inhalt dieser Vorlesung Anfragekorrespondenzen Local as View Notation: Datalog Local-as-View Korrespondenzen Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 33
Konjunktive Anfragen Wir betrachten nur konjunktive Anfragen Equi-joins und Bedingungen mit =,<,> zwischen Attribut und Wert Kein NOT, EXISTS, GROUP BY,, X>Y,... LaV Planung viel schwieriger für andere Anfrageklassen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 34
Kürzere Schreibweise Schreibweise: Datalog (Prolog) q(t,r,o) :- film(t,r,j),spielt(t,n,o),n= Hans Albers ; SELECT Klausel Regelkopf, Exported Variables FROM Klausel Relationen werden zu Prädikaten Attribute werden über Position statt Name adressiert WHERE Klausel Joins: gleiche Variablen an mehreren Stellen repräsentiert Bedingungen mit >,< werden explizit angegeben Gleichheitsbedingungen Attribut = Wert werden durch Konstante in Literal angegeben oder durch eigene Bedingung Ulf Leser: Informationsintegration, Wintersemester 2008/2009 35
SQL Datalog SELECT FROM WHERE Join q(t,r,o) :- film(t,r,j), spielt(t,n,o), N= Hans Albers, O= Hauptrolle ; Ulf Leser: Informationsintegration, Wintersemester 2008/2009 36
Begriffe Ulf Leser: Informationsintegration, Wintersemester 2008/2009 37
Beispiel q(t,r,o) :- film(t,r,j), spielt(t,n,o), N= Hans Albers, O= Hauptrolle ; q(t,r,o) :- film(t,r,_), spielt(u Hans Albers, Hauptrolle ), T=U; film, spielt,.. sind Prädikate Relationen des Schemas film( T,R,J), spielt(t,n,o) sind Literale Eine Anfrage kann ein Prädikat mehrmals enthalten - mehrere Literale desselben Prädikats Literale sind eindeutig in einer Anfrage, Prädikate nicht Variable, die nicht interessieren, kürzt man mit _ ab q ist sicher, wenn jede exportierte Variable im Rumpf vorkommt Ulf Leser: Informationsintegration, Wintersemester 2008/2009 38
Kein echtes Datalog Datalog kennt noch mehr Disjunktion und Vereinigung Andere Joins als Equi-Joins Rekursive Anfragen Extensional predicates: Prädikate, deren Extension in der Datenbank vorliegen Intensional predicates: Prädikate, die zur Laufzeit berechnet werden SQL: Views Verwendet ein intensionales Prädikat sich selber im Rumpf, wird dadurch eine rekursive Anfrage definiert Normales SQL: Verboten Rekursives SQL: Views mit Namen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 39
Inhalt dieser Vorlesung Anfragekorrespondenzen Local as View Notation: Datalog Local-as-View Korrespondenzen Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 40
Warum Local-as-View? Andere Sichtweise Es gibt in der Welt eine Menge von Filmen, Schauspielern, Das globale Schema modelliert diese Welt Theoretisch steht damit die Extension fest Aber niemand kennt sie Informationsintegration versucht sie herzustellen Quellen speichern Ausschnitte der realen Welt Also Sichten auf die globale Extension Nur die können wir verwenden Film Globales Schema Schauspieler Quelle 2 Quelle 1 Quelle 3 Ulf Leser: Informationsintegration, Wintersemester 2008/2009 41
LaV Beispiel Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) S1: IMDB(Titel, Regie, Jahr, Genre) S2: MyMovies(Titel, Genre, Regie, Jahr) S3: RegieDB(Titel, Regie) S4: GenreDB(Titel, Jahr, Genre) CREATE VIEW S1 AS SELECT * FROM Film CREATE VIEW S2 AS SELECT Titel, Regie, Jahr, Genre FROM Film CREATE VIEW S3 AS SELECT F.Titel, F.Regie FROM Film F CREATE VIEW S4 AS SELECT F.Titel, F.Jahr, F.Genre FROM Film F Quelle: VL Data Integration, Alon Halevy, University of Washington, 2002 Ulf Leser: Informationsintegration, Wintersemester 2008/2009 42
Uninteressante lokale Attribute Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S9 AS SELECT Titel, Jahr FROM Film S9: ActorDB(Titel, Schauspieler, Jahr) schauspieler gibt es im globalen Schema nicht Für diese Anwendung uninteressant Ulf Leser: Informationsintegration, Wintersemester 2008/2009 43
Assoziationen im globalen Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S7 AS SELECT P.Kino, F.Genre FROM Film F, Programm P WHERE F.Titel = P.Titel S7: KinoDB(Kino, Genre) Assoziationen des globalen Schemas können in der Sicht dargestellt werden Ulf Leser: Informationsintegration, Wintersemester 2008/2009 44
Assoziationen im lokalen Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) CREATE VIEW S7Filme AS SELECT Titel, Jahr FROM Film CREATE VIEW S7Regie AS SELECT Regie FROM Film S9: Filme(Titel, Jahr, Ort, RegieID); Regie(ID, Regisseur); Assoziationen des lokalen Schemas können nicht abgebildet werden Ulf Leser: Informationsintegration, Wintersemester 2008/2009 45
Lokale Integritätsconstraints 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), Jahr>2000; Nebenbedingung auf der Quelle kann modelliert werden Wenn das Attribut im globalen Schema existiert IC müssen in der Quelle nicht explizit definiert sein Auch implizite Einschränkungen können in den View Ulf Leser: Informationsintegration, Wintersemester 2008/2009 46
Globale Integritätsconstraints Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) Jahr > 2000 CREATE VIEW S1 AS SELECT * FROM Film (WHERE Jahr> 2000)?? S1: IMDB(Titel, Regie, Jahr, Genre) Nebenbedingungen auf dem globalen Schema können wir nicht modellieren Das ging bei GaV Also hat beides Stärken und Schwächen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 47
Komplexere Beispiele Ulf Leser: Informationsintegration, Wintersemester 2008/2009 48
Anfragebearbeitung - Probleme Alle Filme kürzer als 100 Minuten spielfilme (filtern) kurzfilme (vollständig) us_spielfilm (filtern) Alle Filme, die länger als 60 Minuten sind spielfilme (filtern) us_spielfilm (filtern) Besetzungen von Hauptrollen in Filmen unter 100 Minuten spielfilme filmkritiken? spielfilme spielfilm_kritiken? spielfilme us_spielfilm? spielfilme kurzfilm_rollen? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 49
Anders formuliert Globale Anfrage film(t,_,_,l), spielt(t,s,o,_), O= Hauptrolle, L<100; Plan 1 spielfilme filmkritiken Expandiert: film(t,y,r,l),l>79,y= Spielfilm, film(t,_,r,_),spielt(t,s,o,_),o = Hauptrolle, T=T Frage? Erzeugt film(t, Spielfilm,R,L),L>79, film(t,_,r,_),spielt(t,s, Hauptrolle,_); Nur richtige Antworten für film(t,_,_,l), spielt(t,s, Hauptrolle,_), L<100; Ulf Leser: Informationsintegration, Wintersemester 2008/2009 50
Anfrageplanung mit LaV Gegeben Ein globales Schema S Eine Anfrage q an S Eine Menge von Sichten v 1,,v n auf S Gesucht Alle Kombinationen von Sichten, die q beantworten Wir wissen aber nicht, wie wir q am besten zerlegen, so dass eine Teilquery immer einer Sichtdefinition entspricht In der Regel wird das auch nicht gelingen Planung ist viel schwieriger als bei GaV Answering queries using views Anderes Bild: Eine Datenbank und eine Reihe materialisierter Sichten Plötzlich: alle Relationen der Datenbank weg, nur die Views sind noch da Können wir eine Anfrage q nur mit den Views beantworten? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 51
Inhalt dieser Vorlesung Anfragekorrespondenzen Local as View Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 52
Zwei Teilprobleme Welche Kombinationen von Views (also Quellen) liefern semantisch korrekte Antworten auf eine globale Anfrage Anfrageplanung Answering Queries using Views Wann ist ein beliebiger Plan semantisch korrekt? Wir wissen nur, dass bestimmte Teilanfragen (Sichtdefinition) gegen das globale Schema extensional bestimmte Quellrelationen enthalten Durch die Korrespondenzen Wie kann man das auf beliebige Anfragen übertragen? Query Containment Zunächst arbeiten wir nur mit einem View Also: Wenn liefert ein View korrekte Ergebnisse für eine Query? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 53
Query Containment Intuitiv wollen wir das folgende Ein View v liefert nur semantisch korrekte Anfragen auf eine globale Anfrage q, wenn seine Extension in der Extension von q enthalten ist Definition Sei S ein Datenbankschema, I eine Instanz von S und q 1, q 2 Anfragen gegen S. Sei q(i) das Ergebnis einer Anfrage q angewandt auf I. Dann ist q 1 enthalten in q 2, geschrieben q 1 q 2 gdw. q 1 (I) q 2 (I) für alle I Bemerkung Der wichtige Teil ist der letzte: für alle möglichen Instanzen von S Die können wir natürlich nicht alle ausprobieren Ulf Leser: Informationsintegration, Wintersemester 2008/2009 54
Äquivalenz Definition Sei S ein Datenbankschema, I eine Instanz von S und q 1, q 2 Anfragen gegen S. Sei q(i) das Ergebnis einer Anfrage q angewandt auf I. Dann ist q 1 äquivalent zu q 2, geschrieben q 1 q 2 gdw. q 1 (I) q 2 (I) und q 1 (I) q 2 (I) für alle I Bemerkung Wir beschäftigen uns nur mit enthaltenen Anfragen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 55
Einfache Beispiele film(t,y,r,l) film(t,y,r,l) film(t, Dokumentarfilm,R,L) film(t,y,r,l) film(t,y,r,l), L<100 film(t,y,r,l) film(t,y,r,l),spielt(t,s,o) film(t,y,r,l) film(t,y,r,l) spielt(t,s,o) film(t,_,_,_) spielt(t,_,_) Ulf Leser: Informationsintegration, Wintersemester 2008/2009 56
Beispiel Offensichtlich muss eine Sicht mindestens jedes Prädikat der Anfrage enthalten Außerdem müssen die richtigen Attribute vorhanden sein Welche Quellen kommen für spielt in Frage? Ulf Leser: Informationsintegration, Wintersemester 2008/2009 57
Beispiel Welche Quellen kommen für spielt in Frage? filmkritiken Einschränkung auf Hauptrolle macht Tupel nicht falsch us_spielfilm, kurzfilm_rollen Keine Kritiken spielfilm_kritiken Richtige Quelle Ulf Leser: Informationsintegration, Wintersemester 2008/2009 58
Schwierige Fälle Anfragen an Graphen Relation edge( X,Y) speichert Kanten von X nach Y Wir suchen Subgraphen Ist p in q enthalten oder umgedreht? A C Y X Y A X C D B Z D Z B Ulf Leser: Informationsintegration, Wintersemester 2008/2009 59
Inhalt dieser Vorlesung Anfragekorrespondenzen Local as View Query Containment Semantische Korrektheit von Anfrageplänen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 60
Semantische Korrektheit Wir können jetzt (endlich) definieren, wann ein Plan semantisch korrekt ist Aber wir können es noch nicht testen Definition Sei S ein globales Schema, q eine Anfrage gegen S, und p eine Verknüpfung von Views v 1,,v n gegen S, die als rechte Seite von LaV Korrespondenzen definiert sind. Dann ist p semantisch korrekt für q, gdw. p q Bemerkung Die Extension von q gibt es natürlich zum Anfragezeitpunkt nicht Wir verwenden nur Joins als Verknüpfung Ulf Leser: Informationsintegration, Wintersemester 2008/2009 61
Ergebnis einer globalen Anfrage Definition Sei S ein globales Schema, q eine Anfrage gegen S, und p 1,,p n alle semantisch korrekten Pläne für q. Dann ist das Ergebnis von q definiert als q U i=1... n p i Bemerkung Wir müssen alle semantisch korrekten Pläne finden Wie wir die ausführen, bleibt dem Optimierer überlassen Ulf Leser: Informationsintegration, Wintersemester 2008/2009 62
Verblüffende Effekte Eine Quelle für Graphkanten Eine Korrespondenz edge(a,b),edge(b,c) threewaypaths(a,b,c) Nehmen wir die folgende Extension einer Quelle an From (A) Via (B) To (C) 1 3 3 1 3 2 3 4 Nun führen wir darauf aus q: edge(a,b),edge(b,c) from via to 1 3 3 1 3 4 3 3 3 3 3 4 2 3 3 2 3 4 2 4 Ulf Leser: Informationsintegration, Wintersemester 2008/2009 63
Verblüffende Effekte Was ist nun unser Ergebnis? Die komplette Tabelle Wenn die Korrespondenz richtig ist Dann muss die Quelle unvollständig sein Wir können das im Mediator reparieren Wie kriegen wir das rechnerisch? Sei v die linke Seite der Korrespondenz, q die globale Query Dann ist v auf verschiedene Weisen in q enthalten Die werden wir auch alle berechnen Folge der spezifischen Weise, wie wir das Ergebnis einer globalen Anfrage definiert haben Und damit die Semantik der Anfragebearbeitung Ulf Leser: Informationsintegration, Wintersemester 2008/2009 64