68
Oryginał: Hector Garcia- Molina 5. Przetwarzanie zapytań 1 Systemy zarządzania bazami danych 5. Przetwarzanie zapytań

Systemy zarządzania bazami danych

  • Upload
    ghita

  • View
    31

  • Download
    1

Embed Size (px)

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 Presentation

Citation preview

Page 1: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

5. Przetwarzanie zapytań 1

Systemy zarządzania bazami danych

5. Przetwarzanie zapytań

Page 2: Systemy zarządzania bazami danych

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oryginał: Hector Garcia-Molina

5. Przetwarzanie zapytań 17

Szacowanie wielkości wyniku

Dobrze znać wielkość

StarsIn

MovieStar

Page 18: Systemy zarządzania bazami danych

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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?)