76
Ulf Leser Wissensmanagement in der Bioinformatik Materialisierte Sichten I Optimierung mit MV Data Warehousing und Data Mining

Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser

Wissensmanagement in der Bioinformatik

Materialisierte Sichten I Optimierung mit MV

Data Warehousing und

Data Mining

Page 2: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 2

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV • Kostenbasierte Optimierung mit MV

Page 3: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 3

Beispiel

sales product_id day_id shop_id amount price

time day_id day month_id month year_id year

localization shop_id shop_name region_id region_name

product product_id product_name pg_id pg_name

Page 4: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 4

Materialisierte Sichten

• Beobachtung

– Viele Anfragen sind Variationen anderer Anfragen • Alle Verkäufe nach Produkt, Monat und Region • Alle Verkäufe in Region X nach Produkt, Monat und Shop • Alle Verkäufe in Produktgruppe Y nach Produkt, Monat und Shop

– Viele Anfragen haben gemeinsame Teilanfragen • Joins, Aggregate, …

• Materialisierte Views (MV) – Berechnen und Speichern eines Anfrageergebnisses – Transparente Verwendung in späteren Anfragen

Page 5: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 5

Arbeiten mit einem Cube ...

SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.shop_id, P.product_id, t.day_id

SELECT L.region_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.region_id, P.product_id, T.day_id

SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND P.pg_id = 159 AND T.year = ‚1999‘ GROUP BY L.shop_id, P.product_id, T.day_id

Slice

Roll-Up

Page 6: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 6

Deutlicher

SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.shop_id, P.product_id, t.day_id

SELECT L.region_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.region_id, P.product_id, T.day_id

SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND P.pg_id = 159 AND T.year = ‚1999‘ GROUP BY L.shop_id, P.product_id, T.day_id

Page 7: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 7

MV und Slicing

CREATE MATERIALIZED VIEW all_groups AS SELECT L.shop_id, P.product_id, T.day_id, max(T.year), max(P.pg_id), max(region_id), sum(amount*price) as total FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.shop_id, P.product_id, T.day_id

SELECT L.shop_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND P.pg_id = 159 AND T.year = ‚1999‘ GROUP BY L.shop_id, P.product_id, T.day_id

SELECT shop_id, product_id, day_id, total FROM all_groups A WHERE pg_id = 159 AND year = ‚1999‘

Page 8: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 8

MV und Roll-Up

SELECT L.region_id, P.product_id, T.day_id, sum(amount*price) FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.region_id, P.product_id, S.day_id

CREATE MATERIALIZED VIEW all_groups AS SELECT L.shop_id, P.product_id, T.day_id, max(T.year), max(P.pg_id), max(region_id), sum(amount*price) as total FROM sales S, time T, product P, localization L WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id GROUP BY L.shop_id, P.product_id, S.day_id

SELECT region_id, product_id, day_id, sum(total) FROM all_groups A GROUP BY region_id, P.product_id, S.day_id

Page 9: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 9

Themen

• Query optimization: Welche MV wann verwenden?

– Wann kann man welche MV verwenden? • Query Containment, Ableitbarkeit, Anfrageplanung

– Wann soll man welchen MV verwenden? • Kostenbasierte Optimierung

• View maintenance: Wie hält man MV aktuell? – MV aktualisieren, wenn sich Basistabellen ändern – U.U. schwierig: Aggregate, Joins, Outer-Joins, ...

• View selection: Welche Views soll man materialisieren? – Trade-Off: Schnellere Queries versus Platz / Aktualisierung – Wahl der optimalen MVs hängt von Workload ab

Page 10: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 10

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV

– Einschub: Datalog Notation – Query Containment – Depth-First Algorithmus – Ableitbarkeit und Query Rewriting

• Kostenbasierte Optimierung mit MV

Page 11: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 11

Kürzere Schreibweise

• Wir betrachten zunächst nur konjunktive Anfragen – Equi-joins und Bedingungen mit =,<,> zwischen Attribut und Wert – Kein NOT, EXISTS, GROUP BY, ≠, X>Y, ...

• Schreibweise: Datalog – q(X,Y) :- sales(X,A,B,C),time(A,Y,D),D>1999;

– SELECT Klausel • Regelkopf, exportierte Variable

– FROM Klausel • Relationen werden zu Literalen in Prädikatenschreibweise • Attribute werden über Position statt Name adressiert

– WHERE Klausel • Joins: gleiche Variablen an mehreren Stellen • Bedingungen mit „>,<„ werden explizit angegeben • Bedingungen „Attribut = Wert“ durch Konstante in Literal angeben

Page 12: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 12

SQL – Datalog

SELECT S.price, L.region_name FROM sales S, time T, localization L, product P WHERE S.day_id = T.day_id AND S.product_id = P.product_id AND S.shop_id = L.shop_id AND L.shop_name = ‚KB‘ AND T.year > 1999

q(P,RN) :- sales(SID,PID,TID,LID,P,...), time(TID,D,M,Y), localization(LID,‘KB‘,RN), product(PID,PN,PGN), Y > 1999

SELECT FROM Joins WHERE

Page 13: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 13

Begriffe

Page 14: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 14

Beispiel

• sales, time, .. sind Prädikate – Relationen des Schemas

• sales(SID,PID,…), time(TID,D,M,Y) sind Literale – Eine Anfrage kann ein Prädikat mehrmals enthalten - mehrere

Literale desselben Prädikats – Literale sind eindeutig in einer Anfrage, Prädikate nicht

• Variablen, die nicht interessieren, kürzt man mit „_“ ab • q ist sicher, wenn jede exportierte Variable im Rumpf

vorkommt

q(P,RN) :- sales(SID,PID,TID,LID,P,_,_), time(TID,D,M,Y), localization(LID,‘KB‘,RN), product(PID,PN,PGN), Y > 1999

Page 15: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 15

Kein vollständiges Datalog

• Datalog kennt noch mehr

– Disjunktion, Vereinigung, Theta-Joins, … – Rekursive Anfragen

• Extensional predicates: Prädikate, deren Extension in der Datenbank vorliegen

• Intensional predicates: Prädikate, die zur Laufzeit berechnet werden – SQL: Views

• Verwendet ein intensionales Prädikat sich selber im Rumpf, wird dadurch eine rekursive Anfrage definiert – SQL 1992: Verboten – Heutiges SQL: Views mit Namen

Page 16: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 16

Was müssen wir tun?

• Wir betrachten zunächst den einfachsten Fall – eine

Query q und einen MV v – Verwendung mehrerer MV für eine Query – siehe später – Variante: Beantwortung der Anfrage nur mit MV

• „Answering queries using views“ • Siehe Modul Informationsintegration

• Zentrales Frage: Kann man v verwenden, um q zu beantworten? – Dazu müssen wir eine Aussage über die Ergebnismengen von v

und q machen – Die dürfen wir nur aus den Definitionen von v und q ableiten – Query Containment

Page 17: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 17

Query Containment

• Gegeben Anfragen q und v gegen dasselbe Schema S • Anfrageäquivalenz

– Ist Ergebnis von v immer identisch dem Ergebnis von q? – Kurz: Ist v äquivalent zu q, v≡q

• Anfragecontainment („enthalten in“) – Ist das Ergebnis von v immer im Ergebnis von q enthalten? – Kurz: Ist q in v enthalten, q⊆v

• Offensichtlich gilt: q⊆v, v⊆q ⇒ q≡v

Page 18: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 18

Definition

• Definition Sei S ein Schema und q, v Anfragen gegen S – Eine Instanz von S ist eine beliebige Datenbank D mit Schema S,

geschrieben DS

– Das Ergebnis einer Query q auf einer Datenbank DS, geschrieben q(DS), ist die Menge aller Tupel, die die Ausführung von q in DS ergibt

– q ist äquivalent zu v, geschrieben q ≡ v, gdw. q(DS) = v(DS) für jede mögliche Instanz DS von S

– q ist enthalten in v, geschrieben q⊆ v, gdw. q(DS) ⊆ v(DS) für jede mögliche Instanz DS von S

• Bemerkung – Semantische Definition: Es zählt das Ergebnis einer Query, nicht

ihr Quelltext – Natürlich können wir nicht alle Instanzen aufzählen – Wir müssen Containment nur aufgrund der Anfrage beweisen

Page 19: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 19

Beispiele

q ≡ q

product(PID,PN,PGID, ‚Wasser‘) ⊆ product(PID,PN,PGID,PGN)

product(PID,PN,PGID,PGN) ⊈ localization(SID,SN,RID,RN)

product(PID,PN,PGID,PGN), PGN>‚Wasser‘ ⊆ product(PID,PN,PGID,PGN)

sales(SID,PID,...,P,...), P>80, P<150 ⊈

sales(SID,PID,...,P,...), P>100, P<150

sales(SID,PID,...,P,...), P>100,P<=150,P<170,P>=150 ≡ sales(SID,PID,...,150,...)

sales(SID,PID,...,P,...), product(PID,PN,...)

⊆ sales(SID,PID,...,P,...) (Bei Projektion auf sales)

(Regelköpfe werden unterschlagen)

Page 20: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 20

Schwieriger: Steckt in jedem Ergebnis von q ein Ergebnis von v?

q(B,D) :- edge(A,B), edge(B,C), edge(C,D), edge(D,E) v(A,C) :- edge(A,B), edge(B,C), edge(C,D) q ⊆ v ?

q(C,B) :- edge(A,B), edge(C,A), edge(B,C), edge(A,D) v(X,Z) :- edge(X,Y), edge(Y,Z) q ⊆ v ?

q(A,C) :- edge(A,B), edge(B,C) v(A,C) :- threeNodeedge(A,B,C) q ⊆ v ?

q(B,D):-edge(A,B),edge(B,C),edge(C,D),edge(A,E),edge(E,D) v(A,C):-edge(A,C),edge(C,E),edge(E,A),edge(A,B),edge(D,B) q ⊆ v ? ?

Page 21: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 21

• Definition

– Ein Symbol Mapping h von einer Anfrage v in eine Anfrage q ist eine Funktion h: sym(v) α sym(q)

– Für ein Literal l∈v, l=rel(A1,...,Am) ist h(l) definiert als h(l) := rel( h(A1),..., h(Am) )

• Bemerkung – Symbol Mappings sind totale Funktionen, bilden also jedes

Symbol aus v auf exakt ein Symbol aus q ab

Vorarbeiten

Page 22: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 22

• Definition Ein Containment Mapping (CM) h von Anfrage v nach Anfrage q ist ein Symbol Mapping von v nach q für das folgendes gilt: 1. ∀c∈const(v) gilt: h(c) = c

• Jede Konstante in v wird auf dieselbe Konstante in q abgebildet 2. ∀l∈v gilt: h(l)∈q

• Jedes Literal in v wird auf (mindestens) ein Literal in q abgebildet 3. ∀e∈exp(v) gilt: h(e)∈exp(q)

• Der Kopf von v wird auf den Kopf von q abgebildet 4. cond(q) → cond(h(v))

• Die Bedingungen von q sind logisch restriktiver als die von v

Containment Mappings

Page 23: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 23

Vom CM zum Query Containment

• Theorem

– q ⊆ v gdw. es ein CM von v nach q gibt

• Lemma – q ≡ v gdw. es ein CM von v nach q und ein CM von q nach v

gibt • Beweise [CM77]

– Über die Semantik von Anfragen – Ursprünglich zur Anfrageminimierung entwickelt

• Richtungen beachten – „q in v“ gdw „Containment Mapping von v nach q“

– Aber: Bedingungen von q implizieren Bedingungen von v

Page 24: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 24

Beispiel

v(A,C) :- edge(A,B), edge(B,C), edge(C,D) q(B,D) :- edge(A,B), edge(B,C), edge(C,D), edge(D,E)

v(A,C) :- edge(A,B), edge(B,C), edge(C,D) q(B,D) :- edge(A,B), edge(B,C), edge(C,D), edge(D,E)

Mapping: A→B, B→C, C→D, D→E

q ⊆ v ?

Mapping: A→A, B→B, C→C, D→D

Page 25: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 25

Beispiel

v(TID,P) :- sales(SID,TID,P,...),time(TID,D,...),D>28,D<31 q(Y,Z) :- sales(X,Y,Z...),time(Y,U,...), U>1,U<30

CM: SID→X, TID→Y, P→Z, D→U h(D)=U Aber: U>1∧U<30 !→ h(D)>28∧h(D)<31

q ⊈ v

Page 26: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 26

• Containment Mapping (CM) von v nach q … 1. ∀c∈const(v) gilt: h(c) = c

• Konstante dürfen sich nicht ändern (gleiche Selektionsbedingungen)

2. ∀l∈v gilt: h(l)∈q • Zusätzliche Literale in q sind nur Filter auf dem Ergebnis;

Containment wird dadurch nicht beeinflusst

3. ∀e∈exp(v) gilt: h(e)∈exp(q) • Es müssen auch die richtigen Variablen ausgegeben werden; q

darf weitere Variable exportieren, aber nicht weniger

4. cond(q) → cond(h(v)) • Bedingungen in q müssen äquivalent oder strikter sein (also

höchstens Tupel wegfiltern) als die von v

Intuition

Page 27: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 27

Graphisch

• q darf – Weniger Tupel berechnen, nicht mehr mehr

• z.B. mehr Joins, strengere Bedingungen

– Mehr Spalten berechnen, aber nicht weniger – Intuition: Können wir aus jedem Ergebnis von q ein komplettes

Ergebnistupel für v holen?

q

v

Page 28: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 28

Set-Semantik

• Alles gesagte gilt nur unter Set-Semantik • Beispiel

– v(X,Y) :- r(X,Y) q(X,Y) :- r(X,Y), s(Y,Z) – Set-Semantik: q ⊆ v

– Aber: Im Ergebnis von q ist jedes Tupel (X,Y) aus r so oft enthalten, wie (Y,_) in s enthalten ist

– Unter Bag-Semantik gilt das Containment daher nicht

• Bag-Semantik – Anfragen sind nur dann äquivalent, wenn sie isomorph sind

• Homomorphismen reichen nicht

– Containment bei Anfragen mit Ungleichheit ist unentscheidbar unter Bag Semantik (PODS2006)

Page 29: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 29

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV

– Einschub: Datalog Notation – Query Containment – Depth-First Algorithmus – Ableitbarkeit und Query Rewriting

• Kostenbasierte Optimierung mit MV

Page 30: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 30

Wie findet man Containment Mappings?

• q ⊆ v gdw es ein Containment Mapping von v→q gibt • Naives Verfahren

– Für jedes Symbol Mapping s testen, ob s ein Containment Mapping ist

– Sei m=|sym(q)|, n=|sym(v)| => mn Symbol Mappings

• Besser – Literale müssen auf Literale abgebildet werden (Bedingung 2) – Also müssen alle Symbole jedes Literals in v auf die Symbole

eines Literals in q der gleichen Relation abgebildet werden – Wir zählen mögliche Ziele für Literale auf – Dabei können wir gleich Bedingung 1 (und 3) testen – Übrig bleibt der Test, ob die Teilabbildungen kompatibel sind

Page 31: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 31

Suchraum

Bedingung 2: jedes Literal von v muss auf mindestens ein Literal in q abgebildet werden

a→a b1→b1 b1→b2 b2→b1 b2→b2 c→c

v = a(...),b(...),b(...),c(...) q = b(...),c(...),a(...),b(...),d(...)

v = a(...),b1(...),b2(...),c(...) q = b1(...),c(...),a(...),b2(...),d(...) Nummerieren

q ⊆ v ?

Page 32: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 32

Suchraum

a

b1 b2

b1 b2 b1 b2

c c c c

v =

a(...),

b1(...),

b2(...),

c(...)

Page 33: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 33

Algorithmus (Sketch)

a

b1 b2

b1 b2 b1 b2

c c c c

• Depth-First Traversal des Suchraums • CMs werden Literal für Literal erweitert • Falls CM nicht erweitert werden kann – Suchraum

prunen

Page 34: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 34

Beispiel

v(A,B) = a(A,C),b(C,B),c(B,A) q(X,X) = a(X,Y),b1(Y,Z),b2(Y,X),c1(Z,X),c2(X,X)

CM bis Position Aktuelles CM

Mapping der Literale von v auf Zielliterale in q

A→X,C→Y a(A,C) → a(X,Y)

A→X,C→Y, C→Y,B→Z

a(A,C),b(C,B) → a(X,Y),b1(Y,Z)

A→X,C→Y, C→Y,B→X

a(A,C),b(C,B) → a(X,Y),b2(Y,X)

A→X,C→Y,B→X, B→Z,A→X

a(A,C),b(C,B),c(B,A) → a(X,Y),b2(Y,X),c1(Z,X)

A→X,C→Y,B→X, B→X,A→X

a(A,C),b(C,B),c(B,A) → a(X,Y),b2(Y,X),c2(X,X)

Z nicht exportiert

B →X,B→Z nicht kompatibel

Fertig

Page 35: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 35

Beispielbaum

a

b1 b2

c1 c2 c1 c2

a

a(A,C) → a(X,Y)

a

b1

a(A,C),b(C,B) → a(X,Y),b1(Y,Z)

a

b2

a(A,C),b(C,B) → a(X,Y),b2(Y,X)

a

b2

c1

a(A,C),b(C,B),c(B,A) → a(X,Y),b2(Y,X),c1(Z,X)

a

b2

c2

a(A,C),b(C,B),c(B,A)→ a(X,Y),b2(Y,X),c2(X,X)

Page 36: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 36

Beispielbaum

a

b1 b2

c1 c2 c1 c2

a a

b1

a

b2

a

b2

c1

a

b2

c2

Page 37: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 37

Komplexität

• Lemma Seien q und v Anfragen an Schema S mit m=|q| und n=|v|. Die Suche nach einem Containment Mapping von v nach q durch Aufzählen möglicher Zielliterale benötigt O(nm) Kompatibilitätstests von partiellen CM.

• Beweis – Im Worst-Case entsprechen alle Literale beider Anfragen der

gleichen Relation – Für jedes der n Literale aus v gibt es dann m mögliche Ziele in q – Tests auf Kompatibilität und Berechnung der Vereinigung von

partiellen CM ist polynomial

• Problem ist NP vollständig

Page 38: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 38

Wo sind die Ergebnisse?

• Ein Containment Mapping h von v nach q bestimmt auch das (partielle) Ergebnis von v in den Ergebnissen von q – Für jedes Tupel t im Ergebnis von q – Baue ein Tupel t‘ gemäß des inversen Mappings h-1 auf den

Variablen in exp(q)

• Wenn es mehrere CM von v nach q gibt, wiederhole das für jedes solche Mapping

Page 39: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 39

Zusammenfassung

• Query Containment ist NP-vollständig schon für konjunktive Anfragen – Aber linear, wenn Prädikate nicht mehrmals vorkommen

• Diverse Erweiterungen bekannt – Containment mit UNION, Negation, Aggregation, Rekursion, … – Höhere Komplexitätsklassen oder unentscheidbar

• Weitere Anwendungen – Informationsintegration, Caching, Anfrageminimierung

Page 40: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 40

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV

– Einschub: Datalog Notation – Query Containment – Depth-First Algorithmus – Ableitbarkeit und Query Rewriting

• Ableitbarkeit von Bedingungen • Ableitbarkeit von Joins • Ableitbarkeit von Aggregaten

• Kostenbasierte Optimierung mit MV

Page 41: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 41

Anwendung

• Wie können Containment zeigen - wie wenden wir es an? • Szenario: Können wir MV v für Anfrage q verwenden?

• Möglichkeit 1: v ≡ q äquivalent

– Fertig: v als Ergebnis von q ausgeben • Erinnerung: Das Ergebnis von v ist ja materialisiert

• Möglichkeit 2: v ⊆ q (aber nicht umgekehrt) – v ist ein partielles Ergebnis für q

• Vielleicht mit weiteren Attributen

– v berechnet nur korrekte, aber nicht alle Tupel für q – Um q zu beantworten, müsste man v‘ berechnen so dass q ≡ v ∪ v‘

• Im Allgemeinen schwierig

Page 42: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 42

Beispiel

q

v

v

q

v ⊆ q – Alle Tupel in v sind richtig – Aber es fehlen welche – Die Fehlenden zu bestimmen ist

schwierig

q ⊆ v

– v enthält alle notwendigen Tupel, aber auch noch andere

– Die müssen wir filtern

Page 43: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 43

Anwendung 2

• Möglichkeit 3: q ⊆ v (aber nicht umgekehrt) – Alle Tupel des Ergebnisses von q sind im Ergebnis von v – Aber nicht alle Tupel von v sind korrekt für q – Falsche Tupel müssen aus dem Ergebnis von v entfernt werden

• Probleme – Vollständigkeit: v enthält alle Tupel – aber auch die richtigen

Attribute? – Ableitbarkeit: Wie findet man einen „Filter“ F auf v, so dass nur

die richtigen Tupel selektiert werden, also F(v) ≡ q ?

Page 44: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 44

Vollständigkeit

• Wir wollen q beantworten, in dem wir v filtern • Daher muss v alle Attribute exportieren, die q exportiert • Bedingungen für Containment Mappings müssen

geändert werden

q

v

q

v

Query Containment Ableitbarkeit von q

q' q'

Page 45: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 45

• Definition

Ein erweitertes Containment Mapping (CM) h von Anfrage v nach Anfrage q ist ein Symbol Mapping von v nach q für das gilt: 1. ∀c∈const(v) gilt: h(c) = c 2. ∀l∈v gilt: h(l)∈q 3. ∀e∈exp(q) gilt: ∃e‘∈exp(v) mit h(e‘) = e

• Der Kopf von q ist im Bild des Kopfes von v enthalten 4. cond(q) → cond(h(v))

• In Zukunft: CM = Erweitertes Containment Mapping

Erweitertes Containment Mapping

Page 46: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 46

Ableitbarkeit

• Jetzt hat man alle Attribute, aber zu viele Tupel • Wie findet man die richtigen? • Ableitbarkeit

– Wenn q ⊆ v, dann gilt: q → h(v) • h: Containment Mapping von v nach q • → bezeichnet hier die logische Implikation zwischen Formeln in

Prädikatenlogik

– Gesucht: Ausdruck F für den gilt: q ≡ h(v) ∧ F – Im Allgemeinen unentscheidbar – Aber wir betrachten nur konjunktive Anfragen

Page 47: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 47

Beispiel

v1(P,PN,SN) :- s(SID,PID,LID,P),p(PID,PN),l(LID,SN) v2(P,PN,SN) :- s(SID,PID,LID,P),p(PID,PN),l(LID,SN) P>100, P<300, SN=‚Kreuzberg‘ q1(P,PN,SN) :- s(SID,PID,LID,P),p(PID,PN),l(LID,SN), PN=‚Gerolsteiner‘ q2(P,PN,SN) :- s(SID,PID,LID,P),p(PID,PN),l(LID,SN), P>100, P<200, SN=‚Kreuzberg‘ q3(P,PN,SN) :- s(SID,PID,LID,P),p(PID,PN),l(LID,SN), SN=‚Kreuzberg‘

v1,PN=‚Gerolsteiner‘ ≡ q1

v1,… ≡ qx v2,P<200 ≡ q2

v2,… ≢ q1

v2,… ≢ q3

Page 48: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 48

Beispiele

v1

P PN SN 100 Geroldsteiner Wedding

120 Spreequelle Kreuzberg

150 150 Mitte

80 Geroldsteiner Pankow

250 Geroldsteiner Kreuzberg

q1

P PN SN 120 Geroldsteiner Wedding

80 Geroldsteiner Pankow

250 Geroldsteiner Kreuzberg

v2

P PN SN 120 Spreequelle Kreuzberg

250 Geroldsteiner Kreuzberg

q2

P PN SN 120 Geroldsteiner Kreuzberg

Page 49: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 49

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV

– Einschub: Datalog Notation – Query Containment – Depth-First Algorithmus – Ableitbarkeit und Query Rewriting

• Ableitbarkeit von Bedingungen • Ableitbarkeit von Joins • Ableitbarkeit von Aggregaten

• Kostenbasierte Optimierung mit MV

Page 50: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 50

Ableitbarkeit von Bedingungen

• Annahmen – q ⊆ v (mit erweitertem CM) – q und v beinhalten dieselben Literale, Joins und Gruppierungen – Unterschied nur in den Bedingungen cond(q) bzw. cond(v)

• Damit können wir cond(q) als Filter verwenden – Per Definition CM gilt: cond(q) → cond(h(v)) – cond(q) sind also schärfere Bedingungen; mit denen müssen wir

die Tupel aus v filtern

Page 51: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 51

Beispiel

• Beispiel – v(A,B) :- r(A,B,C),B<40,C>60 – q(A,B) :- r(A,B,C),B<30,C>70

• Ist q aus v ableitbar? – Verschärfung B<30 auf Ergebnis von v berechenbar – Verschärfung C>70 nicht auf Ergebnis von v berechenbar

• Wir müssen also auf exportierte Variable aufpassen

Page 52: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 52

Beispiel

r

A B C 5 45 55

6 35 75

10 25 65

8 28 72

4 41 58

v

A B 6 35

10 25

8 28

q

A B 8 28

Page 53: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 53

Algorithmus

• Annahmen – q ⊆ v mit CM h: v→q – Seien cond(q)={B1,B2,...Bn}

• Algorithmus – Für alle Bedingungen Bi mit h(v) ↛ Bi

– Wenn Bi Variablen enthält, deren Urbild bzgl. h in v nicht exportiert ist: Abbruch

• Unzureichende Bedingung auf einer nicht-exportierten Variable

– Sonst: q ≡ h(v) ∧ cond(q)

• Komplexität des einzelnen Tests – O(n) für Bedingungen der Art: X=5, X<5, X>5 – O(n3) für Bedingungen der Art: X=Y, X<Y,X>Y

Page 54: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 54

Beispiele

v(P,PN,TID) :- s(SID,PID,LID,TID,P),p(PID,PN),l(LID,SN); q1(P,PN,TID) :- s(SID,PID,LID,TID,P),p(PID,PN); q2(P,PN,TID) :- s(SID,PID,LID,TID,P),p(PID,PN),l(LID,SN), t(TID,D,M,Y); q3(P,TID) :- s(SID,PID,LID,TID,P),p(PID,P),l(LID,SN);

q1 ⊆ v ? • Nein: Inner Join mit l(LID,SN) wirkt als Filter in v

q2 ⊆ v ? • Ja: Inner Join mit t() wirkt als Filter in q2 • Also: q2 ≡ h(v),t(TID,D,M,Y)

q3 ⊆ v ? • Ja: Join s(…,P),p(PID,P) ist Filter in q3 • Also: q3 ≡h(v),PN=P

Page 55: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 55

Ableitbarkeit von Joins

• Annahme

– q ⊆ v mit CM h: v→q – q und v beinhalten dieselben Bedingungen und Gruppierungen – Aber unterschiedliche Literale bzw. Joins

• Potentielle Probleme – q enthält Literale, die v nicht enthält – q enthält Joins, die v nicht enthält

• Klar: h bildet jedes Literal aus v auf mindestens ein Literal aus q ab

Page 56: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 56

Algorithmus für Joins

• Algorithmus

– Berechne Literale L=(l1,l2,...) aus q, die nicht im Bild von h sind – Prüfe alle Variable V∈L, die als Bild in h enthalten sind

• D.h. es gibt ein (X→V)∈h (X Variable in v) • Wenn X∉exp(v): Abbruch

– Da nicht kompensierbarer Join mit neuer Tabelle

– Prüfe alle Elemente von J={ (X=Y) | (X→V)∈h ∧ (Y→V)∈h} • Das sind Joins in q aber nicht in v • Wenn X∉exp(v) oder Y∉exp(v): Abbruch

– Da nicht kompensierbarer Join mit Tabelle aus v

• Sonst: q ≡ h(v) ∧ L ∧ J

Page 57: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 57

Beispiel

v(P,PN,SN,TID) :- s(SID,PID,LID,TID,P),p(PID,PN),l(LID,SN) q2(P,PN,SN,TID):- s(SID,PID,LID,TID,P),p(PID,PN),l(LID,SN), t(TID,D,M,Y) q3(P,P,SN,TID) :- s(SID,PID,LID,TID,P),p(PID,P),l(LID,SN)

• q2 ⊆ v – L={t}, J={} – (TID→TID)∈h, aber TID∈exp(v) – Also: q2 ≡ v(P,PN,SN,TID), t(TID,D,M,Y)

• q3 ⊆ v – L={}, J={(PN=P)} – (P→P),(PN→P)∈h, aber P,PN∈exp(v) – Also: q3 ≡ v(P,PN,SN,TID), P=PN

Page 58: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 58

Beispiel

s

SID PID TID LID P 1 2 3 4 5

1 6 8 4 2

p

PID PN 2 Wasser

6 Tee

l LID SN

4 KB

t

TID D M Y 3

4 v

P PN SN TID 5 Wasser KB 3

2 Tee KB 8 q2

P PN SN TID 5 Wasser KB 3

TID

Page 59: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 59

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV

– Einschub: Datalog Notation – Query Containment – Depth-First Algorithmus – Ableitbarkeit und Query Rewriting

• Ableitbarkeit von Bedingungen • Ableitbarkeit von Joins • Ableitbarkeit von Aggregaten

• Kostenbasierte Optimierung mit MV

Page 60: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 60

Ableitbarkeit von Aggregaten

• Annahmen

– q und v haben die Form SELECT G1, G2, ...,Gn, sum(A1) FROM ... WHERE ... GROUP BY G1, G2, ... Gn

– Ohne Gruppierung / Aggregation soll gelten: q ≡ v

• Wir betrachten nur die Aggregatsfunktion SUM • Frage: Welche q kann man unter Verwendung eines

gegebenen v (schneller) beantworten ?

Page 61: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 61

Beispiel

SELECT pg_id, shop_id, year_id, sum(amount*price) FROM sales S, … GROUP BY S.pg_id, S.shop_id, T.year_id

PG Shop Year SUM

Pepsi Kreuzberg 1997 …

Pepsi Charlottenburg 1997 …

Pepsi Kreuzberg 1998 …

Pepsi Charlottenburg 1998 …

Bionade Kreuzberg 1997 …

Bionade Charlottenburg 1997 …

Bionade Kreuzberg 1998 …

Bionade Charlottenburg 1998 …

… … … …

• Sei v

• Welche Gruppierungen in einer Query q können mit v

berechnet werden?

Page 62: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 62

Beobachtung

• In v sind alle Kombinationen von G= {pg_id, shop_id, year_id} mit Summe vorhanden

• Aufsummierung für jede Untermenge von G möglich

SELECT T.pg_id, T.year_id, sum(...) FROM v GROUP BY T.pg_id, T.year_id

SELECT T.shop_id, sum(...) FROM v GROUP BY T.shop_id

PG Year SUM

Pepsi 1997 …

Pepsi 1998 …

Bionade 1997 …

Bionade 1998 …

… … …

Shop SUM

Kreuzberg …

Charlottenburg …

… …

Page 63: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 63

Wiederholung

• Erinnerung Eine Gruppierung H ist aus einer Gruppierung G ableitbar, wenn H ⊆ G

month_id, pg_name, shop_name

pg_name, shop_name

month_id, shop_name

month_id, pg_name

shop_name pg_name month_id

()

Page 64: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 64

Inhalt dieser Vorlesung

• Materialisierte Sichten • Logische Anfrageplanung mit MV • Kostenbasierte Optimierung mit MV

Page 65: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 65

MV in RDBMS

• Die tatsächliche Frage

– Gegeben eine Query q und mehrere materialisierte Views, die zur Ableitung von q dienen können

– Welcher View oder welche Kombination von Views soll verwendet werden, um q möglichst schnell auszuführen?

• Der kleinste • Der, bei dem die Kompensationen billig auszuwerten sind • …

• Allgemeiner: Gibt es Teile von q, die man durch MV+Kompensation ersetzen kann und auch soll?

• Kostenbasierte Optimierung

Page 66: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 66

Anfrageoptimierung mit MVs [TCL+00]

• Klassische Abfolge – Anfrage parsen – Aufzählen von Query Execution Plans (QEP) – Bottom-Up Bewertung von Teilplänen – Konstruktion vollständiger Pläne aus besten Teilplänen

• Dynamische Programmierung

Page 67: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 67

Anfrageoptimierung mit MVs

• MV+Kompensation als potentielle Teilpläne berücksichtigen

• Bottom-Up Bewertung von Teilplänen – Matching: Gibt es für den aktuellen Teilplan geeignete MVs? – Hinzufügen von Kompensationsoperationen notwendig? – Bewertung der Kosten (MV + Kompensation) – Verwendung, wenn er geringere Kosten als andere

Implementierungen des Teilplans in Aussicht stellt

• Welche Rolle spielt dabei Query Containment? – Für jeden Teilplan q‘ müssen alle MVs vi gesucht werden, für die

gilt: q‘ ⊆ vi und überzählige Tupel in vi können gefiltert werden – Praktisch prüft man nicht alle Teilpläne (erst ab k Joins) und

findet nicht alle MVs, sondern möglichst viele möglichst schnell

Page 68: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 68

Beispiel (Snowflakeschema)

SELECT Y.year, sum(amount) FROM sales S, product P, day D, month M, year Y WHERE P.name=„Gerolsteiner“ AND P.product_id = S.product_id AND S.day_id = D.day_id AND D.month_id = M.id AND M.year_id = Y.id AND Y.year in (1997, 1998, 1999) GROUP BY Y.year

CREATE MATERIALIZED VIEW v_time AS SELECT Y.id, Y.year, M.id, M.month, D.id, D.day FROM year Y, month M, day D WHERE Y.id = M.year_id AND M.id = D.month_id

Page 69: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 69

Ausführungsplan

year month

day

product

σyear in (1997, 1998, 1999)

σp_name=‚Gerolsteiner' sales

GROUP BY year_id

CREATE MATERIALIZED VIEW v_time AS SELECT Y.id, Y.year, M.id, M.month, D.id, D.day FROM year Y, month M, day D WHERE Y.id = M.year_id AND M.id = D.month_id

Page 70: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 70

Alternativplan

year

month day

product

σyear in (1997, 1998, 1999)

σp_name=‚Gerolsteiner' sales

GROUP BY year_id CREATE MV v_time AS SELECT Y.id, Y.year, … FROM year Y, month M, day D WHERE Y.id = M.year_id AND M.id = D.month_id

Page 71: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 71

Alternativen bewerten

year month day

product

σyear in (1997, 1998, 1999)

σp_name=‚Gerolsteiner'

sales

GROUP BY year_id

v_time

product

σyear in (...)

σp_name=‚Gerolsteiner'

sales

GROUP BY year_id

Page 72: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 72

Einschränkungen

• Matching muss sehr schnell gehen

– Lieber einen MV übersehen, als zu lange für Auswahl brauchen – Trick: MVs indexieren (insb. nach enthaltenen Relationen)

• I.d.R. werden nicht alle Pläne aufgezählt – Typischerweise nur Left-Deep Joins – Gezieltes Suchen nach MVs muss eingebaut werden

• Echten Systemen finden nicht alle möglichen MV – Abhängig von Datenbanksystem – Beispiele für Einschränkungen

• Keine Funktionen in Bedingungen • Keine Negation • ...

Page 73: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 73

Einschränkungen – Beispiele [GL01]

• Möglichkeiten, die MS-SQLServer verpasst

– Äquivalente Formelausdrücke • Q: WHERE .... A+B=10 • V: WHERE .... (B/2+A/2)*10=50

– Induzierbare Äquivalenzen • Q: WHERE .... A=2 and B=2 • V: WHERE .... A=B

– Ersetzung konstanter/berechenbarer Output-Columns • Q: SELECT A,B ... WHERE... B=3 • V: SELECT A,3 ... WHERE... • Q: SELECT... WHERE A*B>50 • V: SELECT A*B ... WHERE

– ...

Page 74: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 74

Optimierung mit Aggregaten

• Annahme – Geg. eine Anfrage q mit Gruppierung – Geg. eine Menge materialisierter Views V={v1, …, vn} – q sei aus allen vi ableitbar

• Frage: Welchen View benutzt man am besten?

• Siehe CUBE Optimierung

A,B,C,D

A,B,D B,C,D A,B,C

C B A

B,D

()

D

A,D A,B A,C B,C C,D

A,C,D

Page 75: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 75

Literatur

• [Leh03], Kapitel 7.2, 8.2 • Zaharioudakis, M., et al. (2000). "Answering Complex

SQL Queries Using Automatic Summary Tables". ACM SIGMOD

• Bello, R. G., et al. (1998). "Materialized Views in Oracle". 24th VLDB

• Goldstein, J. and Larson, P.-A. (2001). "Optimizing Queries Using Materialized Views: A Practical, Scalable Solution". ACM SIGMOD, Seattle

• Leser, U. and Naumann, F. (2006). "Informationsintegration". Heidelberg, dpunkt.verlag.

Page 76: Data Warehousing und Data Mining - hu-berlin.de · Ulf Leser: Data Warehousing und Data Mining 4 Materialisierte Sichten • Beobachtung – Viele Anfragen sind Variationen anderer

Ulf Leser: Data Warehousing und Data Mining 76

Selbsttest

• Wie kann man testen, ob eine Query q in einem View v

enthalten ist? • Definieren Sie „Containment Mapping“ • Prüfen Sie, ob es für folgende Paare q und v ein CM

gibt; falls ja, geben Sie alle CMs an • Berechnen Sie eine Kompensation für die folgenden

Paare q und v • Was ist der Unterschied zwischen einem CM und einem

erweiterten CM?