datentransformation / anfragebearbeitung · tgd durch neue variablen, sogenannte labled nulls...
Post on 25-Jan-2020
5 Views
Preview:
TRANSCRIPT
Datentransformation / Anfragebearbeitung
Dr. Armin Roth
arminroth.de
26.05.2013
Dr. Armin Roth (arminroth.de) II – Datentransformation / Anfragebearb. 26.05.2013 1 / 18
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related