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