Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls...

22
Datentransformation / Anfragebearbeitung Dr. Armin Roth arminroth.de 26.05.2013 Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 1 / 18

Transcript of Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls...

Page 1: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation / Anfragebearbeitung

Dr. Armin Roth

arminroth.de

26.05.2013

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 1 / 18

Page 2: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Agenda

1 Schema Mapping-Sprachen

2 Datentransformation

3 Anfragebearbeitung Global-as-View

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 2 / 18

Page 3: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

DATALOG Notation

Einschrankung auf konjunktive Anfragen:nur Equijoins und Bedingungen mit =, < ,> zwischen Attributund Konstanten (semi-interval constraints)kein NOT, EXISTS, GROUP BY, 6=, X > Y

Schreibweise DATALOGSELECT-Klausel: Regelkopf, exportierte AttributeFROM-Klausel: Relationen werden zu PradikatenWHERE-Klausel: Joins durch gleiche Attributnamen

S QL vs . Datalog Notation

SELECT S.price P, L.region_name RN

FROM sales S, time T, ...

WHERE S.day_id = T.day_id AND

S.product_id = P.product_id AND

S.shop_id = L.shop_id AND

L.shop_id = 123 AND

T.year > 1999

q(P,RN) :-

sales(SID,PID,TID,RID,P,...),

time(TID,D,M,Y),

localization(SID,LID,SN,RN),

product(PID,PN,PGN),

Y > 1999, SID = 123

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 3 / 18

Page 4: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

Schema Mapping-Sprachen

Sinnvolle Ausdrucksmittel:

Copy: Kopiere Quell- nach Zieltabelle mit UmbenennungBeispiel: S(x1, x2, . . . , xn)→ T (x1, x2, . . . , xn)

Projektion: Ziel- aus Quelltabelle durch Entfernen von SpaltenBeispiel: S(x , y , z)→ T (x , y)

Hinzufugen v. Spalten: Ziel- aus Quelltabelle durch Hinzunahmeneuer Spalten, Beispiel: S(x , y)→ T (x , y , z)

Dekomposition: Teile Quell- in zwei Zieltabellen aufBeispiel: S(x , y , z)→ T1(x , y),T2(y , z)

Join: Zieltabelle durch Join von QuelltabellenBeispiel: T1(x , y),T2(y , z)→ S(x , y , z)

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 4 / 18

Page 5: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

Schema Mapping-Sprachen

Sinnvolle Ausdrucksmittel:

Copy: Kopiere Quell- nach Zieltabelle mit UmbenennungBeispiel: S(x1, x2, . . . , xn)→ T (x1, x2, . . . , xn)

Projektion: Ziel- aus Quelltabelle durch Entfernen von SpaltenBeispiel: S(x , y , z)→ T (x , y)

Hinzufugen v. Spalten: Ziel- aus Quelltabelle durch Hinzunahmeneuer Spalten, Beispiel: S(x , y)→ T (x , y , z)

Dekomposition: Teile Quell- in zwei Zieltabellen aufBeispiel: S(x , y , z)→ T1(x , y),T2(y , z)

Join: Zieltabelle durch Join von QuelltabellenBeispiel: T1(x , y),T2(y , z)→ S(x , y , z)

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 4 / 18

Page 6: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

s-t Tuple-Generating Dependencies

Verallgemeinerung dieser Ausdrucksmittel:Source-to-target tuple-generating dependencies (s-t TGD)QS(x , y)→ QT (x , z)∀x(∃yQS(x , y)→ ∃zQT (x , z)) (x , y , z : Variablenvektoren)

QS bzw. QT : konjunktive Anfragen uber Quell- bzw. Zielschema

s-t TGD (auch GLaV Mappings [Len02]):Hohe Ausdrucksmachtigkeit, gute algorithmischeEigenschaften [FKMP03]

Example:Student(s),Enrolls(s, c)→ Teaches(t, c),Grade(s, c , g)

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 5 / 18

Page 7: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

s-t Tuple-Generating Dependencies

Verallgemeinerung dieser Ausdrucksmittel:Source-to-target tuple-generating dependencies (s-t TGD)QS(x , y)→ QT (x , z)∀x(∃yQS(x , y)→ ∃zQT (x , z)) (x , y , z : Variablenvektoren)

QS bzw. QT : konjunktive Anfragen uber Quell- bzw. Zielschema

s-t TGD (auch GLaV Mappings [Len02]):Hohe Ausdrucksmachtigkeit, gute algorithmischeEigenschaften [FKMP03]

Example:Student(s),Enrolls(s, c)→ Teaches(t, c),Grade(s, c , g)

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 5 / 18

Page 8: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Schema Mapping-Sprachen

Spezialisierungen LaV und GaV

s-t TGDs auch GLaV Mappings(global-and-local-as-view)

GaV (global-as-view)L1(x , y), L2(y , z)→ G (x , y , z)L1(x , y), L2(y , z) ⊆ G (x , y , z)(realisiert Joins)

LaV (local-as-view)L(x , y , z)→ G1(x , y),G2(y , z)L(x , y , z) ⊆ G1(x , y),G2(y , z)(realisiert Dekomposition)

Instanz nInstanz 2Instanz 1

IIS Globales Schema

...

G G1 G2

L1 L2 L

GaV LaV

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 6 / 18

Page 9: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Agenda

1 Schema Mapping-Sprachen

2 Datentransformation

3 Anfragebearbeitung Global-as-View

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 7 / 18

Page 10: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Datentransformation – Problem

Gegeben:Quellschema S , Quellinstanz I , Zielschema T , Mapping ΣGesucht: Ziel-Instanz JSchwierigkeit:

Unterspezifikation von Σ (neue Spalten) →mehrere Losungen fur JWelche sollte materialisiert werden?

Ziel-Instanz J ?

Ziel-Schema T

Quell-Instanz I

Quell-Schema S

Σ

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 8 / 18

Page 11: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Universal Solution und Chase-Prozedur [FKMP03]

Definition Homomorphismus h : J → K zwischen Instanzen

h(c) = c (fur Konstante c)wenn P(a1, . . . , am) ∈ J, dann P(h(a1), . . . , h(am)) ∈ K

Universal Solution:

allgemeinste Losungreprasentiert alle Losungenkanonische Universal Solution durch Chase-Prozedur

Losung J ist universal, wenn sie Homomorphismenzu allen anderen Losungen bzgl. I ,Σ aufweist

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 9 / 18

Page 12: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Universal Solution und Chase-Prozedur [FKMP03]

Definition Homomorphismus h : J → K zwischen Instanzen

h(c) = c (fur Konstante c)wenn P(a1, . . . , am) ∈ J, dann P(h(a1), . . . , h(am)) ∈ K

Universal Solution:

allgemeinste Losungreprasentiert alle Losungenkanonische Universal Solution durch Chase-Prozedur

Losung J ist universal, wenn sie Homomorphismenzu allen anderen Losungen bzgl. I ,Σ aufweist

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 9 / 18

Page 13: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Universal Solution und Homomorphismen

Universal solution J

Ziel-Schema T

Quell-Instanz I

Quell-Schema S

Σ

Solution J2 Solution Jn...Solution J1

h1 h2 hn

Homomorphismen

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden ResearchDr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 10 / 18

Page 14: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Datentransformation – Beispiel

Transformiere Kanten eines Graphen in Pfade der Lange 2

Quellrelation E (A,B), Zielrelation H(A,B)

Σ : E (x , y)→ H(x , z),H(z , y)

Quellinstanz I = {E (1, 2)} mit Konstanten 1 und 2

Unendlich viele Losungen existieren:

J1 = {H(1, 2),H(2, 2)} ist nicht universalJ2 = {H(1, 1),H(1, 2)} ist nicht universalJ3 = {H(1,X ),H(X , 2)} ist universalJ4 = {H(1,X ),H(X , 2),H(1,Y ),H(Y , 2)} ist universalJ5 = {H(1,X ),H(X , 2),H(Y ,Y )} ist nicht universal

Quelle: Phokion Kolaitis, UC Santa Cruz und IBM Almaden Research

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 11 / 18

Page 15: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Chase-Prozedur [FKMP03]

Gegeben: M = (S ,T ,Σ) mit Quellschema S , Zielschema T , s-tTGDs Σ, Quellinstanz I

Bilde Zielinstanz chaseM(I ), die jede s-t TGD in Σ erfullt

Vorgehen:Immer wenn linke Seite einer s-t TGD∀x(∃yQS(x , y)→ ∃zQT (x , z)) in Σ zu true ausgewertet wird:

Fuhre neue Tupel in chaseM(I ) ein wie auf der rechten Seite ders-t TGD definiertexistenziell quantifizierte Variablen auf der rechten Seite der s-tTGD durch neue Variablen, sogenannte labled nulls ersetzen

Anwendung von Skolem-Funktionen zur korrekten Gruppierung

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 12 / 18

Page 16: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Chase-Prozedur [FKMP03]

Gegeben: M = (S ,T ,Σ) mit Quellschema S , Zielschema T , s-tTGDs Σ, Quellinstanz I

Bilde Zielinstanz chaseM(I ), die jede s-t TGD in Σ erfullt

Vorgehen:Immer wenn linke Seite einer s-t TGD∀x(∃yQS(x , y)→ ∃zQT (x , z)) in Σ zu true ausgewertet wird:

Fuhre neue Tupel in chaseM(I ) ein wie auf der rechten Seite ders-t TGD definiertexistenziell quantifizierte Variablen auf der rechten Seite der s-tTGD durch neue Variablen, sogenannte labled nulls ersetzenAnwendung von Skolem-Funktionen zur korrekten Gruppierung

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 12 / 18

Page 17: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Datentransformation

Chase-Prozedur – Beispiel

Transformiere Kanten eines Graphen in Pfade der Lange 2M = (S ,T ,Σ) LaV Mapping mitΣ : E (x , y)→ H(x , z),H(z , y)

Die Chase gibt eine Relation zuruck, die einen neuen Knotenzwischen jeder Kante in E enthalt.

wenn I = {E (1, 2)}, dann chaseM(I ) = {H(1,X ),H(X , 2)}wenn I = {E (1, 2),E (2, 3),E (1, 4)},dann chaseM(I ) ={H(1,X ),H(X , 2),H(2,Y ),H(Y , 3),H(1,Z ),H(Z , 4)}

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 13 / 18

Page 18: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Anfragebearbeitung Global-as-View

Agenda

1 Schema Mapping-Sprachen

2 Datentransformation

3 Anfragebearbeitung Global-as-View

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 14 / 18

Page 19: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Anfragebearbeitung Global-as-View

Anfragebearbeitung – GaV

Gegeben:

Anfrage gegen globales SchemaGaV Mapping: fur jede globale Relation genau eine Sicht auflokale Quellen

Gesucht:

Alle Tupel, die Anfragebedingungen erfullenAber: Daten sind in lokalen Quellen gespeichert!

Idee: Ersetze jede Relation der Anfrage durch ihre Sicht(View Expansion, Query Unfolding)

Resultat: geschachtelte Anfrage gegen Quellschemata

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 15 / 18

Page 20: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Anfragebearbeitung Global-as-View

GaV Anfragebearbeitung – 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)

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 16 / 18

Page 21: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Anfragebearbeitung Global-as-View

GaV Anfragebearbeitung – Anfrageplan

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

SELECT F.Titel, P.KinoFROM Film F, Programm 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)

σP.Zeit>20:00

⋈Titel

KinoDBIMDBRegieDBGenreDB

⋈Titel

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 17 / 18

Page 22: Datentransformation / Anfragebearbeitung · TGD durch neue Variablen, sogenannte labled nulls ersetzen Anwendung von Skolem-Funktionen zur korrekten Gruppierung Dr. Armin Roth (arminroth.de)

Anfragebearbeitung Global-as-View

Literatur

[FKMP03] Ron Fagin, Phokion Kolaitis, Renee J. Miller, and Lucian Popa.Data exchange: Semantics and query answering.In Proc. of the Int. Conf. on Database Theory (ICDT), 2003.

[Len02] Maurizio Lenzerini.Data integration: A theoretical perspective.In Proc. of the Symposium on Principles of Database Systems (PODS), 2002.(optional, sehr theoretisch).

Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 18 / 18