Bazy danych

Transkrypt

Bazy danych
Plan wykładu
• Poj cie indeksu - rodzaje indeksów
Bazy danych
• Metody implementacji indeksów
– struktury statyczne
Wykład 8: Indeksy
– struktury dynamiczne
Małgorzata Kr towska
Katedra Oprogramowania
e-mail: [email protected]
Bazy danych (studia zaoczne)
Poj cie indeksu
Klucz wyszukiwania
• Indeks to struktura danych na dysku umo liwiaj ca szybkie
wyszukiwanie danych w bazie danych na podstawie warto ci
klucza wyszukiwania jak np. nazwisko osoby.
• Indeks = skorowidz w ksi
• Klucz wyszukiwania dla indeksu jest to wybrane pole lub pola
rekordu, wzgl dem których ma odbywa si wyszukiwanie.
Indeks jest to struktura danych składaj ca si z w złów, w
których s zapisywane rekordy indeksu w nast puj cej postaci:
– pozycje danych k* okre lane wzgl dem warto ci klucza
wyszukiwania k tzn.
• sam rekord o kluczu k
• para (k,w) gdzie k jest kluczem rekordu, a w jest wska nikiem
do rekordu o tym kluczu
• para (k,w1,.., wn), gdzie k jest kluczem rekordu, a w1,.., wn s
wska nikami do rekordów o kluczu k (wymaga zmiennej liczby
pól)
– pozycje indeksu kieruj ce wyznaczeniem wła ciwej pozycji danych
k* w oparciu o warto klucza wyszukiwania k (np. para (warto
klucza, wska nik do w zła w indeksie)
ce.
• W najprostszej postaci wyszukiwanie polega na tym, e maj c
warto poszukujemy rekordów, w którym ta warto wyst puje
w danym polu.
Bazy danych (studia zaoczne)
2
3
Bazy danych (studia zaoczne)
4
Plik indeksowy
• Zawarto
Rodzaje indeksów
indeksu jest przechowywana w pliku indeksowym
• Wewn trzny - gdy plik indeksu zawiera w sobie plik danych tzn.
pozycje danych indeksu pokrywaj si z rekordami danych
(tabela jest zorganizowana przez indeks)
• W skład pliku indeksowego wchodz rekordy indeksu b d ce
pozycjami danych lub pozycjami indeksu.
– Wewn trzny pogrupowany - gdy pozycje danych s zapisywane w
kolejno ci uporz dkowanej wzgl dem warto ci pewnego klucza
wyszukiwania tak jak w pliku posortowanym
– Wewn trzny niepogrupowany - przykład: organizacja pliku
haszowego
• W zeł odpowiada na ogół stronie dyskowej i zawiera albo
pozycje danych albo pozycje indeksu.
• Zewn trzny - indeks, który nie jest indeksem wewn trznym.
Mo e by tylko jeden indeks wewn trzny i wiele indeksów
zewn trznych
Bazy danych (studia zaoczne)
5
Bazy danych (studia zaoczne)
Indeksy wewn trzne i zewn trzne
Adamski
Lech
Rudek
Indeks
wewn trzny
pogrupowany
wzgl dem
nazwiska
Adamski, 56, 2000
Bakowski, 25, 1000
Kasacki, 29, 3000
Lech, 60, 2000
Modrzewski, 25,2000
Michalski, 30, 3000
Rudek, 31, 5000
Zybert, 45, 4400
Zło one klucze wyszukiwania
•
•
25
25
Pojedyncze klucze wyszukiwania - wyszukiwanie według pojedynczego pola
Zło one klucze wyszukiwania - wyszukiwanie według kombinacji wi kszej liczby
pól
29
11,80
11
30
12,10
12
12,20
31
13,75
45
<wiek, zarobki>
56
10,12
20,12
60
75,13
80,11
Plik danych
Bazy danych (studia zaoczne)
6
Indeks zewn trzny
(niepogrupowany)
wzgl dem wieku
<zarobki, wiek>
7
Bazy danych (studia zaoczne)
ala
ela
12
11
10
80
iza
12
20
ola
13
75
Rekordy danych posortowane
wzgl dem imienia
12
13
<wiek>
10
20
75
80
<zarobki>
8
Statyczne drzewo ISAM
Metody implementacji indeksów
(indexed sequential access method)
•
• Indeksy statyczne
•
• Indeksy dynamiczne
•
Wyszukiwanie binarne - (pliki posortowane) porównujemy poszukiwany klucz z
kluczem rekordu znajduj cym si w rodku ci gu i w zale no ci od wyniku
porównania poszukujemy klucza albo w lewej cz ci albo w prawej, stosuj c
rekurencyjnie opisywan metod
Poszukiwanie binarne łatwiej zastosowa jest nie bezpo rednio do pliku
rekordów, ale do pliku zawieraj cego same klucze rekordów k1<k2<...<kN, gdzie
ki jest najmniejszym kluczem na stronie o numerze i. Plik z kluczami stanowi
plik indeksowy
Po wyznaczeniu najbli szego pasuj cego klucza wystarczy przej do strony z
rekordami , na której znajduje si rekord o danym kluczu.
Jednopoziomowy plik indeksowy
k1 k2
Strona 1
Bazy danych (studia zaoczne)
9
Statyczne drzewo ISAM
p1
k2
p2
.....
km
pm
Bazy danych (studia zaoczne)
Do strony z
34<=k <56
Plik danych
10
Pozycja indeksu
p0
21 34 56
Do strony z
21<=k <34
strona N
Bazy danych (studia zaoczne)
Strona indeksu
k1<k2<...<km
Zasady poszukiwania danego klucza
Do strony z
warto ciami
klucza <21
Strona 3
• Strona indeksu wielopoziomowego (w zeł) składa si z pozycji
indeksu <ki, Pi>, gdzie ki jest kluczem, a Pi jest wska nikiem do
w zła ni szego poziomu zawieraj cego warto ci kluczy >= od
klucza ki . Wska nik P0 stanowi wska nik do w zła wy szego
poziomu zawieraj cego warto ci klucza <k1.
Pozycja indeksu
k1
Strona 2
Plik indeksowy
Indeks wielopoziomowy (drzewo ISAM)
• Strona indeksu jednopoziomowego (w zeł) składa si z pozycji
indeksu <ki, Pi>, gdzie ki jest kluczem, a Pi jest wska nikiem na
stron zawieraj c warto ci klucza >= od klucza ki . Wska nik P0
stanowi wska nik na stron o warto ciach klucza <k1.
p0
kN
k1
p1
k2
p2
.....
km
pm
Strona indeksu
k1<k2<...<km
Wska niki na w zły wy szego poziomu
Do strony z
k >=56
11
Bazy danych (studia zaoczne)
12
Struktura drzewa ISAM
Problemy
• Dodawanie i usuwanie rekordów
W zły
wewn trzne
– w przypadku indeksu głównego jest to problem zło ony, gdy
musimy wstawi rekord na odpowiedniej pozycji w pliku. Wi e si
to z przeniesieniem cz ci rekordów w pliku, a co za tym idzie
zmiany wpisu w indeksie, gdy przesuni cie rekordów powoduje
zmiany warto ci kluczy w danym bloku.
• Próby rozwi zania problemu:
li cie
Strony nadmiarowe
– Wykorzystanie nieuporz dkowanego pliku przepełnienia
– U ycie listy jednokierunkowej rekordów przepełnienia dla ka dego
bloku w pliku danych (przykład indeksu - kolejny slajd)
Strony główne
Bazy danych (studia zaoczne)
13
Bazy danych (studia zaoczne)
Podsumowanie drzew ISAM
14
Indeksy zewn trzne
• Indeks dla klucza unikalnego
– budowa pliku indeksowego:
pary: <warto pola indeksu, wska nik na blok>
– bloki w kolejno ci dowolnej
• Drzewa ISAM dobrze sprawdzaj si do wyszukiwania rekordu
na podstawie warto ci jego klucza, a tak e rekordów z zakresu
warto ci klucza: A<=klucz<=B; A<=klucz, klucz<=B
• Gdy liczba rekordów w pliku jest mniej wi cej stała struktura
ISAM jest dobra
• Indeks dla pola dowolnego
– budowa pliku indeksowego
pary: <warto pola, wska nik na blok wska ników na rekordy>
• Niebezpiecze stwo grupowania si kluczy w ci gi na stronach
nadmiarowych (rozwi zanie struktury dynamiczne)
Bazy danych (studia zaoczne)
15
Bazy danych (studia zaoczne)
16
Dynamiczne indeksy wielopoziomowe
B-drzewo
• B-drzewo rz du p:
– ka dy wierzchołek wewn trzny na posta :
– <P1, <K1, Pr1>, P2, <K2, Pr2>,...,<Kq-1, Pq-1>, Pq>
gdzie q<=p. Ka de Pi oznacza wska nik drzewa - wska nik na inny
wierzchołek w B-drzewie. Ka de Pri oznacza wska nik danych wska nik na rekord, którego warto pola klucza wyszukiwania jest
równa Ki (lub blok w pliku zawieraj cy ten rekord)
– w ka dym wierzchołku K1<K2<...<Kq-1
– dla wszystkich warto ci pola wyszukiwania X w poddrzewie, na które
wskazuje wska nik Pi mamy
Ki-1<X<Ki, dla 1<i<q oraz Ki-1<X dla i=q
– Ka dy wierzchołek prócz korzeni i li ci posiada co najmniej ceil(p/2)
wska ników drzewa
– Wszystkie li cie znajduj si na tym samym poziomie. Li cie posiadaj tak
sam struktur co wierzchołki wewn trzne poza tym, e ich wska niki
drzewa s zerowe
• B-drzewa
• B+- drzewa
Bazy danych (studia zaoczne)
17
Bazy danych (studia zaoczne)
B-drzewo
P1 K1 Pr1 P2
Wska nik
danych
X<K1
Ki-1 Pri-1 Pi
Wska nik
danych
Ki Pri
Wska nik
danych
Ki-1<X<Ki
B+ - drzewo
Kq-1 Prq-1
• Wykorzystywane przez wi kszo implementacji dynamicznych
indeksów
• Wyró niamy wierzchołki wewn trzne i li cie (ró ne struktury
danych)
• Wymagana zaj to strony indeksu wynosi minimum 50% ( z
wyj tkiem korzenia)
• Zaj to ka dej strony li cia wynosi minimum 50%.
• Wierzchołki li ci s zwykle poł czone razem, co zapewnia
mo liwo uzyskiwania uporz dkowanego dost pu do rekordów
wzgl dem pola wyszukiwania
Pq
Wska nik
danych
Kq-1<X
• B+- drzewo jest wywa one tzn. ka dy li
gł boko ci
• Z powodu niejednolito ci w złów dla B drzew operacje INSERT i
DELETE s bardziej skomplikowane => B+- drzewa.
Bazy danych (studia zaoczne)
18
19
Bazy danych (studia zaoczne)
znajduje si na tej samej
20
Wierzchołki wewn trzne
Wierzchołki wewn trzne
• Struktura wierzchołków wewn trznych B+ - drzewa rz du p:
– Ka dy wierzchołek wewn trzny ma posta
<P1, K1, P2,K2,..., Pq-1, Kq-1, Pq>
gdzie q<=p i ka de pi jest wska nikiem drzewa
– W ka dym wierzchołku wewn trznym K1<K2<...<Kq-1.
– Dla wszystkich warto ci pola wyszukiwania X w poddrzewie, na które
wskazuje wska nik pi mamy:
Ki-1<X<Ki, dla 1<i<q oraz Ki-1<X dla i=q
– Ka dy wierzchołek wewn trzny posiada najwy ej p wska ników drzewa
– Ka dy wierzchołek wewn trzny oprócz korzenia i li ci posiada posiada co
najmniej ceil(p/2) wska ników drzewa. Korze posiada co najmniej 2
wska niki drzewa.
– Wierzchołek wewn trzny o q wska nikach drzewa, gdzie q<=p posiada q-1
warto ci pola wyszukiwania
Bazy danych (studia zaoczne)
P1
Pi-1
K1
Ki
Kq-1
Pq
Wska niki drzewa
X<=K1
21
Kq-1<X
Ki-1<X<=Ki
Bazy danych (studia zaoczne)
Wierzchołki li ci
22
Wierzchołki li ci
• Struktura wierzchołków li ci B+- drzewa rz du p:
– Ka dy wierzchołek li cia ma posta :
K1 Pr1
– <<K1, Pr1>,<K2,Pr2>, ..., <Kq-1, Prq-1>, Pnast>
– gdzie q<=p i ka de Pri jest wska nikiem danych, za Pnast wskazuje na
nast pny wierzchołek li cia w B+-drzewie.
– W ka dym wierzchołku li cia K1<K2<.., Kq-1, dla q<=p
– Ka de Pri jest wska nikiem danych wskazuj cych na rekord, którego
warto pola wyszukiwania jest równa ki lub na blok pliku zawieraj cy dany
rekord (lub na blok rekordu wska ników wskazuj cych na rekordy, których
warto ci pola wyszukiwania jest Ki, je eli pole wyszukiwania nie jest
kluczem)
– Ka dy wierzchołek li cia posiada co najmniej ceil(p/2) wska ników drzewa
– Wszystkie wierzchołki znajduj si na tym samym poziomie
Bazy danych (studia zaoczne)
K2 Pr2
Wska nik danych
Ki Pri
Kq-1 Prq-1
Pnast
Wska nik danych
Wska nik na nast pny
wierzchołek li cia w drzewie
23
Bazy danych (studia zaoczne)
24
Podsumowanie drzew
• Zastosowania indeksów o strukturze drzewiastej
–
–
–
–
wyszukiwanie zakresowe
wyszukiwanie równowarto ciowe
sortowanie (order by)
wyszukiwanie przy uzgadnianiu wierszy w trakcie zł czania tabel
• Drzewo ISAM - struktura statyczna
– struktura prostsza ni B+-drzewa
– modyfikowane s tylko li cie
– wymagane s strony nadmiarowe, mog ce pogorszy czas wykonywania
wyszukiwania
• B+-drzewo - struktura dynamiczna
– w praktyce wysoko <=3
– zakładaj c, e korze drzewa jest zawsze trzymany w buforze RAM, koszt
wyszukania pozycji danych rekordu wynosi co najwy ej 3 operacje we/wy
Bazy danych (studia zaoczne)
25

Podobne dokumenty