520 likes | 723 Views
DJII - Dotazo vací jazyky II. Statická analýza dotazovacích jazyků a optimalizace dotaz ů Peter Vojtáš. Motivace.
E N D
DJII - Dotazovací jazyky II Statická analýzadotazovacích jazyků a optimalizace dotazů Peter Vojtáš
Motivace • Statická analýza (relačních dotazovacích jazyků RDJ) chápeme ve smyslu statické analýzy programovacích jazyků PJ (viz Static code analysis) - analýza (kódu) dotazů bez vykonávání programů z nich vytvořených (bez dynamické analýzy). Lze ji vykonat automatizovaným nástrojem ale také formálními metodami které dokazují vlastnosti dotazů. • Obvyklé cíle statické analýzy PJ (a tedy i RDJ): • odhalení chyb • Optimalizace jako součást kompilace • Odhad složitosti úloh • Bezpečnost, … • Specifické cíle RDJ • Ekvivalence různých formalizmů • Co může laik, co expert, co automaticky (trénovací fáze ano-ne) • … • Poznámka Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Obsah • Značení • Konjunktivní dotazy, základní pojmy tablo dotazů • Ekvivalence Tablo, konjunktivní DRK a definitní Datalog • Tablo a relační algebra • Lokální a globální optimalizace dotazů • Inkluze tablo dotazů a jejich homomorfismus • Statická analýza relačního kalkulu AHV 6.3-4 • Inkluze tablo dotazů • Splnitelnost tablo dotazů • Instance tablo dotazu • Minimalizace počtu spojení jako globální optimalizace • Statická analýza Datalogu AHV 12.5 Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Značení • Konstanty a, b, cProměnné x, y • Množiny proměnných X, YTermy e • Atributy A, B, C • Množiny atributů U, V, W • Názvy (jména) relací (schéma) R, S; R[U], S[V] Ri= {Ai1,…Aiki} nebo Ri[Ai1,…Aiki] • Databáze R, S, R = (R1, …, Rn) • Konstantní n-tice t, s • N-tice s možným výskytem proměnných u, v, w • Fakta R(a1, …, an), R(t) • Atomy R(e1,…, en), R(u) • Instance relací I, J (různá značení i v této přednášce) • Instance databází I, J I = (I1, …, In) Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Konjunktivní dotazy– Tablo dotazy q = ans(u) R1(u1),…, Rn(un), v:var(q) dom Výsledek dotazu q nad instancí I je q(I) = {v(u): v(ui) ∈I(Ri)} Konjunktivní dotazy jsou monotónní I⊆J pakq(I) ⊆ q(J) Konjunktivní dotazy jsou splnitelné, ex. I, q(I) ≠ Když u je prázdné, výsledek {<>}tab = {}TM = ano výsledek{}tab = TM = ne Tablo (tableau)T(T) nad R (R) je v-instance nad dom var Tablo dotaz qBer = (T, u) obsahuje souhrn u např. u = <Theater:xth, Address:xad> v našem příkladě Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Tablo dotazy Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Tablo dotazy Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Tablo dotazy V jednom tablo Názvy atributů jednoznačné i vně tablo Stačí Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Tablo dotazy Tablo Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Konjunktivní dotazy • Vnoření tablo T do instance I je ohodnocení proměnných T takové, že v(T) ⊆I • výstup dotazu q = (T, u) nad I je q(I) = {v(u): v je vnoření T do instance I} • Konjunktivní doménový kalkul {e1,…, en | x1,…, xk (R1(u1) & … & Rn(un))} • Konjunktivní (pravidlový) Datalogovský dotaz ans(e1,…, en) R1(u1), …, Rn(un) • Tablo dotaz s R1(u1), …, Rn(un) a u = < e1,…, en > • Tvrzení. Jsou ekvivalentní (jazyk bez rovnosti) • Jazyk s rovností ans(x, y) R(x), y=z (není bezpečné) ans(x) R(x), x=a, x=b • Pravidlový dotaz q je buď nesplnitelný (q = q) T(a,x) R(x) nebo ekvivalentní dotazu bez rovnosti. S(x) T(b,x) Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Konjunktivní dotazy – algebra • Pokud se na záznamy dívám jako uspořádané tice qBer = π4,8(σ4=7(σ1=5(σ2=„Bergman“(Movies x Pariscope x Location)))) • To je SPC algebra (select, project, Cartesian product) • Pokud se na záznamy dívám jako zobrazeni z atributů qBer = πTheater, Address((σDirector=„Bergman“(Movies)*Pariscope)*Location) • To je SPJR algebra (select, project, join, rename) • Tvrzení. Dotazy v konjunktivním doménovém kalkulu, konjunktivním (pravidlovém) Datalogu, Tableaux, splnitelné v SPC algebře, (splnitelné v SPJR algebře) jsou všechny ekvivalentní. • Bezpečné dotazy, doménově nezávislé, přirozená a aktivní (aktuální) doména, finite model theory, …to bylo zčásti i opakování, teď nové věci Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
T-dotazy a relační algebra Veta.(viz Aho..., SIAM J. Comp. 8,2 (1979) 218-246) Pro každý omezený relační výraz E (selekce, projekce, přirozené spojení s disjunktními proměnnými) existuje T-dotaz q = (T; u) tak, že pro každou instanci I platí E(I) = q(I). Důkaz – nástin myšlenky. Mějme relaci AB se sloupci A a B, a relaci BC se sloupci B a C a výraz E = πAC(σB=0(AB BC)) Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Lokální optimalizace dotazů • Praktická optimalizace dotazů • Algebraická optimalizace • Plán vyhodnocování • Heuristiky, statistiky, … • Časté a nákladné dotazy (proces ladění-učení – automaticky, asistence člověka, …) • Člověk píšící dotaz se může snažit psát tak aby při vyhodnocování zleva byl optimální • Člověk píše do dotazu omezení (informace) které pomůžou pomoci optimalizátoru dotazů … • Další, viz AHV Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace • Předešlá technika – lokální – v stromu dotazu nějaké spolu související uzly přeuspořádám. Globální optimalizace – najednou vymaže vícero spojení • Definice. Mějme dva dotazy q1 a q2 nad stejným schématem R, řekneme, že q1je obsažen v q2 pokud pro každou instanci I schématu R platípakq1(I) ⊆ q2(I). • Výsledky budou uváděny pro jedno tablo, i když platí pro obecné databázové schéma • Jaké vztahy inkluze platí mezi q0, q1, q2, qω? • Intuitivně q0 ⊆ q1 • Jak je složité ověřit inkluzi? Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace • Intuitivně q0 ⊆ q1 ⊆ q2 ⊆ qω • Obrácená inkluze? lze nahlédnout, že q = q’? Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace– homorfismus • Definice. Nechť q1 = (T1, u1) a q2 = (T2, u2) jsou dva tablo dotazy. Homomorfismus z q2 na q1 je substituce θ taková, že θ(T2) ⊆ T1 a θ(u2) ⊆ u1. • Věta. q1 ⊆ q2 iff existuje homomorfismus z q2 na q1. Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace– homorfismus • Věta. Nechť q1 = (T1, u1) a q2 = (T2, u2) jsou dva tablo dotazy, pak q1 ⊆ q2 iff existuje homomorfismus z q2 na q1. • Intuice.„větší“θ(T2) ⊆ T1 znamená víc podmínek v konjunkci T1 tedy výsledek je menší, θ(u2) ⊆ u1 v souhrnu (závěrečné projekci) znamená, že dotazy jsou kompatibilní. • Důkaz. () Nechť θ je homomorfismus a nechť I je fixované. vezměme r ∈ q1(I) libovolné. r se do q1(I) dostalo díky ohodnocení proměnných λ takové, že λ(T1) ⊆I a r = λ(u1) ∈I pak ale z θ(T2) ⊆ T1 plyne λ(θ(T2)) ⊆λ(T1) ⊆I a θ(u2) ⊆ u1 implikuje λ(θ(u2)) ⊆λ(u1) = r ∈I. Jelikož u2 a u1 jsou souhrny tabel nad stejným schématem, jejich inkluze znamená = a tedy λ(θ(u2)) = r, pak λθ dokládá, že r ∈ q2(I) . Inkluze a tedy () je ověřeno . Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace– homorfismus • Důkaz. () Nechť q1⊆ q2 a var(T1) var(T2) = , položme dom := dom var(T1) a uvažujme T1 jako instanci (tabulku) nad R. Pak, jelikož q1⊆ q2 platí pro každou instanci, tak také q1(T1) ⊆ q2(T1). Protože předpokládáme, že var(u1) ⊆ var(T1), tak souhrn vždy splňuje u1∈ q1(T1), z inkluze máme také u1∈ q2(T1). Tedy, existuje θ tak, že θ(T2) ⊆ T1 a θ(u2) = u1∈ T1. To jsou ale podmínky na homorfismus z T2 do T1, () qed. • Poznámka. Všimněme si, že q1⊆ q2 iff u1∈ q2(T1), T1 hraje střídavě roli dotazu a instance(tabulky), q1 ≡ q2 znamená, že u1 a u2 jsou identické, až na přejmenování … Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–minimalizace tablo • Definice. Řekneme, že tablo dotaz (T, u) je minimální, když neexistuje dotaz (S, v) ekvivalentní s (T, u) a |S|<|T| (tedy ostře méně spojení). • Věta. Nechť q = (T, u) je tablo dotaz. Pak existuje T´ ⊆ T(zde inkluze je množinová na řádcích tabel) taková, že q´ = (T´, u) je minimální tablo dotaz a q ≡ q´. • Důkaz. Nechť (S, v) je minimální ekvivalentní s q, a mějme homomorfismy θ : q (S, v) a λ: (S,v) q. Položme T´ = λ(θ(T)), pak λθ: q (T´, u) je homomorfismus. Identita je homomorfismus z (T´, u) do q, jsou tedy ekvivalentní jak q ≡(T´, u) tak i (S, v) ≡ (T´, u). Navíc |T´| ≤ |S|, a z minimality |T´| = |S|, a (T´, u) je minimální. • Poznámka. Tato věta říká, že minimalizace počtu spojení lze provést minimalizací počtu řádků tabulkového dotazu. Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–minimalizace tableau • Příklad. Najděte minimální podmnožinu řádků. Můžu vynechat u1? Nechť θ je homo z (T, u ) na sebe, tak, že u1 θ(T) Jelikož θ je identita na u, θ(z) = z, jediná možnost je θ(u1) = u5, Pak ale θ(y1) = y2 a následně θ(u2) {u4, u5}, odsuď θ(z1) {z2, z} a následně θ(u3) u3, to ale vede ke sporu, protože θ(y) = y, u1 nelze tedy eliminovat a je prvkem minimální tabulky …u4 a u5 lze, u2 a u3 ne, minimální tabulka je {u1, u2, u3} Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–minimalizace tableau • Příklad. Nabízí se optimalizační postup: • Přelož q do tabulkového dotazu • Minimalizuj počet řádků tabulky • Přelož výsledek do SPC, SPJR výrazu • Použij optimalizaci stromu dotazu Např. q=πAB(σB=5(R))* πBC(πAB(R)* πAC(σB=5(R))) Minimální πAB(σB=5(R))*πBC((σB=5(R)) • Definice. Dotazy (T, u) a (T´, u´) jsou izomorfní, když existuje prostá substituce θ z proměnných do proměnných taková, že θ((T, u)) = (T´, u´), (ovšem θ-1((T´, u´)) = (T, u)). • Věta. Nechť q = (T, u) a q´ = (T´, u´) jsou minimální a ekvivalentní, pak jsou q a q´ izomorfní • Problém. Je minimální jediné (nejmenší)?Jak složité je nalézt minimální pod-tabulku (určitě je to v NPNP (prohledám všechny podtabulky a její všechny podtabulky…), v NP jde taky …) Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Složitost inkluze tablo dotazů Věta. Problém rozhodování inkluze tablo dotazů je NP úplný (problém existence homomorfismu). Příklad. Instance 3-SAT problému Je splnitelná, pokud existuje homomorfismus z q2 do q1 (se souhrnem a1, a2)q1 q2 Tedy, pokud q1⊆ q2(každá disjunkce „dostane“ 7 řádků ohodnocení které ji splňují, q2 je váže) Kredit: Aho, Sagiv, Ullman. SIAM J. Comp. 8 (1979) 218-246
Složitost inkluze tablo dotazů Důkaz. Každé instanci 3-SAT problému |var(φ)|=n, přiřadím matici q2φ s k+n sloupci a k řádky, na diagonále uspořádání proměnných var(φ)… Každému řádku ai… q2 odpovídá 7 řádků ai s ohodnocením … (se souhrnem a1,…)q1 q2 Případné θ zobrazí řádek ai v q2 na některý řádek ai v q1, … spousta proměnných „vata“… Kredit: Aho, Sagiv, Ullman. SIAM J. Comp. 8 (1979) 218-246
Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655
Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655
Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655
Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655
Globální optimalizace–minimalizace tabla Věta. Nechť U1, U2 jsou tablo dotazy, je NP-úplné rozhodnout zda U1 vzniklo vymazáním řádků U2 a U1 ≡ U2 (stačí U1(I) U2(I)). Důkaz. Položme P1 = {q1, q2| q1 q2} Tab2 a P2 = {q1, q2| q1 q2 a q1 vzniklo vymazáním z q2} Tab2 . Hledáme f: Tab2 Tab2 (PTIME) takové, že (q1, q2) P1 (f1(q1, q2), f2(q1, q2)) P2 Nechť q1 = (T1, u) a q2 = (T2, u), f1(q1, q2) = q1 a f2(q1, q2) = (T1 T2, u), pak f1(q1, q2)(I) = q1(I) f2(q1, q2)(I) = q1(I) q2(I) q1(I) q2(I) , protože f2(q1, q2)(I) f1(q1, q2)(I) vždy. Věta. Pro daný konjunktivní dotaz je NP těžké minimalizovat počet spojení (najít ekvivalentní dotaz s minimálním počtem spojení). Důkaz. Převedeme na ekvivalentní tablo a minimalizujeme q2 f2 q1 f1 Kredit: Aho, Sagiv, Ullman. SIAM J. Comp. 8 (1979) 218-246
Globální optimalizace–splnitelnost tablo • Definice. Řekneme, že tablo dotaz (T, u) je minimální, když neexistuje dotaz (S, v) ekvivalentní s (T, u) a |S|<|T| (tedy ostře méně spojení). • Věta. Nechť q = (T, u) je tablo dotaz. Pak existuje T´ ⊆ T(zde inkluze je množinová na řádcích tabulek) taková, že q´ = (T´, u) je minimální tabulkový dotaz a q ≡ q´. • Důkaz. Nechť (S, v) je minimální ekvivalentní s q, a mějme homomorfismy θ : q (S, v) a λ: (S,v) q. Položme T´ = λ(θ(T)), pak λθ: q (T´, u) je homomorfismus. Identita je homomorfismus z (T´, u) do q, jsou tedy ekvivalentní jak q ≡(T´, u) tak i (S, v) ≡ (T´, u). Navíc |T´| ≤ |S|, a z minimality |T´| = |S|, a (T´, u) je minimální. • Poznámka. Tato věta říká, že minimalizace počtu spojení lze provést minimalizací počtu řádků tablo dotazu. Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–splnitelnost DRK • Definice. q je splnitelný když existuje I tak, ze q(I) . • Věta. Rozhodnout splnitelnost dotazu relačního kalkulu je rekurzivně spočetné a není rekurzivní. • Důkaz. Rekurzivní spočítatelnost zřejmá, • Převedeme Postův korespondenční problém PCP (o němž víme, že není rekurzivní ) na problém splnitelnosti relačního kalkulu (tablo dotaz je splnitelný vždy). Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–splnitelnost DRK Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–splnitelnost DRK u1=011, u2=011, u3=0 v1=0, v2=11, v3=01100 u1u2u3u2 = 0110110011 = v1v2v3v2 Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace–splnitelnost DRK Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace – (a)cyklické joiny (pro n liché) Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace – instance PJ výrazu • Věta. Je NP -úplné rozhodnout pro daný project-join relační výyraz q0 nad R, instanci I nad R a n-tici t rozhodnout zda t q0(I) Důkaz. Tablo Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Důkazová sémantika Datalogu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, inkluze Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
Statická analýza – Datalog, inkluze T Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995
S(x1,x3) T(x1,x2), R(x2,a,x3) T(x1,x4) R(x1,a,x2), R(x2,b,x3), T(x3,x4) T(x1,x3) R(x1,a,x2), R(x2,a,x3) S Ta T abT | aa
Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995