systemy zarządzania bazami danych
DESCRIPTION
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. RABC S CDE a11010x2 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/1.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 1
Systemy zarządzania bazami danych
5. Przetwarzanie zapytań
![Page 2: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/2.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 2
Przetwarzanie zapytań• Zapytanie Plan wykonania• Plan wykonania Wynik • Przykład:
Select B,DFrom R,SWhere R.A = “c” S.E = 2 R.C=S.C
![Page 3: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/3.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 3
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
Wynik B D2 x
![Page 4: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/4.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 4
Jaki plan wykonania tego zapytania?
- Oblicz produkt kartezjański- Wybierz pasujące krotki- Wykonaj rzutowanie
Plan naiwny
![Page 5: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/5.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 5
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 . .
Bingo!
Mamy jednego...
![Page 6: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/6.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 6
Algebra relacji = logiczny plan wykonania
Plan naiwnyB,D
R.A=“c” S.E=2 R.C=S.C
XR S
Lub: B,D [ R.A=“c” S.E=2 R.C = S.C (RXS)]
![Page 7: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/7.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 7
Plan sprytniejszy
B,D
R.A = “c” S.E = 2
R S
Złączenie naturalne
![Page 8: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/8.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 8
R S
A B C (R) (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
![Page 9: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/9.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 10: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/10.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 10
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 CI1 I2
=“c”
<c,2,10> <10,x,2>
czy =2?
wynik: <2,x>
następna krotka:<c,7,15>
![Page 11: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/11.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 11
Analiza składniowa
Transformacja
Zastosuj reguły
Oszacuj wielkość wyniku
Wygeneruj plany fizyczne Oszacuj koszty
Wybierz najtańszy
Wykonaj
{P1,P2,…..}
{(P1,C1),(P2,C2)...}
Pi
wynik
zapytanie SQL
drzewo składni
logiczny plan zapytania
poprawiony l.p.z.
l.p.z. + szacunki
statystyki
Schemat optymalizatora
![Page 12: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/12.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 12
Przykładowe zapytanie SQL
SELECT titleFROM StarsInWHERE starName IN (
SELECT nameFROM MovieStarWHERE birthdate LIKE ‘%1960’
);
(Znajdź filmy, w których grały gwiazdy urodzone w 1960)
![Page 13: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/13.jpg)
Oryginał: Hector Garcia-Molina
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’
![Page 14: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/14.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 14
Otrzymane wyrażenie „algebry relacji”title
StarsIn <warunek>
<krotka> IN name
<atrybut> birthdate LIKE ‘%1960’
starName MovieStar
![Page 15: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/15.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 15
Wstępny logiczny plan zapytania
title
starName=name
StarsIn name
birthdate LIKE ‘%1960’
MovieStar
![Page 16: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/16.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 16
Poprawiony logiczny plan zapytania
title
starName=name
StarsIn name
birthdate LIKE ‘%1960’
MovieStar
Pytanie:Przesunąć rzutowanie
do StarsIn?
![Page 17: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/17.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 17
Szacowanie wielkości wyniku
Dobrze znać wielkość
StarsIn
MovieStar
![Page 18: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/18.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 18
Pierwszy plan fizyczny
Parametry: kolejność złączania,
ilość RAM, wynikowe atrybuty...
Hash join
Full scanIndex unique
scanParametry:warunek selekcji,...
StarsIn MovieStar
![Page 19: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/19.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 19
Szacowanie kosztów
L.P.Z
P1 P2 … Pn
C1 C2 … Cn
Wybierz najniższy!
![Page 20: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/20.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 21: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/21.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 22: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/22.jpg)
Oryginał: Hector Garcia-Molina
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 RR S S T
![Page 23: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/23.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 23
R x S = S x R(R x S) x T = R x (S x T)
R U S = S U RR U (S U T) = (R U S) U T
Łączność i przemiennośćR S = S R(R S) T = R (S T)
![Page 24: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/24.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 24
Selekcja
p1p2(R) =
p1vp2(R)
=
p1 [ p2 (R)]
[ p1 (R)] U [ p2 (R)]
![Page 25: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/25.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 25
Zbiory a wielozbioryR = {a,a,b,b,b,c}S = {b,b,c,c,d}R U S = ?
• Opcja 1 SUMR U S = {a,a,b,b,b,b,b,c,c,c,d}
• Opcja 2 MAXR U S = {a,a,b,b,b,c,c,d}
![Page 26: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/26.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 26
Opcja 2 (MAX) powoduje prawdziwość:
p1vp2 (R) = p1(R) UMAX p2(R)
Przykład: R={a,a,b,b,b,c}p1 spełnione przez a,b; p2 przez b,c
p1vp2 (R) = {a,a,b,b,b,c}
p1(R) = {a,a,b,b,b}
p2(R) = {b,b,b,c}
p1(R) U p2 (R) = {a,a,b,b,b,c}
![Page 27: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/27.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 27
SUM też ma sens (może nawet większy?)
Senators (……) Rep (……)
Ile jest parlamentarzystów z Kalifornii?
T1 = yr,state Senators; T2 = yr,state RepsT1 Yr State T2 Yr State
97 CA 99 CA 99 CA 99 CA 98 AZ 98 CA
Jak sumować?
![Page 28: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/28.jpg)
Oryginał: Hector Garcia-Molina
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ą)
![Page 29: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/29.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 29
RzutowanieNiech: X = zbiór atrybutów
Y = zbiór atrybutówXY = X U Y
xy (R) = x [y (R)]
![Page 30: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/30.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 30
p = warunek tylko na atrybutach Rq = warunek tylko na atrybutach Sm = warunek na atrybutach R i S
łącznie
p (R ⋈ S) =[p (R)] ⋈ S
q (R ⋈ S) = R ⋈ [q (S)]
Reguły dla i ⋈
![Page 31: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/31.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 31
pq (R ⋈ S) =[p (R)] ⋈ q (S)]
pqm (R ⋈ S) = m([p (R)] ⋈ [q (S)])
pvq (R ⋈ S) = [p(R) ⋈ S] U [R ⋈ q (S)]
Reguły dla i ⋈
![Page 32: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/32.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 32
Reguły dla i
x = podzbiór atrybutów Rz = atrybuty w warunku P (też fragment
R)
x[p (R) ] = {p [ x (R) ]} x
xz
![Page 33: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/33.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 33
x = podzbiór atrybutów Ry = podzbiór atrybutów Sz = przecięcie zbiorów atrybutów R i S
xy (R ⋈ S) =
xy{[xz (R) ] ⋈ [yz (S) ]}
Reguły dla i⋈
![Page 34: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/34.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 34
xy {p (R ⋈ S)} =
xy {p [xz’ (R) ⋈ yz’ (S)]}
z’ = z U { atrybuty użyte w p }
![Page 35: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/35.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 35
Iloczyn kartezjański, selekcja i rzut
• Analogicznie, bo to szczególny przypadek złączenia naturalnego, np.
p (R S) =[p (R)] S
q (R S) = R [q (S)]
![Page 36: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/36.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 36
p(R S) = p(R) p(S)
p(R S) = p(R) S = p(R) p(S)
Reguły dla ,,
![Page 37: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/37.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 37
p1p2 (R) p1 [p2 (R)]
p (R ⋈ S) [p (R)] ⋈ S
R ⋈ S S ⋈ R
x [p (R)] x {p [xz (R)]}
Które transformacje są do dobre?
![Page 38: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/38.jpg)
Oryginał: Hector Garcia-Molina
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”)
E {p (R)} czy E {p{ABE (R)}}
![Page 39: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/39.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 40: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/40.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 41: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/41.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 41
Szacowanie kosztu planu wykonania
(1) Szacowanie rozmiaru wyniku(2) Szacowanie liczby operacji wejścia-
wyjścia
![Page 42: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/42.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 43: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/43.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 43
Przykład R A: 20-bajtowy napis
B: 4-bajtowy integerC: 8-bajtowa dataD: 5-bajtowy napis
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) = 5 S(R) = 37V(R,A) = 3 V(R,C) = 5V(R,B) = 1 V(R,D) = 4
![Page 44: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/44.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 44
Szacunki rozmiaru dla W = R1 R2
T(W) =
S(W) =
T(R1) T(R2)
S(R1) + S(R2)
![Page 45: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/45.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 45
S(W) = S(R)
T(W) = ?
Szacunki rozmiaru dla W =
A=a(R)
![Page 46: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/46.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 46
Przykład R V(R,A)=3
V(R,B)=1V(R,C)=5V(R,D)=4
W = z=val(R) T(W) =
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)V(R,Z)
![Page 47: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/47.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 47
Założenie 1: równomierny rozkład
W = Z=val(R)
• Rozkład wartości atrybutu selekcjonującego Z jest równomierny wśród V(R,Z) przyjmowanych wartości
![Page 48: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/48.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 48
Założenie 2: równomiernie w dziedzinie
W = Z=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
![Page 49: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/49.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 49
Przykład R Wg 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
W = z=val(R) T(W) = T(R)
DOM(R,Z)
![Page 50: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/50.jpg)
Oryginał: Hector Garcia-Molina
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
![Page 51: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/51.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 51
Selektywność selekcji ;)
SC(R,A) = średnia liczba rekordów spełniających warunek równościowy na R.A
T(R) V(R,A)
SC(R,A) = T(R) DOM(R,A)
![Page 52: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/52.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 52
A co z W = z val (R) ?
T(W) = ?
• Rozwiązanie 1:T(W) = T(R)/2
• Rozwiązanie 2:T(W) = T(R)/3
![Page 53: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/53.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 53
• Rozwiązanie 3: Oszacuj wartości w zakresie
Przykład RZ
Min=1 V(R,Z)=10
W= z 15 (R)
Max=20
f = 20-15+1 = 6 (ułamek zakresu) 20-1+1 20
T(W) = f T(R)
![Page 54: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/54.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 54
Szacowanie zakresu
• fV(R,Z) = liczba różnych wartości
T(W) = = f T(R)
• Bardziej dokładnie histogramy wartości – Problemy z ponownym użyciem planu
[f V(Z,R)] T(R)V(Z,R)
![Page 55: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/55.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 55
Szacunki rozmiaru dla W = R1⋈R2
x = atrybuty R1y = atrybuty R2
• Przypadek 1: X Y = – Tak samo jak R1 R2
![Page 56: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/56.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 56
Przypadek 2: W = R1⋈R2 gdy XY={A}R1 A B C R2 A D
Założenie (zależność inkluzyjna):
V(R1,A) V(R2,A) Każda wartość R1.A jest także w R2.A
V(R2,A) V(R1,A) Każda wartość R2.A jest także w R1.A
![Page 57: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/57.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 57
R1 A B C R2 A D
Szacunek T(W) gdy V(R1,A) V(R2,A)
Weź1 krotkę Dopasuj
1 krotka pasuje do T(R2) krotek V(R2,A)
więc T(W) = T(R2) T(R1) V(R2, A)
![Page 58: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/58.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 58
Wielkość złączenia
• V(R1,A) V(R2,A) T(W) = T(R2) T(R1) V(R2,A)
• V(R2,A) V(R1,A) T(W) = T(R2) T(R1) V(R1,A)
• T(W) = T(R2) T(R1) max{ V(R1,A), V(R2,A) }
![Page 59: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/59.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 59
Przy rownomierności w dziedzinie
R1 A B C R2 A D
Ta krotka pasuje do T(R2)/DOM(R2,A) krotek, więc
T(W) = T(R2) T(R1) = T(R2) T(R1) DOM(R2, A) DOM(R1, A)
Zakładamy że takie same
![Page 60: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/60.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 60
Wielkość krotki wyniku (zawsze)
S(W) = S(R1) + S(R2) - S(A)
rozmiar atrybutu A
![Page 61: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/61.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 61
Pośrednie szacunki T,S,V też potrzebne
Np. W = [A=a (R1) ] ⋈ R2
Relacja U
T(U) = T(R1)/V(R1,A) S(U) = S(R1)
Potrzebne też V (U, *) !!
![Page 62: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/62.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 62
Przykład R 1 V(R1,A)=3
V(R1,B)=1V(R1,C)=5V(R1,D)=3
U = A=a (R1)
A B C D
cat 1 10 10
cat 1 20 20
dog 1 30 10
dog 1 40 30
bat 1 50 10
V(U,A) =1 V(U,B) =1 V(U,C) = T(R1) V(R1,A)
V(U,D) ... gdzieś w srodku
![Page 63: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/63.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 63
Przybliżenia dla U = A=a (R)• Atrybut selekcji
V(U,A) = 1• Klucz
V(U,K) = T(U)• Inne: ?
V(U,B) = V(R,B)
![Page 64: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/64.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 64
Dla złączeń U = R1(A,B) ⋈ R2(A,C)
• Zachowywanie zbiorów wartości:
V(U,A) = min { V(R1, A), V(R2, A) }V(U,B) = V(R1, B)V(U,C) = V(R2, C)
![Page 65: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/65.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 65
Z = R1(A,B) ⋈ R2(B,C) ⋈ R3(C,D)
• Przykładowe statystyki
R1: T(R1) = 1000 V(R1,A)=50 V(R1,B)=100
R2: T(R2) = 2000 V(R2,B)=200 V(R2,C)=300
R3: T(R3) = 3000 V(R3,C)=90 V(R3,D)=500
![Page 66: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/66.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 66
T(U) = 10002000 V(U,A) = 50 200 V(U,B) =
100 V(U,C) = 300
Częściowy wynik U = R ⋈ S
![Page 67: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/67.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 67
Z = U ⋈ R3
T(Z) = 100020003000 V(Z,A) = 50 200300 V(Z,B) =
100 V(Z,C) = 90 V(Z,D) = 500
☺ Na szczęście wynik też nie zależy od kolejności złączeń
![Page 68: Systemy zarządzania bazami danych](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813b60550346895da45b0f/html5/thumbnails/68.jpg)
Oryginał: Hector Garcia-Molina
5. Przetwarzanie zapytań 68
Podsumowanie szacowania
• Szacowanie wielkości wyniku jest sztuką (trochę tajemną)
• Nie zapomnieć o:– okresowej aktualizacji statystyk
(koszty?)