Systemy zarz dzania bazami danych
This presentation is the property of its rightful owner.
Sponsored Links
1 / 68

Systemy zarządzania bazami danych PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Systemy zarz dzania bazami danych

Systemy zarządzania bazami danych

5. Przetwarzanie zapytań

5. Przetwarzanie zapytań


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

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

WynikB D

2 x

RABC S CDE

a11010x2

b12020y2

c21030z2

d23540x1

e34550y3

5. Przetwarzanie zapytań


Jaki plan wykonania tego zapytania

Jaki plan wykonania tego zapytania?

- Oblicz produkt kartezjański

- Wybierz pasujące krotki

- Wykonaj rzutowanie

Plan naiwny

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

Bingo!

Mamy jednego...

RXSR.AR.BR.CS.CS.DS.E

a 1 10 10 x 2

a 1 10 20 y 2

.

.

C 2 10 10 x 2

.

.

5. Przetwarzanie zapytań


Algebra relacji logiczny plan wykonania

Algebra relacji = logiczny plan wykonania

Plan naiwny

B,D

sR.A=“c” S.E=2  R.C=S.C

X

RS

Lub: B,D [sR.A=“c” S.E=2  R.C = S.C (RXS)]

5. Przetwarzanie zapytań


Plan sprytniejszy

Plan sprytniejszy

B,D

sR.A = “c”sS.E = 2

R S

Złączenie naturalne

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

R S

A B Cs (R)s(S) C D E

a 1 10 A B C C D E 10 x 2

b 1 20c 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ń


Plan z u yciem indeks w

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ń


Systemy zarz dzania bazami danych

=“c”

<c,2,10>

<10,x,2>

czy =2?

wynik: <2,x>

następna krotka:

<c,7,15>

R S

A B CC 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ń


Systemy zarz dzania bazami danych

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ń


Przyk adowe zapytanie sql

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ń


Systemy zarz dzania bazami danych

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ń


Systemy zarz dzania bazami danych

Otrzymane wyrażenie „algebry relacji”

title

StarsIn <warunek>

<krotka> IN name

<atrybut> birthdate LIKE ‘%1960’

starName MovieStar

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

Wstępny logiczny plan zapytania

title

starName=name

StarsIn name

birthdate LIKE ‘%1960’

MovieStar

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

Poprawiony logiczny plan zapytania

title

Pytanie:

Przesunąć rzutowanie

do StarsIn?

starName=name

StarsIn name

birthdate LIKE ‘%1960’

MovieStar

5. Przetwarzanie zapytań


Szacowanie wielko ci wyniku

Szacowanie wielkości wyniku

Dobrze znać wielkość

StarsIn

MovieStar

P

s

5. Przetwarzanie zapytań


Pierwszy plan fizyczny

Pierwszy plan fizyczny

Parametry: kolejność złączania,

ilość RAM, wynikowe atrybuty...

Hash join

Index unique

scan

Full scan

Parametry:

warunek selekcji,...

StarsInMovieStar

5. Przetwarzanie zapytań


Szacowanie koszt w

Szacowanie kosztów

L.P.Z

P1 P2 … Pn

C1 C2 … Cn

Wybierz najniższy!

5. Przetwarzanie zapytań


Optymalizacje w algebrze relacji

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ń


Z czenie naturalne

Złączenie naturalne

  • Przemienność

    RS=SR

  • Łączność

    (R S) T= R (S T)

  • Podobne właściwości dla

    • Iloczynu kartezjańskiego

    • Sumy mnogościowej

    • Przecięcia

5. Przetwarzanie zapytań


W a ciwo ci

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 SS T

5. Przetwarzanie zapytań


Czno i przemienno

Łączność i przemienność

R S=SR

(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ń


Selekcja

Selekcja

sp1p2(R) =

sp1vp2(R) =

sp1 [ sp2 (R)]

[ sp1 (R)] U [ sp2 (R)]

5. Przetwarzanie zapytań


Zbiory a wielozbiory

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ń


Systemy zarz dzania bazami danych

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ń


Sum te ma sens mo e nawet wi kszy

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ń


Trzeba podj decyzj

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ń


Systemy zarz dzania bazami danych

Rzutowanie

Niech: X = zbiór atrybutów

Y = zbiór atrybutów

XY = X U Y

pxy (R) =

px [py (R)]

5. Przetwarzanie zapytań


Regu y dla s i

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ń


Regu y dla s i1

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ń


Regu y dla p i s

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ń


Systemy zarz dzania bazami danych

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ń


Systemy zarz dzania bazami danych

pxy {sp[pxz’ (R) ⋈pyz’ (S)]}

z’ = z U {atrybuty użyte w p}

pxy {sp(R ⋈ S)} =

5. Przetwarzanie zapytań


Iloczyn kartezja ski selekcja i rzut

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ń


Regu y dla s

Reguły dlas,, -

sp(R  S)= sp(R) sp(S)

sp(R - S)= sp(R) - S = sp(R) -sp(S)

5. Przetwarzanie zapytań


Kt re transformacje s do dobre

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ń


Na zdrowy rozum r b rzuty wcze nie

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ń


A co je li mamy indeks y na a i b

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ń


Podsumowanie transformacji

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ń


Szacowanie kosztu planu wykonania

Szacowanie kosztu planu wykonania

(1) Szacowanie rozmiaru wyniku

(2) Szacowanie liczby operacji wejścia-wyjścia

5. Przetwarzanie zapytań


Szacowanie wielko ci wyniku1

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ń


Systemy zarz dzania bazami danych

A

B

C

D

cat

1

10

a

Przykład

RA: 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) = 3V(R,C) = 5

V(R,B) = 1V(R,D) = 4

5. Przetwarzanie zapytań


Szacunki rozmiaru dla w r1 r2

Szacunki rozmiaru dla W = R1  R2

T(R1)  T(R2)

S(R1) + S(R2)

T(W) =

S(W) =

5. Przetwarzanie zapytań


Szacunki rozmiaru dla w s a a r

Szacunki rozmiaru dla W = sA=a(R)

S(W) = S(R)

T(W) = ?

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

T(R)

V(R,Z)

A

B

C

D

cat

1

10

a

Przykład

RV(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ń


Za o enie 1 r wnomierny rozk ad

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ń


Za o enie 2 r wnomiernie w dziedzinie

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ń


Systemy zarz dzania bazami danych

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ń


Systemy zarz dzania bazami danych

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ń


Selektywno selekcji

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)

5. Przetwarzanie zapytań


A co z w s z val r

A co z W = sz  val (R) ?

T(W) = ?

  • Rozwiązanie 1:

    T(W) = T(R)/2

  • Rozwiązanie 2:

    T(W) = T(R)/3

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

Z

  • Rozwiązanie 3: Oszacuj wartości w zakresie

    Przykład R

Min=1 V(R,Z)=10

W= sz  15 (R)

Max=20

f = 20-15+1 = 6 (ułamek zakresu)

20-1+1 20

T(W) = f  T(R)

5. Przetwarzanie zapytań


Szacowanie zakresu

Szacowanie zakresu

  • fV(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)

5. Przetwarzanie zapytań


Szacunki rozmiaru dla w r1 r21

Szacunki rozmiaru dla W = R1⋈R2

x = atrybuty R1

y = atrybuty R2

  • Przypadek 1: X  Y = 

    • Tak samo jak R1  R2

5. Przetwarzanie zapytań


Przypadek 2 w r1 r2 gdy x y a

Założenie (zależność inkluzyjna):

V(R1,A)  V(R2,A) Każda wartość R1.Ajest także w R2.A

V(R2,A)  V(R1,A) Każda wartość R2.Ajest także w R1.A

Przypadek 2: W = R1⋈R2 gdy XY={A}

R1 A B C R2 A D

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

1 krotka pasuje doT(R2)krotek

V(R2,A)

więc T(W) =T(R2)  T(R1)

V(R2, A)

Szacunek T(W)gdy V(R1,A)  V(R2,A)

R1 A B C R2 A D

Weź

1 krotkę

Dopasuj

5. Przetwarzanie zapytań


Wielko z czenia

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

5. Przetwarzanie zapytań


Przy rownomierno ci w dziedzinie

Przy rownomierności w dziedzinie

R1 ABC 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

5. Przetwarzanie zapytań


Wielko krotki wyniku zawsze

Wielkość krotki wyniku (zawsze)

S(W) = S(R1) + S(R2) - S(A)

rozmiar atrybutu A

5. Przetwarzanie zapytań


Po rednie szacunki t s v te potrzebne

Pośrednie szacunki T,S,V też potrzebne

Np. W = [sA=a(R1) ] ⋈ R2

Relacja U

T(U) = T(R1)/V(R1,A) S(U) = S(R1)

Potrzebne też V (U, *) !!

5. Przetwarzanie zapytań


Systemy zarz dzania bazami danych

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

Przykład

R1V(R1,A)=3

V(R1,B)=1

V(R1,C)=5

V(R1,D)=3

U = sA=a (R1)

5. Przetwarzanie zapytań


Przybli enia dla u s a a r

Przybliżeniadla U = sA=a (R)

  • Atrybut selekcji

    V(U,A) = 1

  • Klucz

    V(U,K) = T(U)

  • Inne: ?

    V(U,B)= V(R,B)

5. Przetwarzanie zapytań


Dla z cze u r1 a b r2 a c

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)

5. Przetwarzanie zapytań


Z r1 a b r2 b c r3 c d

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)=200V(R2,C)=300

    R3:T(R3) = 3000 V(R3,C)=90 V(R3,D)=500

5. Przetwarzanie zapytań


Cz ciowy wynik u r s

Częściowy wynik U = R ⋈ S

T(U) = 10002000 V(U,A) = 50

200 V(U,B) = 100

V(U,C) = 300

5. Przetwarzanie zapytań


Z u r3

Z = U ⋈R3

T(Z) = 100020003000 V(Z,A) = 50

200300 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ń

5. Przetwarzanie zapytań


Podsumowanie szacowania

Podsumowanie szacowania

  • Szacowanie wielkości wyniku jest sztuką (trochę tajemną)

  • Nie zapomnieć o:

    • okresowej aktualizacji statystyk (koszty?)

5. Przetwarzanie zapytań


  • Login