Bazy danych - Wkuwanko.pl

Transkrypt

Bazy danych - Wkuwanko.pl
Plan wykładu
• Poj cie indeksu - rodzaje indeksów
Bazy danych
• Metody implementacji indeksów
– struktury statyczne
Wykład 11: Indeksy
– struktury dynamiczne
Małgorzata Kr towska
Katedra Oprogramowania
e-mail: [email protected]
Bazy danych (studia dzienne)
Metody organizacji pliku rekordów
2
Poj cie indeksu
– lik nieuporz dkowany
• 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.
– Plik posortowany
• Indeks = skorowidz w ksi
– Plik haszowany
• 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 dzienne)
3
Bazy danych (studia dzienne)
ce.
4
Klucz wyszukiwania
Plik indeksowy
• 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 nastepuj cej postaci:
• Zawarto
• W skład pliku indeksowego wchodz rekordy indeksu b d ce
pozycjami danych lub pozycjami indeksu.
– 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 c klucza wyszukiwania k (np. para (warto
klucza, wska nik do w zła w indeksie)
Bazy danych (studia dzienne)
indeksu jest przechowywana w pliku indeksowym
• W zeł odpowiada na ogół stronie dyskowej i zawiera albo
pozycje danych albo pozycje indeksu.
5
Rodzaje indeksów
Bazy danych (studia dzienne)
6
Indeksy wewn trzne i zewn trzne
• Wewn trzny - gdy plik indeksu zawiera w sobie plik danych tzn.
pozycje danych indeksu pokrywaj si z rekordami danych
(tabela jest zorganizowana przez indeks)
Adamski
Lech
Rudek
– 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
Indeks
wewn trzny
pogrupowany
wzgl dem
nazwiska
• Zewn trzny - indeks, który nie jest indeksem wewn trznym.
Mo e by tylko jeden indeks wewn trzny i wiele indeksów
zewn trznych
Adamski, 56, 2000
Bakowski, 25, 1000
Kasacki, 29, 3000
Lech, 60, 2000
Modrzewski, 25,2000
Michalski, 30, 3000
Rudek, 31, 5000
Zybert, 45, 4400
Plik danych
Bazy danych (studia dzienne)
7
Bazy danych (studia dzienne)
25
25
29
30
31
45
56
60
Indeks zewn trzny
(niepogrupowany)
wzgl dem wieku
8
Zło one klucze wyszukiwania
•
•
Metody implementacji indeksów
Pojedyncze klucze wyszukiwania - wyszukiwanie według pojedynczego pola
Zło one klucze wyszukiwania - wyszukiwanie według kombinacji wi kszej liczby
pól
11,80
11
12,10
12
12,20
13,75
<wiek, zarobki>
10,12
20,12
75,13
ala
ela
12
11
10
80
iza
12
20
ola
13
75
12
• Indeksy dynamiczne
13
<wiek>
10
20
75
Rekordy danych posortowane
wzgl dem imienia
80,11
• Indeksy statyczne
80
<zarobki, wiek>
<zarobki>
Bazy danych (studia dzienne)
9
Bazy danych (studia dzienne)
Statyczne drzewo ISAM
Statyczne drzewo ISAM
(indexed sequential access method)
•
•
•
Wyszukiwanie binarne - (pliki posortowane) porównujemy poszukiwany klucz z
kluczem rekordu znajduj cym si w rodku ciagu 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.
• 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.
Pozycja indeksu
p0
Strona 1
kN
Strona 2
Bazy danych (studia dzienne)
Strona 3
k1
p1
k2
p2
.....
km
pm
Strona indeksu
k1<k2<...<km
Zasady poszukiwania danego klucza
Jednopoziomowy plik indeksowy
k1 k2
10
strona N
21 34 56
Plik indeksowy
Do strony z
warto ciami
klucza <21
Plik danych
11
Bazy danych (studia dzienne)
Do strony z
21<=k <34
Do strony z
34<=k <56
Do strony z
k >=56
12
Indeks wielopoziomowy (drzewo ISAM)
Struktura drzewa ISAM
• 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 zawiarajacego 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.
W zły
wewn trzne
Pozycja indeksu
p0
k1
p1
k2
p2
.....
km
pm
li cie
Strona indeksu
k1<k2<...<km
Strony nadmiarowe
Wska niki na w zły wy szego poziomu
Bazy danych (studia dzienne)
13
Problemy
Strony główne
Bazy danych (studia dzienne)
14
Podsumowanie drzew ISAM
• Dodawanie i usuwanie rekordów
– 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.
• 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
• Próby rozwi zania problemu:
– 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)
Bazy danych (studia dzienne)
• Niebezpiecze stwo grupowania si kluczy w ci gi na stronach
nadmiarowych (rozwi zanie struktury dynamiczne)
15
Bazy danych (studia dzienne)
16
Indeksy zewn trzne
Dynamiczne indeksy wielopoziomowe
• Indeks dla klucza unikalnego
– budowa pliku indeksowego:
pary: <warto c pola indeksu, wska nik na blok>
– bloki w kolejno ci dowolnej
• B-drzewa
• B+- drzewa
• Indeks dla pola dowolnego
– budowa pliku indeksowego
pary: <warto pola, wska nik na blok wska ników na rekordy>
Bazy danych (studia dzienne)
17
Bazy danych (studia dzienne)
B-drzewo
18
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
Bazy danych (studia dzienne)
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
Kq-1 Prq-1
Pq
Wska nik
danych
Kq-1<X
• Z powodu niejednolitosci w złów dla B drzew operacje INSERT i
DELETE s bardziej skomplikowane => B+- drzewa.
19
Bazy danych (studia dzienne)
20
B+ - drzewo
Wierzchołki wewn trzne
• Wykorzystywane przez wiekszo implemantacji 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)
• Zajeto 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
• B+- drzewo jest wywa one tzn. ka dy li
gł boko ci
• 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 podrzewie, 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
znajduje si na tej samej
Bazy danych (studia dzienne)
21
Bazy danych (studia dzienne)
Wierzchołki wewn trzne
22
Wierzchołki li ci
• Struktura wierzchołków li ci B+- drzewa rz du p:
P1
K1
Pi-1
Ki
Kq-1
– Ka dy wierzchołek li cia ma posta :
Pq
– <<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 kadym wierzchołku liscia 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
Wska niki drzewa
X<=K1
Bazy danych (studia dzienne)
Ki-1<X<=Ki
Kq-1<X
23
Bazy danych (studia dzienne)
24
Wierzchołki li ci
Podsumowanie drzew
• Zastosowania indeksów o strukturze drzewiastej
K1 Pr1
K2 Pr2
Ki Pri
Kq-1 Prq-1
–
–
–
–
Pnast
wyszukiwanie zakresowe
wyszukiwanie równowarto ciowe
sortowanie (order by)
wyszukiwanie przy uzgadnianiu wierszy w trakcie zł czania tabel
• Drzewo ISAM - struktura statyczna
Wska nik danych
– struktura prostsza ni B+-drzewa
– modyfikowane s tylko li cie
– wymagane s strony nadmiarowe, mog ce pogorszyc czas wykonywania
wyszukiwania
Wska nik danych
Wska nik na nast pny
wierzchołek li cia w drzewie
Bazy danych (studia dzienne)
25
• B+-drzewo - struktura dynamiczna
– w praktyce wysoko <=3
– zakładaj c, e korze drzewa jest zawsze trzymany w buforze RAM, koszt
wyszukania pozycji dancyh rekordu wynosi co najwy ej 3 operacje we/wy
Bazy danych (studia dzienne)
26

Podobne dokumenty