1 / 68

Systemy zarządzania bazami danych

Systemy zarządzania bazami danych. 5. Przetwarzanie zapytań. Przetwarzanie zapytań. Zapytanie  Plan wykonania Plan wykonania  Wynik Przykład: Select B,D From R,S Where R.A = “c”  S.E = 2  R.C=S.C. Wynik B D 2 x. R A B C S C D E a 1 10 10 x 2

ghita
Télécharger la présentation

Systemy zarządzania bazami danych

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. Systemy zarządzania bazami danych 5. Przetwarzanie zapytań 5. Przetwarzanie zapytań

  2. Przetwarzanie zapytań • Zapytanie Plan wykonania • Plan wykonania  Wynik • Przykład: Select B,D From R,S Where R.A = “c”  S.E = 2  R.C=S.C 5. Przetwarzanie zapytań

  3. Wynik B D 2 x R A B C S C D E a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3 5. Przetwarzanie zapytań

  4. Jaki plan wykonania tego zapytania? - Oblicz produkt kartezjański - Wybierz pasujące krotki - Wykonaj rzutowanie Plan naiwny 5. Przetwarzanie zapytań

  5. Bingo! Mamy jednego... RXS R.A R.B R.C S.C S.D S.E a 1 10 10 x 2 a 1 10 20 y 2 . . C 2 10 10 x 2 . . 5. Przetwarzanie zapytań

  6. Algebra relacji = logiczny plan wykonania Plan naiwny B,D sR.A=“c” S.E=2  R.C=S.C X R S Lub: B,D [sR.A=“c” S.E=2  R.C = S.C (RXS)] 5. Przetwarzanie zapytań

  7. Plan sprytniejszy B,D sR.A = “c”sS.E = 2 R S Złączenie naturalne 5. Przetwarzanie zapytań

  8. R S A B C s (R) s(S) C D E a 1 10 A B C C D E 10 x 2 b 1 20 c 2 10 10 x 2 20 y 2 c 2 10 20 y 2 30 z 2 d 2 35 30 z 2 40 x 1 e 3 45 50 y 3 5. Przetwarzanie zapytań

  9. Plan z użyciem indeksów Wykorzystaj indeksy na R.A i S.C (1) Użyj indeksu na R.A żeby wybrać te krotki R, dla których R.A = “c” (2) Dla każdej znalezionej wartości R.C użyj indeksu na S.C by znaleźć pasujące krotki (3) Odrzuć te krotki S, w których S.E  2 (4) Sklej pasujące krotki z R i S (5) Zrzutuj pasujące pary na atrybuty BD i wypisz je jako wynik 5. Przetwarzanie zapytań

  10. =“c” <c,2,10> <10,x,2> czy =2? wynik: <2,x> następna krotka: <c,7,15> R S A B C C D E a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3 A C I1 I2 5. Przetwarzanie zapytań

  11. Schemat optymalizatora zapytanie SQL Analiza składniowa drzewo składni Transformacja wynik logiczny plan zapytania Wykonaj Zastosuj reguły statystyki Pi poprawiony l.p.z. Wybierz najtańszy Oszacuj wielkość wyniku {(P1,C1),(P2,C2)...} l.p.z. + szacunki Oszacuj koszty Wygeneruj plany fizyczne {P1,P2,…..} 5. Przetwarzanie zapytań

  12. Przykładowe zapytanie SQL SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’ ); (Znajdź filmy, w których grały gwiazdy urodzone w 1960) 5. Przetwarzanie zapytań

  13. Drzewo składni <Zapytanie> <SFW> SELECT <SelLista> FROM <FromLista> WHERE <Warunek> <Atrybut> <NazwaRelacji> <Krotka> IN<Zapytanie> title StarsIn <Atrybut> (< Zapytanie>) starName <SFW> SELECT <SelLista> FROM <FromLista> WHERE <Warunek> <Atrybut> <NazwaRelacji> <Atrybut> LIKE <Wzorzec> name MovieStar birthDate ‘%1960’ 5. Przetwarzanie zapytań

  14. Otrzymane wyrażenie „algebry relacji” title  StarsIn <warunek> <krotka> IN name <atrybut> birthdate LIKE ‘%1960’ starName MovieStar 5. Przetwarzanie zapytań

  15. Wstępny logiczny plan zapytania title starName=name  StarsIn name birthdate LIKE ‘%1960’ MovieStar 5. Przetwarzanie zapytań

  16. Poprawiony logiczny plan zapytania title Pytanie: Przesunąć rzutowanie do StarsIn? starName=name StarsIn name birthdate LIKE ‘%1960’ MovieStar 5. Przetwarzanie zapytań

  17. Szacowanie wielkości wyniku Dobrze znać wielkość StarsIn MovieStar P s 5. Przetwarzanie zapytań

  18. Pierwszy plan fizyczny Parametry: kolejność złączania, ilość RAM, wynikowe atrybuty... Hash join Index unique scan Full scan Parametry: warunek selekcji,... StarsIn MovieStar 5. Przetwarzanie zapytań

  19. Szacowanie kosztów L.P.Z P1 P2 … Pn C1 C2 … Cn Wybierz najniższy! 5. Przetwarzanie zapytań

  20. Optymalizacje w algebrze relacji • Reguły transformacji ... • ... zachowujące semantykę • Które transformacje są dobre? • Zachowują semantykę • Dają szansę na poprawę efektywności • Nie obniżą efektywności 5. Przetwarzanie zapytań

  21. Złączenie naturalne • Przemienność R S =S R • Łączność (R S) T= R (S T) • Podobne właściwości dla • Iloczynu kartezjańskiego • Sumy mnogościowej • Przecięcia 5. Przetwarzanie zapytań

  22. Właściwości • Przenoszą nazwy atrybutów do wyniku, więc ich porządek nie ma znaczenia • Można je zapisywać także jako drzewa T R R S S T 5. Przetwarzanie zapytań

  23. Łączność i przemienność R S = S R (R S) T = R (S T) R x S = S x R (R x S) x T = R x (S x T) R U S = S U R R U (S U T) = (R U S) U T 5. Przetwarzanie zapytań

  24. Selekcja sp1p2(R) = sp1vp2(R) = sp1 [ sp2 (R)] [ sp1 (R)] U [ sp2 (R)] 5. Przetwarzanie zapytań

  25. Zbiory a wielozbiory R = {a,a,b,b,b,c} S = {b,b,c,c,d} RUS = ? • Opcja 1SUM RUS = {a,a,b,b,b,b,b,c,c,c,d} • Opcja 2MAX RUS = {a,a,b,b,b,c,c,d} 5. Przetwarzanie zapytań

  26. Opcja 2 (MAX) powoduje prawdziwość:sp1vp2 (R) = sp1(R) UMAXsp2(R) Przykład: R={a,a,b,b,b,c} p1 spełnione przez a,b; p2przez b,c sp1vp2 (R) = {a,a,b,b,b,c}sp1(R) = {a,a,b,b,b}sp2(R) = {b,b,b,c}sp1(R) U sp2 (R) = {a,a,b,b,b,c} 5. Przetwarzanie zapytań

  27. SUM też ma sens (może nawet większy?) Senators (……) Rep (……) Ile jest parlamentarzystów z Kalifornii? T1 = pyr,state Senators; T2 = pyr,state Reps T1 Yr State T2 Yr State 97 CA 99 CA 99 CA 99 CA 98 AZ 98 CA Jak sumować? 5. Przetwarzanie zapytań

  28. Trzeba podjąć decyzję -> Używamy opcji SUM do sumowania wielozbiorów -> Niektórych reguł nie da się zastosować dla wielozbiorów (np. dla selekcji alternatywą) 5. Przetwarzanie zapytań

  29. Rzutowanie Niech: X = zbiór atrybutów Y = zbiór atrybutów XY = X U Y pxy (R) = px [py (R)] 5. Przetwarzanie zapytań

  30. Reguły dlas i ⋈ p = warunek tylko na atrybutach R q = warunek tylko na atrybutach S m = warunek na atrybutach R i S łącznie sp (R ⋈ S) =[sp (R)] ⋈ S sq (R ⋈ S) = R ⋈ [sq (S)] 5. Przetwarzanie zapytań

  31. Reguły dlas i ⋈ spq (R ⋈ S) =[sp (R)] ⋈sq (S)] spqm (R ⋈ S) = sm([sp (R)] ⋈ [sq (S)]) spvq (R ⋈ S) = [sp(R)⋈ S] U [R ⋈sq(S)] 5. Przetwarzanie zapytań

  32. pxz px Reguły dla pis x = podzbiór atrybutów R z = atrybuty w warunku P (też fragment R) px[sp (R) ] = {sp [ px (R) ]} 5. Przetwarzanie zapytań

  33. Reguły dla pi⋈ x = podzbiór atrybutów R y = podzbiór atrybutów S z = przecięcie zbiorów atrybutów R i S pxy (R ⋈ S)= pxy{[pxz (R) ]⋈[pyz (S) ]} 5. Przetwarzanie zapytań

  34. pxy {sp[pxz’ (R) ⋈pyz’ (S)]} z’ = z U {atrybuty użyte w p} pxy {sp(R ⋈ S)} = 5. Przetwarzanie zapytań

  35. Iloczyn kartezjański, selekcja i rzut • Analogicznie, bo to szczególny przypadek złączenia naturalnego, np. sp (R S) =[sp (R)]  S sq (R  S) = R  [sq (S)] 5. Przetwarzanie zapytań

  36. Reguły dlas,, - sp(R  S)= sp(R) sp(S) sp(R - S)= sp(R) - S = sp(R) -sp(S) 5. Przetwarzanie zapytań

  37. Które transformacje są do dobre? sp1p2 (R) sp1 [sp2 (R)] sp (R ⋈ S)  [sp (R)] ⋈ S R ⋈ S  S ⋈ R px [sp(R)] px {sp [pxz(R)]} 5. Przetwarzanie zapytań

  38. Na zdrowy rozum: rób rzuty wcześnie R(A,B,C,D,E) x={E} P: (A=3)  (B=“cat”) pE{sp(R)} czypE{sp{pABE(R)}} 5. Przetwarzanie zapytań

  39. A co jeśli mamy indeks(y) na A i B? B = “cat” A=3 Przetnij zbiory wskaźników żeby dostać zbiór pasujących krotek 5. Przetwarzanie zapytań

  40. Podsumowanie transformacji • Mało transformacji zawsze dobrych • Zwykle dobre: wczesna selekcja • Inne możliwości • Eliminacja wspólnych podwyrażeń • Eliminacja duplikatów lub ... • ... Eliminacja eliminacji duplikatów 5. Przetwarzanie zapytań

  41. Szacowanie kosztu planu wykonania (1) Szacowanie rozmiaru wyniku (2) Szacowanie liczby operacji wejścia-wyjścia 5. Przetwarzanie zapytań

  42. Szacowanie wielkości wyniku • Statystyki dla relacji R • T(R) : liczba krotek R • S(R) : liczba bajtów w każdej krotce R • B(R): liczba bloków zajmowanych przez R • V(R, A) : liczba różnych wartości atrybutu A 5. Przetwarzanie zapytań

  43. A B C D cat 1 10 a Przykład R A: 20-bajtowy napis B: 4-bajtowy integer C: 8-bajtowa data D: 5-bajtowy napis cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d T(R) = 5 S(R) = 37 V(R,A) = 3 V(R,C) = 5 V(R,B) = 1 V(R,D) = 4 5. Przetwarzanie zapytań

  44. Szacunki rozmiaru dla W = R1  R2 T(R1)  T(R2) S(R1) + S(R2) T(W) = S(W) = 5. Przetwarzanie zapytań

  45. Szacunki rozmiaru dla W = sA=a(R) S(W) = S(R) T(W) = ? 5. Przetwarzanie zapytań

  46. T(R) V(R,Z) A B C D cat 1 10 a Przykład R V(R,A)=3 V(R,B)=1 V(R,C)=5 V(R,D)=4 W = sz=val(R) T(W) = cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d 5. Przetwarzanie zapytań

  47. Założenie 1: równomierny rozkład W = sZ=val(R) • Rozkład wartości atrybutu selekcjonującego Z jest równomierny wśród V(R,Z) przyjmowanych wartości 5. Przetwarzanie zapytań

  48. Założenie 2: równomiernie w dziedzinie W = sZ=val(R) • Rozkład wartości atrybutu selekcjonującego Z jest równomierny wśród DOM(R,Z) wartości z dziedziny atrybutu Z 5. Przetwarzanie zapytań

  49. Przykład RWg założenia 2: V(R,A)=3 DOM(R,A)=10 V(R,B)=1 DOM(R,B)=10 V(R,C)=5 DOM(R,C)=10 V(R,D)=4 DOM(R,D)=10 A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d T(R) DOM(R,Z) W = sz=val(R) T(W) = 5. Przetwarzanie zapytań

  50. C=val  T(W) = (1/10)1 + (1/10)1 + ... = (5/10) = 0.5 B=val  T(W)= (1/10)5 + 0 + 0 = 0.5 A=val  T(W)= (1/10)2 + (1/10)2 + (1/10)1 = 0.5 5. Przetwarzanie zapytań

More Related