Systemy zarz dzania bazami danych 3 indeksy
Download
1 / 91

Systemy zarządzania bazami danych 3. Indeksy - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

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.

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 3. Indeksy' - hong


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

Indeksowanie i haszowanie

rekord(y)

wartość

  • Indeksy konwencjonalne

  • B-drzewa i B+drzewa

  • Haszowanie

?

wartość

3. Indeksy


10

30

50

70

90

20

40

60

80

100

Plik uporządkowany

3. Indeksy


70

50

30

10

110

90

120

80

60

40

20

100

90

10

70

50

30

80

60

40

20

100

Plik uporządkowany

Indeks gęsty

3. Indeksy


130

90

50

10

210

170

230

150

110

70

30

190

90

10

70

50

30

80

60

40

20

100

Plik uporządkowany

Indeks rzadki

3. Indeksy


330

490

170

10

210

170

130

90

10

50

70

250

410

570

30

150

110

190

230

90

30

50

10

90

70

100

80

60

40

20

Rzadki indeks

Plik uporządkowany

2. poziomu

3. Indeksy


Pytanko
Pytanko

  • Czy ma sens gęsty indeks drugiego poziomu?

3. Indeksy


Wska niki do rekord w
Wskaźniki do rekordów

  • Wskaźnik do bloku (w indeksie rzadkim) jest mniejszy niż wskaźnik do rekordu

    WdB

    WdR

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

3. Indeksy


Załóżmy, że

bloki mają 1KB

R2

R1

R3

rekordu o kluczu K3

szukamy w bloku o offsecie

(3-1)1024

= 2048 bajtów

R4

K1

K2

K3

K4

3. Indeksy


Kompromis indeks g sty czy rzadki
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”

3. Indeksy


Poj cia
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

3. Indeksy


Powtarzalne klucze

10

10

20

30

40

10

20

30

30

45

Powtarzalne klucze

3. Indeksy


40

10

20

30

40

30

10

10

10

20

20

10

30

30

10

45

45

30

30

20

Powtarzalne klucze

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

10

10

10

10

10

10

20

20

20

20

30

30

30

30

30

30

3. Indeksy


30

10

10

20

40

45

30

30

10

20

Powtarzalne klucze

  • Indeks gęsty, czy lepszy pomysł?

10

20

30

40

3. Indeksy


30

10

10

20

40

45

30

30

10

20

Starannie szukaj

20 i 30

Powtarzalne klucze

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

10

10

20

30

3. Indeksy


30

10

10

20

40

45

30

30

10

20

Może

ma być

40?

Powtarzalne klucze

  • Rzadki: tylko pierwszy nowy klucz z bloku

10

20

30

30

3. Indeksy


Powtarzalne klucze indeks g wny
Powtarzalne klucze, indeks główny

  • Indeks może wskazywać tylko pierwsze wystąpienie każdej wartości klucza

    Plik

    Indeks

a

a

a

.

.

b

3. Indeksy


Usuwanie z indeksu rzadkiego

10

30

50

70

80

20

40

60

Usuwanie z indeksu rzadkiego

10

30

50

70

90

110

130

150

3. Indeksy


Usuwanie z indeksu rzadkiego1

70

10

30

50

20

40

60

80

Usuwanie z indeksu rzadkiego

  • usuń rekord 40

10

30

50

70

90

110

130

150

3. Indeksy


Usuwanie z indeksu rzadkiego2

10

30

50

70

20

40

60

80

40

40

Usuwanie z indeksu rzadkiego

  • usuńrekord 30

10

30

50

70

90

110

130

150

3. Indeksy


Usuwanie z indeksu rzadkiego3

10

30

50

70

20

40

60

80

50

70

Usuwanie z indeksu rzadkiego

  • usuńrekordy 30 i 40

10

30

50

70

90

110

130

150

3. Indeksy


Usuwanie z indeksu g stego

10

30

50

70

80

20

40

60

Usuwanie z indeksu gęstego

10

20

30

40

50

60

70

80

3. Indeksy


Usuwanie z indeksu g stego1

10

50

70

20

60

80

40

40

Usuwanie z indeksu gęstego

  • usuń rekord 30

10

20

30

30

40

40

50

60

70

80

3. Indeksy


10

30

40

60

20

50

Wstawienie, indeks rzadki

10

30

40

60

3. Indeksy


10

30

40

60

20

50

34

  • dziś mamy szczęście!

  • wolne miejsce jest tam

  • gdzie go potrzebujemy

Wstawienie, indeks rzadki

  • wstaw rekord 34

10

30

40

60

3. Indeksy


10

30

40

60

20

50

15

20

20

30

Wstawienie, indeks rzadki

  • wstaw rekord 15

10

30

40

60

  • Tu: natychmiastowa reorganizacja

  • Inne opcje:

    • Dodać blok nadmiarowy

    • Poprawić indeks

3. Indeksy


10

30

40

60

25

20

50

Lista bloków nadmiarowych

(reorganizacji później...)

Wstawienie, indeks rzadki

  • wstawrekord 25

10

30

40

60

3. Indeksy


Wstawienie, indeks gęsty

  • Podobnie

  • Zwykle jednak bardziej kosztowne

3. Indeksy


30

20

80

100

90

50

70

40

10

60

Indeksy drugorzędne

3. Indeksy


100

30

20

80

90

10

40

60

50

70

90

30

...

20

80

100

Chyba nie zadziała?

Indeksy drugorzędne

  • Indeks rzadki

3. Indeksy


90

100

30

80

20

60

10

70

50

40

10

50

10

60

50

20

70

90

30

...

...

40

rzadki

wyższy

poziom

Indeksy drugorzędne

  • Indeks gęsty

3. Indeksy


Indeksy drugorz dne
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

3. Indeksy


Klucze powtarzalne i indeks drugorz dny

20

20

10

10

30

10

40

40

40

40

Klucze powtarzalne i indeks drugorzędny

3. Indeksy


Klucze powtarzalne i indeks drugorz dny1

30

20

20

10

10

10

40

40

40

40

10

20

40

30

10

40

10

...

40

40

20

Klucze powtarzalne i indeks drugorzędny

Pierwszy pomysł...

  • Problem:

  • Nadmierny narzut

  • miejsce na dysku

  • czas wyszukiwania

3. Indeksy


Klucze powtarzalne i indeks drugorz dny2

10

20

20

10

30

40

40

40

10

40

20

30

40

Klucze powtarzalne i indeks drugorzędny

Inny pomysł...

10

Problem:

Indeks zawiera rekordy rozmiaru zmiennego

3. Indeksy


Klucze powtarzalne i indeks drugorz dny3

10

20

20

10

30

10

40

40

40

40

50

10

60

20

30

...

40

Klucze powtarzalne i indeks drugorzędny

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

  • Problemy:

  • Dodatkowe pole w rekordzie

  • Liniowe przeszukiwanie listy rekordów

3. Indeksy


Klucze powtarzalne i indeks drugorz dny4

10

30

20

20

10

10

40

40

40

40

50

10

20

60

...

30

40

Klucze powtarzalne i indeks drugorzędny

kubełki

3. Indeksy


Pomys z kube kami jest dobry
Pomysł z kubełkami jest dobry

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

  • Przykładowy schemat

    Indeksy Rekordy

    Name: główny EMP (name,dept,floor,...)

    Dept: drugorzędny

    Floor: drugorzędny

3. Indeksy


Znajd pracownik w z dzia u toy i 2 pi tra toy dept floor 2

Indeks na Dept Plik EMPIndeks na floor

Toy

2

Znajdź pracowników z działu Toy i 2. piętra: (‘Toy’ = Dept) ^ (floor = 2 )

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

3. Indeksy


Ten pomys jest stosowany do wydobywania informacji z tekstu ir

cat

dog

Listy odwrócone

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

Dokumenty

...the cat is

fat ...

...was raining

cats and dogs...

...Fido the

dog ...

3. Indeksy


Zapytania ir information retrieval
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

3. Indeksy


Wi cej danych na li cie odwr conej
Więcej danych na liście odwróconej

cat

nr znaku

miejsce

wskaźnik

d1

Tytuł

5

Autor

10

Streszczenie

57

d2

d3

dog

Tytuł

100

Tytuł

12

3. Indeksy


Has o pozycja listy odwr conej
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)

3. Indeksy


Zagadnienia ir
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

3. Indeksy


Model przestrzeni wektorowej
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

3. Indeksy


Usprawnienia ir
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, ...

3. Indeksy


Indeksy konwencjonalne
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ę

3. Indeksy


Przyk ad gnicia indeksu konwencjonalnego

32

39

38

31

33

35

34

36

Bloki nadmiarowe

(nieciągłe)

Przykład gnicia indeksu konwencjonalnego

10

20

30

ciągła alokacja

wolne miejsce

40

50

60

70

80

90

3. Indeksy


Lekarstwo
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

3. Indeksy


Przykład B+drzewa n=3

100

Korzeń

120

150

180

30

3

5

11

120

130

180

200

100

101

110

150

156

179

30

35

3. Indeksy


Przyk adowy w ze wewn trzny
Przykładowy węzeł wewnętrzny

57

81

95

do kluczy do kluczy do kluczy do kluczy

< 57 57 k<81 81k<95 95

3. Indeksy


Przyk adowy li
Przykładowy liść

Z pewnego nie-liścia

do następnego

w kolejności

liścia

57

81

95

Do rekordu

o kluczu 57

Do rekordu

o kluczu 81

Do rekordu

o kluczu 85

3. Indeksy


Rozmiar w z w
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

3. Indeksy


W z y nie mog by zbyt puste
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

3. Indeksy


n=3

Zapełniony Minimalny

Nie-liść

Liść

120

150

180

30

3

5

11

30

35

Liczy się nawet gdy NULL

3. Indeksy


Regu y b drzew
Reguły B+drzew

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

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

3. Indeksy


3 liczba wska nik w i kluczy
3. Liczba wskaźników i kluczy

  • Stopień drzewa = n

Max Max Min Min

wsk. klu.wsk.dane klu.

Nie-liść

(nie-korzeń)

n+1

n

(n+1)/2

(n+1)/2- 1

Liść

(nie-korzeń)

n+1

n

(n+1)/2

(n+1)/2

Korzeń

n+1

n

1

1

3. Indeksy


Wstawienie do b drzewa
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ń

3. Indeksy


32

n=3

100

(a) Wstaw klucz = 32

30

3

5

11

30

31

3. Indeksy


7

3

5

7

n=3

100

(b) Wstaw klucz = 7

30

3

5

11

30

31

3. Indeksy


160

180

160

179

n=3

100

(c) Wstaw klucz = 160

120

150

180

180

200

150

156

179

3. Indeksy


30

Nowy korzeń

40

40

45

n=3

(d) Wstaw 45 – nowy korzeń

10

20

30

1

2

3

10

12

20

25

30

32

40

3. Indeksy


Usuni cie z b drzewa
Usunięcie z B+drzewa

  • Przypadek najłatwiejszy

  • Scal się z sąsiadem (bliźniakiem)

  • Poprzerzucaj klucze

  • Przypadki (b) lub (c) w nie-liściu

3. Indeksy


40

n=4

(b) Scalenie z sąsiadem

  • Usuń 50

10

40

100

10

20

30

40

50

3. Indeksy


35

35

n=4

(c) Poprzerzucaj klucze

  • Usuń 50

10

40

100

10

20

30

35

40

50

3. Indeksy


Nowy korzeń

40

25

30

(d) Scalenie nie-liści

  • Usuń 37

n=4

25

10

20

30

40

25

26

30

37

1

3

10

14

20

22

40

45

3. Indeksy


Usuni cia z b drzew w praktyce
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

3. Indeksy


B drzewa a indeksy konwencjonalne
B+drzewa a indeksy konwencjonalne

  • Na podstawie

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

3. Indeksy


Wnioski z 1
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

3. Indeksy


1 blok indeksu statycznego

k1

k2

k3

1 blok indeksu statycznego

1 blok

danych

127 kluczy

(127+1)4 = 512 bajtów

-> wskaźniki wyliczane (offsety) do 127

bloków

k1

k2

k3

3. Indeksy


k1

k2

k3

1 blok B+drzewa

k1

1 blok

danych

63 klucze

63x(4+4)+8 = 512 bajtów

-> wskaźniki są konieczne do 63

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

k2

...

k63

-

next

3. Indeksy


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

Indeks statycznyB+drzewo

liczba liczba

bloków wysokość bloków wysokość

2 -> 127 2 2 -> 63 2

128 -> 16,129 3 64 -> 3968 3

16,130 -> 2,048,383 4 3969 -> 250,047 4

250,048 -> 15,752,961 5

3. Indeksy


Wyniki analizy 1

Wniosek z [1]

Statyczne indeksy lepsze

Wyniki analizy [1]

  • W przypadku pliku 8000-blokowego po 32 000 wstawieniach

    po 16 000 wyszukiwaniach

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

3. Indeksy


Wniosek z [2]

B+drzewa są lepsze!

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

  • DBA nie wie, kiedyreorganizować

  • DBA nie wie,jak bardzo zapełnić strony indeksu po reorganizacji

3. Indeksy


Wnioski z [2]

B+drzewa są lepsze

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

3. Indeksy


Zarz dzanie buforami
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!

3. Indeksy


Najlepszy stopie b drzewa
Najlepszy stopień B+drzewa?

nto liczba kluczy w węzle

3. Indeksy


Przyk adowe za o enia
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 LOG2n) ms

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

(3) Założmy, że B+drzewo jest zapełnioneliczba węzłów do przejrzenia to

LOGnNgdzie N = liczba rekordów

3. Indeksy


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

f(n)

noptn

3. Indeksy


Znajd n opt pochodna f n 0
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

3. Indeksy


A gdyby zwyk e b drzewo bez
A gdyby zwykłe Bdrzewo? [ bez + ]

  • Unikamy duplikacji kluczy

  • Wskaźniki do rekordów są też w węzłach wewnętrznych

3. Indeksy


K1 W1

K2 W2

K3 W3

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

3. Indeksy


Przyk ad b drzewa n 2

Fastryga jest teraz

bezużyteczna!

Przykład Bdrzewa n=2

65

125

25

45

85

105

145

165

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

3. Indeksy


Uwaga o wstawieniach

20

  • Potem:

10

25

30

Uwaga o wstawieniach

10

20

30

  • Wstawiamy rekord z kluczem 25

n=3

liść

3. Indeksy


Statystyka b drzew
Statystyka Bdrzew

MAX MIN

Wsk. Wsk. Klu. Wsk. Wsk. Klucze

węz. rek. węz. rek.

Nie-liść

Nie-korzeń n+1 n n (n+1)/2 (n+1)/2-1 (n+1)/2-1

Liść

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

3. Indeksy


Wady i zalety
Wady i zalety

 Bdrzewa pozwalają na szybsze wyszukiwanie niż B+drzewa

 W Bdrzewach liście i nie-liście są różnych rozmiarów

 W Bdrzewach usuwanie trudniejsze

 B+drzewalepsze!

3. Indeksy


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.

3. Indeksy


Przyk ad
Przykład

  • Wskaźnik: 4 bajty

  • Klucz 4 bajty

  • Blok 100 bajtów (dla prostoty)

  • Pełne dwupoziomowe drzewo

3. Indeksy


Bdrzewo:

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

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

Każdyz 9 synów: 12 wsk. na rek. +12 kluczy

= 12x(4+4) + 4 = 100 bajtów

2-poziomowe Bdrzewo ma maksymalnie

12x9 + 8 = 116 rekordów

3. Indeksy


B+drzewo:

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

+ 13 wskaźników na synów

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

Każdyz13 synów: 12 wsk. na rek. +12 kluczy

= 12x(4+4) + 4 = 100 bajtów

2-poziomowe B+drzewo ma maksymalnie

13x12 = 156 rekordów

3. Indeksy


Zatem

8 rekordów

Zatem?

B+

B

ooooooooooooo ooooooooo

156 rekordów 108 rekordów

Razem = 116

  • Wniosek

    • W przypadku bloków stałego rozmiaru,

    • B+drzewa są lepsze, bo są bardziej krzaczaste

3. Indeksy


ad