1 / 52

DJII - Dotazo vací jazyky II

DJII - Dotazo vací jazyky II. Statická analýza dotazovacích jazyků a optimalizace dotaz ů Peter Vojtáš. Motivace.

patty
Download Presentation

DJII - Dotazo vací jazyky II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DJII - Dotazovací jazyky II Statická analýzadotazovacích jazyků a optimalizace dotazů Peter Vojtáš

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

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

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

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

  6. Tablo dotazy Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  7. Tablo dotazy Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

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

  9. Tablo dotazy Tablo Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  24. Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655

  25. Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655

  26. Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655

  27. Složitost inkluze tab. dotazů - alternativa Kredit: Sagiv, Yannakakis. J. ACM. 27 (1980) 633-655

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

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

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

  31. Globální optimalizace–splnitelnost DRK Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

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

  33. Globální optimalizace–splnitelnost DRK Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

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

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

  36. Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  37. ?(a1, a2, a3, a4)

  38. (a1, a2, a3, a4)

  39. Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  40. Globální optimalizace – instance PJ výrazu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  41. Důkazová sémantika Datalogu Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  42. Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  43. Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  44. Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  45. Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  46. Statická analýza – Datalog, inkluze Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

  47. Statická analýza – Datalog, inkluze T Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

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

  49. Statická analýza – Datalog, splnitelnost Kredit: v mnoha aspektech sledujeme knížku [AHV] Abiteboul, Hull, Vianu. Foundations of Databases, Addison-Wesley 1995

More Related