systemy zarz dzania bazami danych
Download
Skip this Video
Download Presentation
Systemy zarządzania bazami danych

Loading in 2 Seconds...

play fullscreen
1 / 68

Systemy zarządzania bazami danych - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Systemy zarządzania bazami danych' - ghita


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ń

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

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ń

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

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

R S

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ń

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

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ń

slide10
=“c”

<10,x,2>

czy =2?

wynik: <2,x>

następna krotka:

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ń

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

slide13
Drzewo składni

SELECT FROM WHERE

IN

title StarsIn (< Zapytanie>)

starName

SELECT FROM WHERE

LIKE

name MovieStar birthDate ‘%1960’

5. Przetwarzanie zapytań

slide14
Otrzymane wyrażenie „algebry relacji”

title

StarsIn

IN name

birthdate LIKE ‘%1960’

starName MovieStar

5. Przetwarzanie zapytań

slide15
Wstępny logiczny plan zapytania

title

starName=name

StarsIn name

birthdate LIKE ‘%1960’

MovieStar

5. Przetwarzanie zapytań

slide16
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,...

StarsIn MovieStar

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ść

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ń

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

5. Przetwarzanie zapytań

czno i przemienno
Łą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ń

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ń

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

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

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

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

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

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ń

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

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ń

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

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

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

slide57
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 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

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ń

slide62
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

R 1 V(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ń

ad