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