datenintegration & datenherkunft global-as-view (gav) und ... · !wenn wir p1-p4 betrachten und...

52
Datenintegration & Datenherkunft Global-as-View (GaV) und Local-as-View (LaV) Wintersemester 2010/11 Melanie Herschel [email protected] Lehrstuhl für Datenbanksysteme, Universität Tübingen 1 Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen Ausblick auf das Semester 2 Problemstellungen Einführung in die Informationsintegration Verteilung, Autonomie und Heterogenität Architekturen Materialisierte und virtuelle Integration 5 Schichten Architektur Mediator/Wrapper Architektur P2P Architektur Mapping Schema Mapping Schema Matching

Upload: others

Post on 27-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & DatenherkunftGlobal-as-View (GaV) und Local-as-View (LaV)

Wintersemester 2010/11

Melanie [email protected]

Lehrstuhl für Datenbanksysteme, Universität Tübingen

1

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Ausblick auf das Semester

2

Problemstellungen•Einführung in die Informationsintegration•Verteilung, Autonomie und Heterogenität

Architekturen•Materialisierte und virtuelle Integration•5 Schichten Architektur•Mediator/Wrapper Architektur•P2P Architektur

Mapping•Schema Mapping•Schema Matching

Page 2: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Ausblick auf das Semester

3

Modellierung•Global-As-View Modellierung•Local-As-View Modellierung

Anfragen•Global-As-View Anfragebearbeitung•Containment und Local-As-View Anfragebearbeitung•Bucket Algorithmus

Datenintegration•Duplikaterkennung•Datenfusion

Datenherkunft (Data Provenance)•Why-, How-, und Where-Provenance•Datenherkunft fehlender Daten

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

4

Page 3: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Das Problem

Wie spezifiziert man die Datentransformationen?

Quelle 1 Quelle 2 Quelle 3

Anwendung 1 Anwendung 2

DataWarehouse

(DW)

ETL1ETL2

ETL3

5

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Das Problem

Wie drückt man die Funktionalität des Wrappers aus?

Quelle 1 Quelle 2 Quelle 3

Anwendung 1 Anwendung 2

Mediator

Wrapper1

Wrapper2

Wrapper3

6

Page 4: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfrageplanung

• Wenn das integrierte System ein globales Schema zur Verfügung stellt

▸ Wie beschreibt man die Beziehungen zwischen dem globalen und den verschiedenen lokalen Schemata?

! Siehe Schema Matching / Schema Mapping Kapitel

▸ Wie benutzt man diese Beziehungen zur Anfrageplanung?

! Besprechen wir hier

Query processing• Query planning• Decomposition• Translation• Result Integration

Schema Integration

7

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Aufgabe

• 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.

Globales Schema

Exportschema/lokales Schema

Korrespondenzen

8

Page 5: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfragebearbeitung

• Schritt 1: Anfrageplanung

▸ 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

9

Beispeil aus der Filmwelt

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Beispiel

• Vereinfachende Annahmen

▸ Quellen bestehen nur aus einer (Export-)Relation.

▸ Keine Datenmodellheterogenität

! Nehmen wir jetzt immer an

! Aufgabe des Wrappers

▸ Zunächst vereinfachend: Keine strukturelle oder schematische Heterogenität

▸ Keine semantische Heterogenität

! Gleiche Namen = gleiche Konzepte

! Nur offensichtliche Schreibvarianten (Sprachunterschiede)

10

Page 6: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Beispiel

• Globales Schema

• Datenquellen

11

film(titel, regisseur)schauspieler (schauspieler_name, nationalitaet)spielt (titel, schauspieler_name, rolle)

Datenquelle & exportierte Relation Beschreibung Globale Relation

imdb.movie (titel, director) Alle Filme der IMDB film

imdb.acts(title, actor_name, role) Zuordnung von Schauspielern zu Filmen der IMDB

spielt

imdb.actor (actor_name, nationality) Alle Schauspieler der IMDB schauspieler

fd.film(titel, regisseur) Alle Filme des Filmdienstes film

fd.spielt (titel, schauspieler_name, rolle)

Zuordnung von Schauspielern zu Filmen des Filmdienstes

spielt

fd.schauspieler(schauspieler_name, nationalitaet)

Alle Schauspieler des Filmdienstes

schauspieler

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Schritt 1: Anfrageplanung

• Globale Anfrage

▸ „Alle Filme, in denen Hans Albers eine Hauptrolle spielte“

• Welche Quellen kommen infrage?

▸ film:! Quellen imdb.movie und fd.film

▸ spielt:! Quellen imdb.acts und fd.spielt

• Ergibt vier Anfragepläne

12

SELECT titel, regisseur, rolleFROM film, spieltWHERE spielt.schauspieler_name = ‘Hans Albers’AND spielt.Rolle = ‘Hauptrolle’AND spielt.titel = film.titel

Page 7: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Vier Anfragepläne

• Jeder Plan besteht aus zwei Teilplänen

▸ Auch p1 und p4

▸ Jeder Teilplan ist quellspezifisch

▸ Kann von einer Quelle ausgeführt werden

• Wer führt die Joins zwischen den Teilplänen aus?

• System kann auswählen

▸ Alle Pläne? (teuer, vollständig)

▸ Schnellster Plan?

▸ Billigster Plan?

▸ Plan mit dem größten Ergebnis?

13

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

FAQ

• Kann man nicht imdb.movie ⋈ imdb.acts gemeinsam betrachten?

▸ Doch – aber wir nehmen noch Quelle = „1 Relation“ an

▸ Später (GaV)

• Warum sollte man imdb.movie und fd.spielt zusammen in einem Plan benutzen?

▸ Weil Quellen Fehler (fehlende Werte) enthalten

▸ Kombination kann neue (und wichtige!) Tupel produzieren

▸ Annahme: Gleiche Werte in den Joinattributen

! Hier: Filmnamen, Schauspielernamen

• Vorsicht vor impliziten Konsistenzannahmen

14

Page 8: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Beispiel

Imdb.movie

Vögel, HitchcockMünchhausen, von Baky

Imdb.acts

Vögel, Kelly, HauptrolleMünchhausen, Bendow, Nebenrolle

fd.film

Vögel, HitchcockMünchhausen, Bürger

fd.spielt

Vögel, Kelly, HauptrolleMünchhausen, Albers, Hauptrolle

Movie ! acts

-

film ! spielt

Münchhausen, Bürger, Hauptrolle

film ⋈ acts

-

movie ! spielt

Münchhausen, van Baky, Hauptrolle

15

SELECT titel, regisseur, rolleFROM film, spieltWHERE spielt.schauspieler_name = ‘Hans Albers’AND spielt.Rolle = ‘Hauptrolle’AND spielt.titel = film.titel

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Schritt 2: Anfrageübersetzung

• Jeder Teilplan kann an genau eine Quelle geschickt werden.

‣ Übersetzung der Schemaelementnamen

‣ Übersetzung einer SQL Anfrage in einen Web-Service, HTTP-Aufruf, XQuery, …

‣ Übersetzung von Konstanten in einer Query

- Was heißt „Hauptrolle“ in der imdb?

AnfrageübersetzungSELECT !titel, rolleFROM ! spieltWHERE !schauspieler_name=‚Hans Albers‘AND! rolle=‚Hauptrolle‘

SELECT !title, roleFROM ! imdb.actsWHERE !actor_name=‚Hans Albers‘AND! role=‚main role‘

SELECT !title, roleFROM ! imdb.actsWHERE !actor_name=‚Hans Albers‘

???

16

Page 9: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Schritt 3: Anfrageoptimierung

• Lokale Optimierung: Jeder Plan einzeln

• Globale Optimierung: Gesamtmenge aller Pläne gemeinsam betrachten

• Fragen

▸ Optimale Reihenfolge der Ausführung der Teilpläne?

▸ Möglicherweise parallele Ausführung?

▸ Selektionsbedingungen global oder lokal prüfen?

17

Teilpläne

TP2:SELECT !title, roleFROM ! imdb.actsWHERE ! actor_name=‚Hans Albers‘AND! role=‚main role‘;

TP1:SELECT !title, directorFROM ! imdb.movie;

Teilpläne

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfrageoptimierung - Möglichkeiten

TP2:SELECT !title, roleFROM ! imdb.actsWHERE ! actor_name=‚Hans Albers‘AND! role=‚main role‘;

TP1:SELECT !title, directorFROM ! imdb.movie;

18

• Erst TP1, dann TP2, dann Join im Mediator

▸ Verlangt nach Download aller Filme der IMDB

▸ Vermutlich sehr teuer

• Besser: TP1 und TP2 parallel

▸ Ergebnis von TP1 ist für TP2 unerheblich

▸ Immer noch sehr teuer

• Erst TP2, dann TP1 umschreiben, Join im Mediator

▸ TP2: nur wenige Tupel

▸ Pushen dieser Tupel an TP1 „WHERE TITLE in (…)“

! Passing bindings

▸ Keine Parallelisierung mehr möglich

▸ Viel kleinere Zwischenergebnisse, vermutlich viel schneller

• …

Page 10: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Schritt 4: Anfrageausführung

• Jeder der vier Pläne wurde optimiert und übersetzt

• Teilpläne müssen ausgeführt werden

▸ Anfrage abschicken, Ergebnis abwarten, lokal puffern

▸ Time-Outs überwachen

▸ Müssen alle Teilpläne ausgeführt werden?

! Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können

! Ergibt 8 Teilpläne - aber nur 4 verschiedene Teilpläne

! Optimierungspotential

! Entweder global optimieren oder dynamisch durch Caching erkennen

• Fehlende Operationen müssen im Mediator ausgeführt werden.

▸ Nicht-pushbare Selektionen

▸ Joins zwischen Relationen verschiedener Quellen

19

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Ergebnisintegration• Jeder Plan liefert eine Menge korrekter Ergebnisse.

• Trotzdem kann es Probleme geben

▸ Duplikate: Objekte sind in mehreren Quellen vorhanden

▸ Konflikte: Objekte sind mehrmals mit widersprüchlichen Angaben vorhanden

AnfrageübersetzungImdb.movie

Vögel, HitchcockMünchhausen, von Baky

Imdb.acts

Vögel, Kelly, HauptrolleMünchhausen, Bendow, Nebenrolle

fd.film

Vögel, HitchcockMünchhausen, Bürger

fd.spielt

Vögel, Kelly, HauptrolleMünchhausen, Albers, Hauptrolle… ! … UNION … ! … UNION …

-Münchhausen, Bürger, HauptrolleMünchhausen, von Baky, Hauptrolle-

20

Page 11: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

21

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

Page 12: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

23

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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 Merkmal bei GaV

Join über mehrere Quellen(Anfragebearbeitung!)

24

Page 13: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

▸ Konfliktlösung kann in den View eingebaut werden

25

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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 ASSELECT Titel, Regie, Jahr, NULL AS GenreFROM MDB! UNIONSELECT Titel, Regie, NULL AS Jahr, GenreFROM MovDB

Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002

Fehlende Attribute

Form des Ergebnisses;Datenfusion

26

Page 14: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – Beispiel

• Problem: Assoziationen werden getrennt

• Da Ergebnis einer Sicht nur eine globale Relation sein kann

• Lösung: Skolemfunktionen

• Tritt auf, wenn

• Attribute verschiedener globaler Relationen in einer lokalen Relation liegen und der verbindende Key/FK lokal nicht existiert

• Nicht im umgekehrten Fall: einfach lokale Relationen joinen…

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

S7: KinoDB(Kino, Genre)

CREATE VIEW Film ASSELECT NULL, NULL, NULL, GenreFROM KinoDB

CREATE VIEW Programm ASSELECT Kino, NULL, NULLFROM KinoDB

Quelle: VL „Data Integration“, Alon Halevy, University of Washington, 2002

27

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Vorschau: Local as View (LaV) – Beispiel

37

• Umgekehrte Betrachtung

• Assoziationen bleiben erhalten

▸ Titel wird zwar nie instantiiert,

▸ aber man weiß, dass es einen verbindenden Titel gibt.

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

28

Page 15: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Integritätsconstraints (ICs)

• Schränken Wertebereiche ein, schließen Werte aus, schließen Kombinationen von Werten aus, ...

• Dienen zur näheren Bestimmung der Intension einer Relation:

▸ teure_autos( auto, preis ), preis>50.000▸ golfclub_mitglieder( name, alter ), alter>55▸ film( title, type ), type∈{spielfilm, doku, kurzfilm}

▸ …

• Für die Integration sehr wichtig

29

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – Gobale ICs

• IC auf globalem Schema kann in diesem Fall in die Sichtdefinition aufgenommen werden

• Ausführung in der Quelle (push) oder im Mediator

Globales Schema NeuerFilm(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) IC: Jahr > 2000

S1: IMDB(Titel, Regie, Jahr, Genre)S2: MyMovies(Titel, Regie, Jahr, Genre)

CREATE VIEW NeuerFilm ASSELECT * FROM IMDBWHERE Jahr > 2000! UNIONSELECT * FROM MyMoviesWHERE Jahr > 2000

30

Page 16: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Probleme mit globalen IC

• Quelle gibt keine Jahr-Informationen

• IC auf globalem Schema kann nicht überprüft werden

• Quelle kann nicht integriert werden

S1: IMDB( Titel, Regie, Jahr, Genre)S2: MyOldOrNewMovies( Titel, Regie)

Globales SchemaNeuerfilm( Titel, Regie, Jahr, Genre);Programm( Kino, Titel, Zeit);IC: Jahr > 2000

CREATE VIEW NeuerFilm ASSELECT !* FROM ! IMDBWHERE !Jahr > 2000! UNIONSELECT Titel, Regie, NULL, NULL FROM ! MyOldOrNewMoviesWHERE !??

31

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – globale ICs

Globales SchemaNeuerFilm(Titel, Regie, Jahr, Genre)Nebenbedingung: Jahr > 2000

oder NeuerFilm(Titel, Regie, Genre)Nebenbedingung: Jahr > 2000

Lokale SchemasS1: AlleFilmeNett(Titel, Regie, Jahr, Genre)S2: AlleFilmeBöse(Titel, Regie, Genre)

CREATE VIEW NeuerFilm ASSELECT * FROM AlleFilmeNettWHERE Jahr > 2000! oderCREATE VIEW NeuerFilm ASSELECT Titel, Regie, Genre FROM AlleFilmeNettWHERE Jahr > 2000

Quelle S2 kann nicht modelliert werden!

32

Page 17: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – Lokale ICs

• Bekannte Nebenbedingung auf der Quelle kann nicht modelliert werden.

• Warum ist das schlecht?

▸ SELECT * FROM film WHERE jahr < 1950

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

S8: NeueFilme(Titel,Regie, Genre)(IC: Jahr > 2000)

CREATE VIEW Film ASSELECT Titel, Regie, NULL, GenreFROM NeueFilme

33

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

„Trick“

• IC in Quelle wird modelliert

▸ (Geht nur, wenn das Attribut in der Quelle instantiiert wird)

• Die Bedingung ändert am Ergebnis nichts

▸ Für eine lokale Anfrage wäre sie sinnlos

• Aber sie hilft dem Anfrageplaner

▸ SELECT * FROM film WHERE jahr < 1950

S8: NeueFilme( Titel, Regie, Jahr, Genre)IC: Jahr > 2000

CREATE VIEW Film ASSELECT !Titel, Regie, Jahr, GenreFROM ! NeueFilmeWHERE !Jahr > 2000

34

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

Page 18: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – lokale ICs

Globales Schema Film(Titel, Regie, Jahr, Genre)

Lokale SchemasS1: 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 = 2010)

CREATE VIEW Film ASSELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNett(WHERE Jahr > 2000)! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, `2010´, GenreFROM AktuelleFilme

Jede Sicht exportiert alle Daten der Quelle!

Jede Quelle kann modelliert werden!

Modellierung nur für Optimierung

35

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – ICs

45

Globales Schema Film(Titel, Regie, Jahr, Genre)

CREATE VIEW Film ASSELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNettWHERE Jahr > 2000! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, 2004, GenreFROM AktuelleFilme

SELECT * FROM(SELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNettWHERE Jahr > 2000! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, 2004, GenreFROM AktuelleFilme)

Anfrage: SELECT * FROM Film

36

Page 19: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – ICs

Globales Schema Film(Titel, Regie, Jahr, Genre)

Anfrage:SELECT * FROM FilmWHERE Jahr > 2001

SELECT * FROM(SELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNett(WHERE Jahr > 2000)! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, 2004, GenreFROM 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

37

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – ICs

Globales Schema Film(Titel, Regie, Jahr, Genre)

Anfrage:SELECT * FROM FilmWHERE Jahr = 2001

SELECT * FROM(SELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNettWHERE Jahr > 2000! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, 2004, GenreFROM 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)

38

Page 20: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Beiträge zum Ergebnis

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – ICs

Globales Schema Film(Titel, Regie, Jahr, Genre)

Anfrage:SELECT * FROM FilmWHERE Jahr < 1950

SELECT * FROM(SELECT *FROM AlleFilmeNett! UNIONSELECT Titel, Regie, NULL, GenreFROM AlleFilmeBöse! UNIONSELECT *FROM NeueFilmeNettWHERE Jahr > 2000! UNIONSELECT Titel, Regie, NULL, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, 2004, GenreFROM AktuelleFilme)

WHERE Jahr < 195039

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – globale und lokale ICs

Globales SchemaNeuerFilm(Titel, Regie, Genre)Nebenbedingung: Jahr > 2000

Lokale SchemasS1: 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 NeuerFilm ASSELECT Titel, Regie, GenreFROM AlleFilmeNettWHERE Jahr > 2000! UNION???! UNIONSELECT Titel, Regie, GenreFROM NeueFilmeNett(WHERE Jahr > 2000)! UNIONSELECT Titel, Regie, GenreFROM NeueFilmeBöse! UNIONSELECT Titel, Regie, GenreFROM AktuelleFilme

Quelle S2 kann nicht modelliert werden!

40

Page 21: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Global as View (GaV) – ICs

• Fazit

• Nebenbedingungen (ICs) 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.

41

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

42

Page 22: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

43

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

GaV – Beispiel

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

SELECT Titel, JahrFROM FilmWHERE 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)

44

Globale Sicht für Film

Page 23: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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)

45

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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)

46

Page 24: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

UNIONSELECT R.Titel, R.Regie, G.Jahr, G.GenreFROM RegieDB R, GenreDB GWHERE 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:00UNIONSELECT F1.Titel, P1.Kino FROM RegieDB F1, GenreDB F2, KinoDB P1WHERE F1.Titel = F2.TitelWHERE F1.Titel = P1.TitelAND P1.Zeit > 20:00

47

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

GaV - Schachtelung

SELECT F.Titel, P.KinoFROM (SELECT * FROM IMDB

UNIONSELECT R.Titel, R.Regie, G.Jahr, G.GenreFROM RegieDB R, GenreDB GWHERE R.Titel = G.Titel

) AS F, (SELECT *

FROM KinoDB ) AS PWHERE F.Titel = P.TitelAND P.Zeit > 20:00

#P.Zeit>20:00

!Titel

KinoDBIMDBRegieDBGenreDB

!Titel

"

48

Page 25: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

GaV - Schachtelung

#P.Zeit>20:00

!Titel

!Titel

"#P.Zeit>20:00

!Titel

!Titel

"

49

KinoDBIMDBRegieDBGenreDBKinoDBIMDBRegieDBGenreDB

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

GaV - Schachtelung

#P.Zeit>20:00

!Titel

!Titel

"

50

KinoDBIMDBRegieDBGenreDB

#P.Zeit>20:00

!Titel!Titel

"

KinoDBIMDBRegieDBGenreDB

Page 26: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

51

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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.

52

Page 27: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Warum LaV?

• 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 versuchtsie herzustellen.

▸ Quellen speichern Sichten auf die globale Extension.

! Also Ausschnitte der realen Welt

▸ Nur die können wir verwenden.

Quelle 1

Film SchauspielerGlobales Schema

Quelle 2

Quelle 353

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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, 200254

Page 28: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – Beispiel

S9: ActorDB(Titel, Schauspieler, Jahr)

CREATE VIEW S9 ASSELECT Titel, NULL, JahrFROM Film

„Verpasste Chance“

55

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – Beispiel

Assoziationen des globalen Schemas können in der Sicht hergestellt werden.

S7: KinoDB(Kino, Genre)

CREATE VIEW S7 ASSELECT Programm.Kino, Film.GenreFROM Film, ProgrammWHERE Film.Titel = Programm.Titel

56

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

Page 29: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – Beispiel

Assoziationen des lokalen Schemas können nicht abgebildet werden.

S9: Filme(Titel, Jahr, Ort, RegieID) Regie(ID, Regisseur)

CREATE VIEW S9_Filme ASSELECT Titel, Jahr, NULL, NULLFROM Film

CREATE VIEW S9_Regie ASSELECT NULL, RegieFROM Film

57

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – Beispiel

• IC auf der Quelle kann modelliert werden

▸ Wenn das Attribut im globalen Schema existiert

• ICs müssen in der Quelle nicht explizit definiert werden

▸ Auch implizite Einschränkungen können in den View

S8: NeueFilme(Titel, Regie, Genre)(IC: Jahr > 2000)

CREATE VIEW S8 ASSELECT Titel, Regie, GenreFROM FilmWHERE Jahr > 2000

58

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit)

Page 30: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – Globale ICs

• Nebenbedingungen auf dem globalen Schema können wir nicht sinnvoll modellieren.

• Das ging aber bei GaV

• Also hat beides Stärken und Schwächen

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)

59

Globales Schema Film(Titel, Regie, Jahr, Genre) Programm(Kino, Titel, Zeit) Nebenbedingung: Jahr > 2000

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Local as View (LaV) – lokale ICs

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 FilmWHERE Jahr > 2000

CREATE VIEW S4 ASSELECT Titel, Regie, Genre FROM FilmWHERE Jahr > 2000

CREATE VIEW S5 ASSELECT Titel, Regie, Genre FROM FilmWHERE 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 zur Optimierung

Modellierung zur Beantwortbarkeit(S4 & S5)

60

Page 31: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

61

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfrageplanung

• Gegeben

▸ Eine Anfrage q an das globale Schema

▸ Lokale Schemata

• Gesucht!

▸ Sequenz von Anfragen q1!…!qn

▸ Jedes qi kann von einem Wrapper ausgeführt werden

▸ Die geeignete Verknüpfung von q1,…,qn beantwortet q

! Innerhalb eines Plans durch Joins: " -> ⋈

! Verschiedene Pläne werden durch UNION zusammengefasst : " -> $

▸ Von q1⋈ … ⋈qn berechnete Tupel sind korrekte Antworten auf q

62

Page 32: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfrageplan

• Wir nennen q1⋈ … ⋈qn einen Anfrageplan.

• Bemerkungen

▸ „Semantisch korrekt“ haben wir noch nicht definiert.

▸ In der Regel gibt es viele Anfragepläne.

▸ Die qi heißen Teilanfragen oder Teilpläne.

63

Anfrageplan

• Gegeben eine globale Anfrage q. Ein Anfrageplan p für q ist eine Anfrage der Form q1⋈ … ⋈qn, so dass

▸ jedes qi von genau einem Wrapper ausgeführt werden kann,

▸ und jedes von p berechnete Tupel eine semantisch korrekte Antwort für q ist.

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Query Containment

• Intuitiv wollen wir das Folgende:

▸ Ein View v liefert (nur) semantisch korrekte Anfragen auf eine globale Anfrage q, wenn seine Extension im Ergebnis von q enthalten ist.

• Bemerkung

▸ Der wichtige Teil ist der letzte: „für alle möglichen Instanzen von S“

▸ Die können wir natürlich nicht alle ausprobieren

64

Query containment

Sei S ein Datenbankschema, I eine Instanz von S und q1, q2 Anfragen gegen I. Sei q(I) das Ergebnis einer Anfrage q angewandt auf I.

Dann ist q1 enthalten in q2, geschrieben q1 % q2 genau dann wenn q1(I) % q2(I) für alle möglichen I.

Page 33: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Semantische Korrektheit

• Damit können wir definieren, wann ein Plan semantisch korrekt ist (aber wir können das noch nicht testen)

• Bemerkung

▸ Also ist die Extension von p in der von q enthalten.

▸ Die Extension von q gibt es natürlich nicht.

65

Semantische Korrektheit

Sei S ein globales Schema, q eine Anfrage gegen S, und p eine Verknüpfung von Views v1,…,vn gegen S, die als linke Seite von LaV Korrespondenzen definiert sind.

Dann ist p semantisch korrekt für q, genau dann wenn p % q.

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Viele Anfragepläne

• Bemerkungen

▸ Der UNION Operator entfernt Duplikate – dahinter verbirgt sich das Problem der Ergebnisintegration.

▸ Wie das Ergebnis berechnet wird, ist Sache der Anfrageoptimierung.

! Pläne können sich in Teilanfragen überlappen.

▸ Das Ergebnis von q hängt von den definierten Korrespondenzen ab.

66

AnfrageergebnisGegeben eine globale Anfrage q. Seien p1, …, pn die Menge aller Anfragepläne für q. Dann ist das Ergebnis von q definiert als

Page 34: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfragebearbeitung – LaV

• 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

"Query Answering Using Views"

67

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BeispielGlobales Schema Lehrt(prof,kurs_id, sem, eval, univ) Kurs(kurs_id, titel, univ)

Quelle 1: Alle DatenbankveranstaltungenCREATE VIEW DB-kurs ASSELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND L.univ = K.univAND K.titel LIKE „%_Datenbanken“

Quelle 2: Alle HPI-VorlesungenCREATE VIEW HPI-VL ASSELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND K.univ = „HPI“AND L.univ = „HPI“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 = „HPI“

Umgeschriebene Anfrage SELECT prof FROM DB-kurs D WHERE D.univ = „HPI“

68

Warum nicht Quelle 2 einbeziehen?

Page 35: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BeispielGlobale AnfrageSELECT titel, kurs_idFROM Kurs KWHERE L.univ = „HPI“

Umgeschriebene AnfrageSELECT titel, kurs_idFROM DB-kurs DWHERE D.univ = „HPI“UNIONSELECT titel, kurs_idFROM HPI-VL

69

Globales Schema Lehrt(prof,kurs_id, sem, eval, univ) Kurs(kurs_id, titel, univ)

Quelle 1: Alle DatenbankveranstaltungenCREATE VIEW DB-kurs ASSELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND L.univ = K.univAND K.titel LIKE „%_Datenbanken“

Quelle 2: Alle HPI-VorlesungenCREATE VIEW HPI-VL ASSELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND K.univ = „HPI“AND L.univ = „HPI“AND K.titel LIKE „%VL_%“

Warum hier doch Quelle 2 einbeziehen?

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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?

70

Page 36: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

71

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – Anfrageumschreibungen

• Gegeben sind eine Anfrage Q (query) und eine 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

72

Query containment (Wdh.)

Sei S ein Datenbankschema, I eine Instanz von S und q1, q2 Anfragen gegen I. Sei q(I) das Ergebnis einer Anfrage q angewandt auf I.

Dann ist q1 enthalten in q2, geschrieben q1 % q2 genau dann wenn q1(I) % q2(I) für alle möglichen I.

Page 37: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – Beispiele

SELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND K.univ = „Humboldt“AND! L.univ = „Humboldt“AND K.titel LIKE „%VL_%“

SELECT K.titel, L.prof, K.kurs_id, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND K.univ = „Humboldt“AND! L.univ = „Humboldt“

??? !

73

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – Beispiele

SELECT K.titel, K.kurs_idFROM Kurs KAND K.univ = „Humboldt“AND K.titel LIKE „%VL_%“

???

SELECT K.titel, K.univFROM Kurs KAND K.univ = „Humboldt“AND K.titel LIKE „%VL_%“

SELECT K.titel, K.kurs_idFROM Kurs KAND K.univ = „Humboldt“

???

SELECT K.titelFROM Kurs KAND K.univ = „Humboldt“

" "

74

Page 38: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – Beispiele

• Prüfung von containment durch Prüfung aller möglichen Datenbanken?

▸ Zu komplex!

• Prüfung von containment durch Existenz eines containment mapping.

▸ NP-vollständig in |Q|+|Q‘| nach [CM77]

▸ Mehrere Algorithmen

▸ Besprechen wir hier nicht.

???

Quelle 5:CREATE VIEW Kurse2 ASSELECT K.titel, K.univFROM Kurs KAND K.univ = „Humboldt“

Quelle 3:CREATE VIEW Hum-Kurse ASSELECT K.titel, K.univFROM Lehrt L, Kurs KWHERE L.kurs_id = K.kurs_idAND K.univ = „Humboldt“AND! L.univ = „Humboldt“

!

75

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Anfrageumschreibung

• Prinzipiell:

▸ Prüfe jede Kombination an Sichten auf Containment

▸ Unendlich viele Kombinationen, da eine Sicht auch mehrfach in eine Umschreibung eingehen kann.

• Verbesserungen:

▸ Satz: Umschreibung mit maximal so vielen Sichten wie Relationen in Anfrage (ohne range-Prädikate).

▸ Geschickte Vorauswahl der Sichten: Nutzbarkeit

! Bucket Algorithmus

76

Page 39: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Kapitel 7GaV und LaV

• Übersicht Anfrageplanung

• Global-as-View (GaV)

• Modellierung

• Anfragebearbeitung

• Local-as-View (LaV)

• Modellierung

• Anfragebearbeitung

• Containment

• Bucket Algorithmus

77

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – Bucket Algorithm (BA)

• Problem:

▸ Man muss exponentiell viele Kombinationen auf containment prüfen.

▸ Schon die Prüfung selbst ist ein NP-vollständiges Problem

! es gibt jedoch effiziente Algorithmen

! idR sind die Kombinationen nicht groß (Anzahl der Relationen)

• Idee zur weiteren Verbesserung:

▸ Reduktion der Anzahl der Kombinationen durch geschickte Vorauswahl

▸ Jede Relation der Anfrage erhält einen bucket (Eimer).

▸ Schritt 1: Füge in jeden bucket alle Sichten, die für die Relation nutzbar sind.

▸ Schritt 2: Prüfe alle Anfrageumschreibungs-Kombinationen, die aus jedem bucket genau eine Sicht enthalten.

78

Page 40: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

79

SQL vs. Datalog Notation

SELECT S.price P, L.region_name RNFROM 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(SID,LID,SN,RN), product(PID,PN,PGN), Y > 1999, SID = 123

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Beispiel

Quelle 1:CREATE VIEW V1 ASSELECT E.stud, K.titel, K.sem, K.kurs_idFROM Eingeschrieben E, Kurs KWHERE E.kurs_id = K.kurs_idAND K.kurs_id ≥ 500AND E.sem ≥ WS98

Quelle 2:CREATE VIEW V2 ASSELECT E.stud, L.prof, E.sem, L.kurs_idFROM Eingeschrieben E, Lehrt LWHERE E.kurs_id = L.kurs_idAND E.sem = L.sem

Quelle 3:CREATE VIEW V3 ASSELECT E.stud, E.kurs_idFROM Eingeschrieben EWHERE E.sem ≤ WS94

Quelle 4:CREATE VIEW V4 ASSELECT L.prof, K.kurs_id, K.titel, E.semFROM Eingeschrieben E, Kurs K, Lehrt LWHERE E.kurs_id = K.kurs_idAND E.kurs_id = L.kurs_idAND L.sem = E.semAND E.sem ≤ WS97

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

V2(stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

V3(stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94

V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem), K(kurs_id, titel), E(stud, kurs_id, sem), sem ≤ WS97

80

Page 41: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Beispiel

Anfrage Q (in SQL)SELECT E.stud, K.kurs_id, L.profFROM Lehrt L, Eingeschrieben E, Kurs KWHERE E.kurs_id = L.kurs_idAND E.sem = L.semAND K.kurs_id = E.kurs_idAND E.sem ≥ WS95 AND kurs_id ≥ 300

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

81

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

V2(stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

V3(stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94

V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem), K(kurs_id, titel), E(stud, kurs_id, sem), sem ≤ WS97

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail

Teilziele (subgoals) von Q

Erzeuge für jedes Teilziel einen bucket.

Bucket 1: Lehrt(prof, kurs_id, sem)

Bucket 2: Eingeschrieben(stud, kurs_id, sem)

Bucket 3: Kurs(kurs_id, titel)Fülle Sichten in die buckets.

82

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

Page 42: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail

•Eine Sicht wird in ein bucket gestellt, wenn mindestens ein Teilziel der Sicht „geeignet“ ist. Also:

•Für jeden bucket

▸ Für jede Sicht:

! Für jedes Teilziel der Sicht

• Prüfung auf „Eignung“:

1.UnifierMapping von allen Attributen im Teilziel von Q auf Attribute im Teilziel von V. D.h.: Alle Anfrageattribute müssen vorkommen.

2. Kompatibilität: Prädikate sind passend.

83

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)prof wird nicht exportiert!

84

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

Page 43: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

85

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V2(stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2

prof wird nicht exportiert!

86

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V3(stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94

Page 44: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

87

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem), K(kurs_id, titel), E(stud, kurs_id, sem), sem ≤ WS97

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

V1

88

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

Page 45: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

V1 V2

89

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V2(stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

sem ( WS95 vs. sem ) WS94

V1 V2

90

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V3(stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94

Page 46: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

stud wird nicht exportiert!

V1 V2

91

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem), K(kurs_id, titel), E(stud, kurs_id, sem), sem ≤ WS97

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

V1 V2

V1

92

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

Page 47: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

titel wird nicht exportiert!

V1 V2

V1

93

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V2(stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

sem ) WS94

V1 V2

V1

94

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V3(stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94

Page 48: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – en detail Beispiel

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3: K(kurs_id, titel)

V2 V4

V1 V2

V1 V4

95

•Für jede Sicht: Betrachte deren Teilziele.

•Falls mind. ein Teilziel geeignet ist, füge Sicht in bucket ein.

Prüfung auf „Eignung“:1. Unifier: Alle Anfrageattribute müssen vorkommen.2. Kompatibilität: Prädikate sind passend.

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem), K(kurs_id, titel), E(stud, kurs_id, sem), sem ≤ WS97

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

BA – Besonderheiten

• Eine Sicht kann in verschiedenen Buckets auftauchen.

▸ Verschiedene Rollen

• Eine Sicht kann mehrmals in einem Bucket auftauchen.

▸ Wenn mehrere Teilziele passen

Bucket 1: L (prof, kurs_id, sem)

Bucket 2: E(stud, kurs_id, sem)

Bucket 3_neu: K(kurs_id)

Q (stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id), sem ≥ WS95, kurs_id ≥ 300

V2 V4

V1 V2

V1 V4

V1(stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98

V1

96

Page 49: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Beispiel

Bucket 1: Lehrt(prof, kurs_id, sem)

Bucket 2: Eingeschrieben(stud, kurs_id, sem)

Bucket 3: Kurs(kurs_id, titel)

V2 V4

V1 V4

V1 V2

Kombinationen V2, V1, V1 V4, V1, V4 V2, V2, V4 V2, V2, V1 V2, V1, V4 V4, V1, V1 V4, V2, V4 V4, V2, V1

Frage: Welche Kombinationen (Pläne) sind zulässig?

97

Anfrage Q (in Datalog)Q(stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), sem ≥ WS95, kurs_id ≥ 300

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Kombinationen

• Wieviele Kombinationen?

▸ |B1| x |B2| x ...x |Bn| (n = |Q|)

▸ Falls m = Anzahl Sichten: mn

▸ Wichtig: Jede der exponentiell vielen Kombinationen liefert potentiell einen Teil des Ergebnisses.

• Eine Kombination Q‘ = V1,...,Vk ist eine Anfrageumschreibung von Q, falls

▸ Q‘ % Q

▸ (oder Q‘, {Prädikate} % Q)

98

Page 50: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Kombinationen

Kombinationen V2, V1, V1 V4, V1, V4 V2, V2, V4 V2, V2, V1 V2, V1, V4 V4, V1, V1 V4, V2, V4 V4, V2, V1

V1 (stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98V2 (stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

V3 (stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem),K(kurs_id, titel),E(stud, kurs_id, sem), sem ≤ WS97

Anfrage: Q (stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), # sem ≥ WS95, kurs_id ≥ 300

Einzelne Sichten nützlich (in Bezug auf Anfrage), aber zusammen Widerspruch: sem # WS98 (V1) vs. sem $ WS97 (V4)

99

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Kombinationen

Kombinationen V2, V1, V1 V4, V1, V4 V2, V2, V4 V2, V2, V1 V2, V1, V4 V4, V1, V1 V4, V2, V4 V4, V2, V1

Q‘(stud, kurs_id, prof):- V2(stud‘, prof, sem, kurs_id), V1 (stud, titel‘, sem, kurs_id), V1 (stud‘, titel, sem‘, kurs_id)

x‘ markiert nicht gebrauchte Attribute.

100

V1 (stud, titel, sem, kurs_id) :- E(stud,kurs_id,sem), K(kurs_id,titel), kurs_id ≥ 500, sem ≥ WS98V2 (stud, prof, sem, kurs_id) :- E(stud, kurs_id, sem), L(prof, kurs_id, sem)

V3 (stud, kurs_id) :- E(stud, kurs_id, sem), sem ≤ WS94V4(prof, kurs_id, titel, sem) :- L(prof, kurs_id, sem),K(kurs_id, titel),E(stud, kurs_id, sem), sem ≤ WS97

Anfrage: Q (stud, kurs_id, prof) :- L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id, titel), # sem ≥ WS95, kurs_id ≥ 300

Page 51: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Kombinationen

• Prüfe Q ⊇ Q’(stud, kurs_id, prof):- V2(stud‘, prof, sem, kurs_id), V1 (stud, titel‘, sem, kurs_id), V1 (stud‘, titel, sem‘, kurs_id)

• Wie?

▸ Q verwendet globale Relationen, Q’ verwendet Sichten

• Durch „unfolding“:Q’ = Q’’(stud, kurs_id, prof):- E(stud‘, kurs_id, sem), L(prof, kurs_id, sem), E(stud,kurs_id,sem), K(kurs_id,titel‘), kurs_id ≥ 500, sem ≥ WS98

• und Finden eines containment mappings.

101

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

LaV – BA – Kombinationen

•Endgültiges Ergebnis: Kombination aller Kombinationen durch UNION:

V1,V2 $ V2,V4

Umgeschriebene Anfrage Q‘:SELECT V1.stud, V1.kurs_id, V2.profFROM V1, V2WHERE V1.sem = V2.semAND V1.kurs_id = V2.kurs_id

UNION

SELECT V2.stud, V2.kurs_id, V2.profFROM V2, V4WHERE V2.sem = V4.semAND V2.kurs_id = V4.kurs_idAND V2.prof = V4.prof

102

Page 52: Datenintegration & Datenherkunft Global-as-View (GaV) und ... · !Wenn wir P1-P4 betrachten und keine Joinbedingungen pushen können!Ergibt 8 Teilpläne - aber nur 4 verschiedene

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

Zusammenfassung

103

GAV LAV

Modellierung

Anfragebearbeitung

Flexibilität

•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.

•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.

•Anfrageumschreibung: Einfaches View unfolding

•Eine große, umgeschriebene Anfrage

•Interessante Optimierungsprobleme

•Anfrageumschreibung: Answering queries using views

•UNION über viele mögliche umgeschriebene Anfragen

•Mehrere Algorithmen

•Viele Anwendungen

•Noch interessantere Optimierungsprobleme

•Bucket Algorithmus

•Views setzen Relationen mehrerer Quellen in Beziehung

•Jede View bezieht sich nur auf eine Quelle

Datenintegration & Datenherkunft | WS2010/11 | Melanie Herschel | Universität Tübingen

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

▸ [Ull97] Jeffrey D. Ullman: Information Integration Using Logical Views. ICDT 1997: 19-40

▸ [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.

▸ [LMSS95] Alon Y. Levy, Alberto O. Mendelzon, Yehoshua Sagiv, Divesh Srivastava: Answering Queries Using Views. PODS 1995: 95-104

104