Top Banner
Oryginał: Hector Garcia-M olina 3. Indeksy 1 Systemy zarządzania bazami danych 3. Indeksy
91

Systemy zarządzania bazami danych 3. Indeksy

Jan 30, 2016

Download

Documents

hong

Systemy zarządzania bazami danych 3. Indeksy. Indeksowanie i haszowanie. rekord(y). wartość Indeksy konwencjonalne B-drzewa i B+drzewa Haszowanie. ?. wartość. 10. 30. 50. 70. 90. 20. 40. 60. 80. 100. Plik uporządkowany. 70. 50. 30. 10. 110. 90. 120. 80. 60. 40. 20. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 1

Systemy zarządzania bazami danych

3. Indeksy

Page 2: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 2

wartość

• Indeksy konwencjonalne• B-drzewa i B+drzewa• Haszowanie

Indeksowanie i haszowanie

wartość

rekord(y)

Page 3: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 3

Plik uporządkowany

2010

4030

6050

8070

10090

Page 4: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 4

Plik uporządkowany

2010

4030

6050

8070

10090

Indeks gęsty

10203040

50607080

90100110120

Page 5: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 5

Plik uporządkowany

2010

4030

6050

8070

10090

Indeks rzadki

10305070

90110130150

170190210230

Page 6: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 6

Plik uporządkowany

2010

4030

6050

8070

10090

2. poziomu

10305070

90110130150

170190210230

1090

170250

330410490570

Rzadki indeks

Page 7: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 7

Pytanko

• Czy ma sens gęsty indeks drugiego poziomu?

Page 8: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 8

Wskaźniki do rekordów• Wskaźnik do bloku (w indeksie rzadkim)

jest mniejszy niż wskaźnik do rekorduWdB

WdR

• Jeśli plik jest fizycznie ciągły, możemy wyliczać wskaźniki (i ich nie zapisywać)

Page 9: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 9

K1

K3

K4

K2

R1

R2

R3

R4

Załóżmy, że bloki mają 1KB

rekordu o kluczu K3 szukamy w bloku o offsecie (3-1)1024 = 2048 bajtów

Page 10: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 10

Kompromis: indeks gęsty czy rzadki?

• Rzadki– Mniej miejsca na indeks– Więcej indeksu mieści się w RAM

• Gęsty– Możemy sprawdzić, czy jest taki rekord

bez zaglądania do pliku– Możliwe użycie strategii „tylko-indeks”

Page 11: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 11

Pojęcia

• Uporządkowany plik indeksowy • Klucz wyszukiwania (nie zawsze klucz!)• Indeks główny (na polu porządkującym)• Indeks niegłówny (drugorzędny)• Indeks gęsty lub rzadki• Indeks pogrupowany lub niepogrupowany• Indeks wewnętrzny lub zewnętrzny • Indeks wielopoziomowy

Page 12: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 12

Powtarzalne klucze

1010

2010

3020

3030

4540

Page 13: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 13

1010

2010

3020

3030

4540

10101020

20303030

1010

2010

3020

3030

4540

10101020

20303030

Powtarzalne klucze

• Czy indeks gęsty to jedyna możliwość?

Page 14: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 14

1010

2010

3020

3030

4540

10203040

Powtarzalne klucze

• Indeks gęsty, czy lepszy pomysł?

Page 15: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 15

1010

2010

3020

3030

4540

10102030

Sta

ran

nie

szu

kaj

20

i 3

0Powtarzalne klucze

• A może jednak rzadki? Oto pierwszy pomysł:

Page 16: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 16

1010

2010

3020

3030

4540

10203030

Możema być40?

Powtarzalne klucze

• Rzadki: tylko pierwszy nowy klucz z bloku

Page 17: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 17

Powtarzalne klucze, indeks główny• Indeks może wskazywać tylko

pierwsze wystąpienie każdej wartości klucza

Plik Indeks

aaa

b

Page 18: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 18

Usuwanie z indeksu rzadkiego

2010

4030

6050

8070

10305070

90110130150

Page 19: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 19

Usuwanie z indeksu rzadkiego

2010

4030

6050

8070

10305070

90110130150

– usuń rekord 40

Page 20: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 20

Usuwanie z indeksu rzadkiego

2010

4030

6050

8070

10305070

90110130150

– usuń rekord 30

4040

Page 21: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 21

Usuwanie z indeksu rzadkiego

2010

4030

6050

8070

10305070

90110130150

– usuń rekordy 30 i 40

5070

Page 22: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 22

Usuwanie z indeksu gęstego

2010

4030

6050

8070

10203040

50607080

Page 23: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 23

Usuwanie z indeksu gęstego

2010

4030

6050

8070

10203040

50607080

– usuń rekord 30

4040

Page 24: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 24

Wstawienie, indeks rzadki

2010

30

5040

60

10304060

Page 25: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 25

Wstawienie, indeks rzadki

2010

30

5040

60

10304060

– wstaw rekord 34

34

• dziś mamy szczęście! wolne miejsce jest tam gdzie go potrzebujemy

Page 26: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 26

Wstawienie, indeks rzadki

2010

30

5040

60

10304060

– wstaw rekord 15

15

2030

20

• Tu: natychmiastowa reorganizacja• Inne opcje:

– Dodać blok nadmiarowy– Poprawić indeks

Page 27: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 27

Wstawienie, indeks rzadki

2010

30

5040

60

10304060

– wstaw rekord 25

25

Lista bloków nadmiarowych(reorganizacji później...)

Page 28: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 28

Wstawienie, indeks gęsty

• Podobnie

• Zwykle jednak bardziej kosztowne

Page 29: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 29

Indeksy drugorzędne

5030

7020

4080

10100

6090

Page 30: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 30

Indeksy drugorzędne

5030

7020

4080

10100

6090

• Indeks rzadki

302080

100

90...

Chyba nie zadziała?

Page 31: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 31

Indeksy drugorzędne

5030

7020

4080

10100

6090

• Indeks gęsty10203040

506070...

105090...

rzadkiwyższypoziom

Page 32: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 32

Indeksy drugorzędne

• Najniższy poziom musi być gęsty• Wszystkie pozostałe są rzadkie• Wskaźniki są wskaźnikami na

rekordy– Nie: wskaźniki blokowe– Nie: wyliczane

Page 33: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 33

Klucze powtarzalne i indeks drugorzędny

1020

4020

4010

4010

4030

Page 34: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 34

1020

4020

4010

4010

4030

10101020

20304040

4040...

Pierwszy pomysł...

Problem:Nadmierny narzut• miejsce na dysku• czas wyszukiwania

Klucze powtarzalne i indeks drugorzędny

Page 35: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 35

1020

4020

4010

4010

4030

10

Inny pomysł...

4030

20

Problem:Indeks zawiera rekordy rozmiaru zmiennego

Klucze powtarzalne i indeks drugorzędny

Page 36: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 36

1020

4020

4010

4010

4030

10203040

5060...

Trzeci pomysł: lista rekordów o tej samej wartości klucza?

Problemy:• Dodatkowe pole w rekordzie• Liniowe przeszukiwanie listy rekordów

Klucze powtarzalne i indeks drugorzędny

Page 37: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 37

1020

4020

4010

4010

4030

10203040

5060...

kubełki

Klucze powtarzalne i indeks drugorzędny

Page 38: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 38

Pomysł z kubełkami jest dobry

• Po pierwsze rekordy indeksy stałej długości

• Przykładowy schemat

Indeksy RekordyName: główny EMP

(name,dept,floor,...)

Dept: drugorzędnyFloor: drugorzędny

Page 39: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 39

Znajdź pracowników z działu Toy i 2.

piętra: (‘Toy’ = Dept) ^ (floor = 2 )

Indeks na Dept Plik EMP Indeks na floor

Toy 2

Oblicz przecięcie obu kubełków, żeby znaleźć pasujących pracowników

Page 40: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 40

Ten pomysł jest stosowany do wydobywania informacji z tekstu (IR)

Dokumenty

...the cat is fat ...

...was raining cats and dogs...

...Fido the dog ...

Listy odwrócone

cat

dog

Page 41: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 41

Zapytania IR (Information Retrieval)• Znajdź dokumenty zawierające “cat” i “dog”• Znajdź dokumenty zawierające “cat” lub

“dog”• Znajdź dokumenty zawierające “cat” ale bez

“dog”• Znajdź dokumenty zawierające “cat” w

tytule• Znajdź dokumenty zawierające “cat” i “dog”

w odległości co najwyżej 5 słów

Page 42: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 42

Więcej danych na liście odwróconej

cat Tytuł 5

Tytuł 100

Autor 10

Streszczenie57

Tytuł 12

d3d2

d1

dog

miejsce

nr znaku

wskaźn

i

k

Page 43: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 43

Hasło = pozycja listy odwróconej• Reprezentuje wystąpienie słowa w

dokumencie

Długość listy: 1 Słowa rzadkie (liczba haseł) lub błędy ortograficzne

106 Słowa często używane

• Rozmiar hasła: 10-15 bitów (po kompresji)

Page 44: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 44

Zagadnienia IR

• Słowa ignorowane• Skracanie słów• Wyrazy bliskoznaczne• Fleksja (zwłaszcza w polskim: liczne

pułapki)– Po normalizacji słów okazało się że najczęściej

w Panu Tadeuszu występuje słowo „oda” (od)• Błędy ortograficzne• Pełne teksty czy Streszczenia• Model wektorowy

Page 45: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 45

Model przestrzeni wektorowej

s1 s2 s3 s4 s5 s6 s7 …Dokument= <1 0 0 1 1 0 0 …>

Zapytanie = <0 0 1 1 0 0 0 …>

Koniunkcja= ... + 1 + … = punktacja

Page 46: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 46

Usprawnienia IR• Model wektorowy przypomina listy

bitmapowe• Różne sposoby ważenia punktacji i

normalizacji, np.– Dopasowanie słowa częstego nie jest

tak znaczące (wartościowe) jak słowa rzadkiego

• Implementacja: Google, Altavista, ...

Page 47: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 47

Indeksy konwencjonalne

• Zalety– Proste– Indeks jest plikiem uporządkowanym

wygodnym przy pełnych przeglądach

• Wady– Wstawienia są kosztowe lub– Tracimy fizyczne uporządkowanie lub

równowagę

Page 48: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 48

ciągła alokacja

wolne miejsce

102030

405060

708090

39313536

323834

33

Bloki nadmiarowe(nieciągłe)

Przykład gnicia indeksu konwencjonalnego

Page 49: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 49

Lekarstwo

• Nowy rodzaj indeksu• Rezygnujemy z ciągłej alokacji stron

indeksu• Staramy się by się sam równoważył• Rodzaje drzew równoważących się: AVL,

czerwono-czarne, B-drzewa• W bazach danych B-drzewa, w właściwie

B+drzewa

Page 50: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 50

Korzeń

Przykład B+drzewa n=3

100

120

150

180

30

3 5 11

30

35

100

101

110

120

130

150

156

179

180

200

Page 51: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 51

Przykładowy węzeł wewnętrzny

do kluczy do kluczy do kluczy do kluczy

< 57 57 k<81 81k<95 95

57

81

95

Page 52: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 52

Z pewnego nie-liścia

do następnego

w kolejności

liścia

57

81

95

Do r

ekord

u

o k

lucz

u 5

7

Do r

ekord

u

o k

lucz

u 8

1

Do r

ekord

u

o k

lucz

u 8

5

Przykładowy liść

Page 53: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 53

Rozmiar węzłów

• Rozmiar stały– jeśli klucze stałego rozmiaru...

• n wartości kluczy • n+1 wskaźników

– Liść: n wskaźników na rekordy i fastryga

– Nie-liść: n+1 wskaźników na niższy poziom

Page 54: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 54

Węzły nie mogą być zbyt puste

• Zapełnienie co najmniej 50%– Teoretycznie...– Praktycznie w zasadzie tak, ale nie do

końca

• Zapełnienie co najmniej – Nie-liść: (n+1)/2 wskaźników – Liść: (n+1)/2 wskaźników na

dane

Page 55: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 55

ZapełnionyMinimalny

Nie-liść

Liść

n=3

12

01

50

18

0

30

3 5 11

30

35

Licz

y s

ię n

aw

et

gdy N

ULL

Page 56: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 56

Reguły B+drzew

1. Wszystkie liście są na tym samym poziomie (drzewo zrównoważone)

2. Wskaźniki w liściach wskazują rekordy (z wyjątkiem fastrygi)

Page 57: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 57

3. Liczba wskaźników i kluczy

• Stopień drzewa = n

Nie-liść(nie-korzeń) n+1 n (n+1)/2 (n+1)/2- 1

Liść(nie-korzeń) n+1 n

Korzeń n+1 n 1 1

Max Max Min Min wsk. klu. wsk.dane klu.

(n+1)/2 (n+1)/2

Page 58: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 58

Wstawienie do B+drzewa

(a) Przypadek najłatwiejszy– Gdy w liściu jest wolne miejsce

(b) Przepełnienie liścia(c) Przepełnienie węzła

wewnętrznego(d) Nowy korzeń

Page 59: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 59

(a) Wstaw klucz = 32 n=33 5 11

30

31

30

100

32

Page 60: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 60

(b) Wstaw klucz = 7 n=3

3 5 11

30

31

30

100

3 5

7

7

Page 61: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 61

(c) Wstaw klucz = 160 n=3

10

0

120

150

180

150

156

179

180

200

160

18

0

160

179

Page 62: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 62

(d) Wstaw 45 – nowy korzeń n=3

10

20

30

1 2 3 10

12

20

25

30

32

40

40

45

40

30Nowy korzeń

Page 63: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 63

Usunięcie z B+drzewa

(a)Przypadek najłatwiejszy(b)Scal się z sąsiadem (bliźniakiem)(c) Poprzerzucaj klucze(d)Przypadki (b) lub (c) w nie-liściu

Page 64: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 64

(b) Scalenie z sąsiadem– Usuń 50

10

40

100

10

20

30

40

50

n=4

40

Page 65: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 65

(c) Poprzerzucaj klucze– Usuń 50

10

40

100

10

20

30

35

40

50

n=4

35

35

Page 66: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 66

40

45

30

37

25

26

20

22

10

141 3

10

20

30

40

(d) Scalenie nie-liści– Usuń 37

n=4

40

30

25

25

Nowy korzeń

Page 67: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 67

Usunięcia z B+drzew w praktyce

• Zwykle nie dokonuje się scalania– Jest zbyt kosztowne i nie warto tego

robić– I tak trzeba co jakiś czas

przebudować indeksy ze względu na błędy w SZBD

Page 68: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 68

B+drzewa a indeksy konwencjonalne

• Na podstawie[1] Held i Stonebraker “B-Trees Re-examined”, Communications of ACM, Feb. 1978

Page 69: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 69

Wnioski z [1]

• W B+drzewach trudniej obsługiwać współbieżność

• B+drzewa zużywają więcej przestrzeni• Założenia analizy

– blok = 512 bajtów– klucz = wskaźnik = 4 bajty– 4 rekordy w bloku

Page 70: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 70

1 blok indeksu statycznego

127 kluczy

(127+1)4 = 512 bajtów-> wskaźniki wyliczane (offsety) do 127

bloków

k1

k2

k3

k1

k2

k3

1 blokdanych

Page 71: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 71

1 blok B+drzewa

63 klucze

63x(4+4)+8 = 512 bajtów-> wskaźniki są konieczne do 63

bo B+drzewo nie jest ciągłe bloków

k1

k2

...

k63

k1

k2

k3

1 blokdanych

next

-

Page 72: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 72

Porównanie rozmiarów [1]Porównanie rozmiarów [1]

Indeks statyczny B+drzewoliczba liczbabloków wysokość bloków

wysokość2 -> 127 2 2 -> 63 2128 -> 16,129 3 64 -> 3968 316,130 -> 2,048,383 4 3969 -> 250,047 4

250,048 -> 15,752,961 5

Page 73: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 73

Wyniki analizy [1]• W przypadku pliku 8000-blokowego

po 32 000 wstawieniachpo 16 000 wyszukiwaniach

Oszczedzamy tyle czasu, że starczy go na ręczną reorganizację

Wniosek z [1] Statyczne indeksy lepsze

Page 74: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 74

[2] M. Stonebraker, “Retrospective on a database system,” TODS, June 1980

Wniosek z [2] B+drzewa są lepsze!

• DBA nie wie, kiedy reorganizować• DBA nie wie, jak bardzo zapełnić

strony indeksu po reorganizacji

Page 75: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 75

• Zarządzanie buforami– B+drzewo ma stałą wymaganą

wielkość bufora (liczbę bloków)– Indeks statyczny musi być może

doczytać kilka stron nadmiarowych (co wymaga większej i zmiennej liczby niezbędnych buforów)

Wnioski z [2] B+drzewa są lepsze

Page 76: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 76

Zarządzanie buforami

• Czy LRU to dobra strategia zarządzania buforami?– Oczywiście nie!– Korzeń musi być przyszpilony w

pamięci...– I być może nizsze poziomy też– Czyli MRU!

Page 77: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 77

Najlepszy stopień B+drzewa?

n to liczba kluczy w węzle

Page 78: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 78

Przykładowe założenia(1) Czas potrzebny na odczyt węzła z

dysku (70+0.05n) ms(2) Gdy węzeł jest w pamieci, korzystamy z

wyszukiwania binarnego (a + b LOG2 n) ms

Dla pewnych stałych a,b; Zakładamy, że a << 70

(3) Założmy, że B+drzewo jest zapełnione liczba węzłów do przejrzenia to LOGnN gdzie N = liczba rekordów

Page 79: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 79

Minimalizujemy funkcję: f(n) = czas poszukiwania rekordu

f(n)

nopt n

Page 80: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 80

Znajdź nopt => pochodna f’(n) = 0• nopt = kilkaset

• W praktyce koszt odczytu bloku nie zależy od n, bo węzeł = blok

• Ignorujemy koszt CPU

• Minimalizujemy więc LOGnN

• Czyli? • Upychamy w bloku tyle kluczy, ile

wlezie• I tak wychodzi kilkaset

Page 81: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 81

A gdyby zwykłe Bdrzewo? [ bez + ] • Unikamy duplikacji kluczy• Wskaźniki do rekordów są też w

węzłach wewnętrznych

Page 82: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 82

do rekordu do rekordu do rekordu do K1 z K2 z K3

do kluczy do kluczy do kluczy do kluczy

< K1 K1<x<K2 K2<x<K3 >K3

K1 W1 K2 W2 K3 W3

Page 83: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 83

Przykład Bdrzewa n=2

65

125

145

165

85

105

25

45

10

20

30

40

110

120

90

100

70

80

170

180

50

60

130

140

150

160

Fastryga jest terazbezużyteczna!

Page 84: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 84

Uwaga o wstawieniach• Wstawiamy rekord z kluczem 25

10

20

30 n=3

liść

10

– 20 –

25

30

• Potem:

Page 85: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 85

Statystyka Bdrzew

MAX MINWsk. Wsk. Klu. Wsk. Wsk. Kluczewęz. rek. węz. rek.

Nie-liśćNie-korzeń n+1 n n (n+1)/2 (n+1)/2-1

(n+1)/2-1LiśćNie-korzeń 1 n n 1 (n+1)/2

(n+1)/2

KorzeńNie-liść n+1 n n 2 1 1

KorzeńLiść 1 n n 1 1 1

Page 86: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 86

Wady i zalety Bdrzewa pozwalają na szybsze

wyszukiwanie niż B+drzewa

W Bdrzewach liście i nie-liście są różnych rozmiarów

W Bdrzewach usuwanie trudniejsze

B+drzewa lepsze!

Page 87: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 87

Ale...

• Jeśli bloki są stałego rozmiaru (a tak jest w przypadku wielu dysków):

• To wyszukiwanie w B+drzewach jest w istocie lepsze.

Page 88: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 88

Przykład

• Wskaźnik: 4 bajty• Klucz 4 bajty• Blok 100 bajtów (dla prostoty)• Pełne dwupoziomowe drzewo

Page 89: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 89

Korzeń ma 8 kluczy + 8 wskaźników na rekordy+ 9 wskaźników na synów

= 8x4 + 8x4 + 9x4 = 100 bajtów

Bdrzewo:

Każdy z 9 synów: 12 wsk. na rek. +12 kluczy= 12x(4+4) + 4 = 100 bajtów

2-poziomowe Bdrzewo ma maksymalnie12x9 + 8 = 116 rekordów

Page 90: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 90

Korzeń ma 12 kluczy + 0 wskaźników na rekordy + 13 wskaźników na synów

= 12x4 + 0x4 + 13x4 = 100 bajtów

B+drzewo:

Każdy z 13 synów: 12 wsk. na rek. +12 kluczy= 12x(4+4) + 4 = 100 bajtów

2-poziomowe B+drzewo ma maksymalnie13x12 = 156 rekordów

Page 91: Systemy zarządzania bazami danych 3. Indeksy

Oryginał: Hector Garcia-Molina

3. Indeksy 91

Zatem?

ooooooooooooo ooooooooo 156 rekordów 108 rekordów

Razem = 116

B+ B

8 rekordów

• Wniosek– W przypadku bloków stałego rozmiaru,– B+drzewa są lepsze, bo są bardziej

krzaczaste