< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Podobne dokumenty
PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Tadeusz Pankowski

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Podstawy Informatyki. Metody dostępu do danych

Przykładowe B+ drzewo

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Indeksy. Schematyczne ujęcie organizacji pamięci i wymiany danych systemu pamiętania.

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Wysokość drzewa Głębokość węzła

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Definicja pliku kratowego

ALGORYTMY I STRUKTURY DANYCH

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

sprowadza się od razu kilka stron!

WPROWADZENIE DO BAZ DANYCH

Porządek symetryczny: right(x)

Bazy danych wykład ósmy Indeksy

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Drzewa poszukiwań binarnych

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Teoretyczne podstawy informatyki

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

Struktury danych: stos, kolejka, lista, drzewo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych, 9. ćwiczenia

Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna

Haszowanie (adresowanie rozpraszające, mieszające)

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

Wykład 8. Drzewa AVL i 2-3-4

Fizyczna struktura bazy danych Indeksy Optymalizacja. Fizyczna struktura bazy danych (c.d.) Tadeusz Pankowski

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Algorytmy i struktury danych. wykład 5

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Listy, kolejki, stosy

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Teoretyczne podstawy informatyki

Sortowanie bąbelkowe

Baza danych. Baza danych to:

Wykład 6. Drzewa poszukiwań binarnych (BST)

Drzewa wyszukiwań binarnych (BST)

Drzewo binarne BST. LABORKA Piotr Ciskowski

Podstawy Informatyki Metody dostępu do danych

Wykład 2. Drzewa poszukiwań binarnych (BST)

Pojęcie systemu informacyjnego i informatycznego

ALGORYTMY I STRUKTURY DANYCH

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Podstawy Informatyki. Wykład 6. Struktury danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Bazy danych TERMINOLOGIA

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1

Matematyka dyskretna - 7.Drzewa

T A B E L E i K W E R E N D Y

Autor: Joanna Karwowska

Programowanie obiektowe i C++ dla matematyków

Fizyczna struktura bazy danych w SQL Serwerze

System plików ReiserFs

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików przykłady. implementacji

Drzewa poszukiwań binarnych

Programowanie obiektowe

Bazy danych - BD. Organizacja plików. Wykład przygotował: Robert Wrembel. BD wykład 5 (1)

Drzewa czerwono-czarne.

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Algorytmy i struktury danych

Programowanie obiektowe

Indeksowanie w bazach danych

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Systemy baz danych. mgr inż. Sylwia Glińska

Ogólne wiadomości o grafach

Algorytmy sztucznej inteligencji

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Drzewa podstawowe poj

INDEKSY I SORTOWANIE ZEWNĘTRZNE

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

Optymalizacja poleceń SQL Metody dostępu do danych

System plików przykłady implementacji

Transkrypt:

Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających rekordy z tymi wartościami pól.: Indexing field value record block Wartości indeksu są uporządkowane, można więc stosować przeszukiwanie binarne. Plik indeksów jest znacznie mniejszy od właściwego pliku. Indeks podstawowy (ang. primary index) jest określony na uporządkowanym atrybucie (polu) klucza pliku uporządkowanego. Pole to jest wykorzystywane do fizycznego uporządkowania rekordów na dysku Indeks zgrupowany (ang. clustering index) jeśli atrybut (pole) porządkujący nie jest polem klucza, tzn. kilka rekordów w pliku może mieć tą samą wartość tego pola.!!!!! Plik może mieć tylko jedno fizyczne uporządkowanie, a więc...??? Indeks wtórny (drugorzędny) (ang. secondary index) jest określony na nieuporządkowanym atrybucie (polu) rekordu. Plik może mieć wiele indeksów wtórnych, niezależnie od indeksu podstawowego. Indeks wielopoziomowy - konstruowane na bazie indeksów podstawowych, zgrupowanych i wtórnych. Systemy baz danych - Zbyszko Królikowski 1 Indeks podstawowy przykład: Systemy baz danych - Zbyszko Królikowski 3 Indeks podstawowy Indeks podstawowy jest to uporządkowany plik rekordów o stałej długości i dwóch polach ordering key field to disk block Klucz główny Adres bloku dyskowego Dla każdego bloku pliku danych istnieje tylko jeden rekord indeksu w pliku indeksowym. Każdy rekord indeksu posiada wartość klucza podstawowego pierwszego rekordu w bloku oraz wskaźnik (adres) tego bloku. I-ty rekord indeksu: < K ( i ), P ( i ) > Pierwsze trzy rekordy indeksu z przykładu poniżej są następujące: < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > < K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (3) = ( Alexander, Ed ), P (3) = adres bloku 3 > Systemy baz danych - Zbyszko Królikowski 2 Indeks podstawowy Ogólna liczba rekordów w pliku indeksu odpowiada liczbie bloków pliku danych. Pierwszy rekord w bloku danych jest nazywany rekordem kotwiczącym bloku (ang. anchor rekord). Indeks podstawowy jest indeksem rzadkim zawiera jeden rekord dla całego bloku danych, a nie dla każdego rekordu w pliku danych (indeks gęsty). Liczba bloków indeksu jest << od liczby bloków pliku; przeszukiwanie binarne w pliku indeksowym wymaga znacznie mniejszej liczby dostępów niż do pliku danych. Problemy: wstawianie i usuwanie rekordów w pliku danych Wstawienie nowego rekordu (np. Aker patrz rysunek wyżej) wymaga nie tylko przesunięcia rekordów w pliku danych ale również wymaga zmian w pliku indeksowym, ponieważ przesunięcie rekordów powoduje zmianę rekordu kotwiczącego bloku Rozwiązania: nieuporządkowany plik przepełnienia lub lista łączona rekordów przepełnienia Systemy baz danych - Zbyszko Królikowski 4

Indeks gęsty vs rzadki Systemy baz danych - Zbyszko Królikowski 5 Indeks zgrupowany Systemy baz danych - Zbyszko Królikowski 7 Indeks zgrupowany Jeżeli rekordy pliku są uporządkowane fizycznie według wartości pola niekluczowego (pole grupujące ang. clustering field) to indeks zdefiniowany na takim polu nazywamy indeksem zgrupowanym Poszczególne rekordy indeksu odnoszą się do unikalnych wartości pola grupującego i zawierają wskaźniki do zawsze pierwszego bloku danych zawierającego daną wartość pola grupującego. Wstawianie i usuwanie rekordów stanowi problem, ponieważ rekordy danych są fizycznie uporządkowane. Rozwiązanie: rezerwowanie całego bloku dla każdej wartości pola grupującego wszystkie rekordy z tą wartością są lokowane w tym bloku. Jeśli jeden blok nie wystarcza, to alokowany jest dodatkowy blok i łączony z poprzednim wskaźnikiem Indeks zgrupowany jest również indeksem rzadkim, ponieważ dotyczy unikalnych wartości pola indeksowego, a nie wszystkich rekordów w pliku. Systemy baz danych - Zbyszko Królikowski 6 Indeks zgrupowany rozwiązanie problemu wstawiania i usuwania rekordów Systemy baz danych - Zbyszko Królikowski 8

Indeks wtórny Indeks wtórny jest zakładany na polu nieporządkującym plik danych. Może istnieć wiele indeksów wtórnych dla pojedynczej relacji. Systemy baz danych - Zbyszko Królikowski 9 Indeks wtórny na polu niekluczowym Indeks wtórny jest zakładany najczęściej na polu niekluczowym wiele rekordów w pliku danych może mieć tą samą wartość pola K ( i ) indeksu. Indeks wtórny daje logiczne uporządkowanie rekordów poprzez pole indeksowe. Implementacje indeksu wtórnego na polu niekluczowym: 1. Wiele rekordów indeksowych z tą samą wartością K ( i ) dla różnych rekordów pliku danych. 2. Zastosowanie rekordów indeksowych zmiennej długości, to znaczy, dla danej wartości K ( i ) utrzymywana jest lista wskaźników do odpowiednich bloków danych: < K ( i ), P1 ( i ), P2 ( i ),..., Pk ( i )> 3. Zastosowanie rzadkiego indeksu do bloku wskaźników rekordów. Rekord indeksu ma stałą długość i zawiera pojedynczą wartość indeksowanego pola. Tworzony jest jednak poziom pośredni, tj. blok rekordów wskaźników, dla utrzymania wielu wskaźników do rekordów danych wskaźnik P ( i ) w rekordzie indeksu < K ( i ), P ( i ) > wskazuje na blok wskaźników rekordów. Systemy baz danych - Zbyszko Królikowski 11 Indeks wtórny na polu klucza wtórnego Pole klucza wtórnego zawiera różne wartości dla każdego rekordu w pliku indeks wtórny jest uporządkowany według K ( i ), tak więc można wykonywać przeszukiwanie binarne na indeksie. Indeks wtórny jest indeksem gęstym jednemu rekordowi indeksu odpowiada jeden rekord pliku danych. Ponieważ rekordy pliku danych nie są fizycznie uporządkowane wg wartości klucza wtórnego, nie można wykorzystać rekordu kotwiczącego bloku dlatego rekord indeksu dotyczy jednego rekordu danych, a nie bloku jak to ma miejsce w wypadku indeksu podstawowego. P ( i ) są wskaźnikami do bloków blok musi być wczytany do pamięci operacyjnej i tam dopiero wyszukany odpowiedni rekord. Indeks wtórny wymaga więcej przestrzeni na dysku aniżeli indeks podstawowy. Systemy baz danych - Zbyszko Królikowski 10 Indeks wtórny na polu niekluczowym zastosowanie indeksu rzadkiego Systemy baz danych - Zbyszko Królikowski 12

Indeks wielopoziomowy Cel: zredukowanie czasu przeszukiwania indeksu. Przeszukiwanie binarne wymaga log2bi dostępów do bloków indeksu zajmującego bi bloków każdy krok przeszukiwania redukuje dwukrotnie rozmiar analizowanego indeksu. W przypadku indeksu wielopoziomowego, w każdym kroku redukujemy bfri krotnie rozmiar analizowanego indeksu. (bfri - współczynnik blokowania: liczba rekordów w bloku) przeszukiwanie indeksu wielopoziomowego wymaga średnio logbfribi dostępów do bloków pliku indeksowego. W ramach indeksu wielo poziomowego wyróżnia się I poziom indeksu (base level) (uporządkowany plik indeksowy z różnymi wartościami K ( i )) oraz II poziom indeksu (top level), który jest indeksem podstawowym dla poziomu I. II poziom ma po jednym rekordzie (dotyczącym rekordu kotwiczącego) dla każdego bloku indeksów z poziomu I. Indeksy wielopoziomowe można konstruować z wykorzystaniem indeksów podstawowych, wtórnych i zgrupowanych, pod warunkiem, że indeks I poziomu ma różne wartości dla K ( i ) i rekordy stałej długości. Systemy baz danych - Zbyszko Królikowski 13 Indeks wielopoziomowy Problem: wstawianie i usuwanie rekordów (np. wstaw rekord K = 45) pociąga za sobą konieczność modyfikacji indeksu Rozwiązanie: pozostawienie w blokach pliku indeksowego wolnej przestrzeni Indeks taki nazywamy dynamicznym indeksem wielopoziomowym Najczęściej spotykana implementacja: struktury typu B drzewo lub B+ - drzewo. Systemy baz danych - Zbyszko Królikowski 15 Indeks wielopoziomowy Systemy baz danych - Zbyszko Królikowski 14 Dynamiczny indeks wielopoziomowy typu drzewo B-drzewa są specjalnym przypadkiem drzewowej struktury danych Drzewo składa się z wierzchołków (węzłów) (nodes). Każdy węzeł (z wyjątkiem korzenia) ma jeden węzeł rodzica i zero lub więcej węzłów dzieci. Węzeł, który nie ma dzieci jest nazywany liściem. Węzły nie-liście są nazywane węzłami wewnętrznymi. Poddrzewo wierzchołka składa się z tego wierzchołka i wszystkich węzłów następników. Jednym ze sposobów implementacji drzewa jest przechowywanie w węźle tylu wskaźników ile ten węzeł ma dzieci. Czasami w węźle przechowywany jest również wskaźnik do rodzica. Oprócz wskaźników węzły zawierają również dodatkowe informacje, to jest wartości pól indeksowych pliku, które są wykorzystywane do wyszukiwania poszczególnych rekordów. Systemy baz danych - Zbyszko Królikowski 16

Dynamiczny indeks wielopoziomowy typu drzewo Subtree for node B A root node (level 0) B C D nodes at level 1 E F G H I nodes at level 2 J K nodes at level 3 Nodes E, J, C, G, H, and K are leaf nodes of the tree Systemy baz danych - Zbyszko Królikowski 17 Struktura S-drzewa budowa węzła P 1 K 1... K i-1 P i K i... K q-1 P q X X X X < K 1 K i-1 < X < K i K q-1 < X Wyszukując wartość Xi podążamy za wskaźnikiem Pi zgodnie z formułą w warunku (2) definicji powyżej Systemy baz danych - Zbyszko Królikowski 19 S-drzewo S-drzewo (ang. search tree) jest specjalnym typem drzewa, wykorzystywanym do wyszukiwania rekordów, mając daną wartość jednego z jego pól. Indeksy wielopoziomowe w wersji podstawowej mogą być traktowane jako odmiana S-drzewa. S-drzewem rzędu p nazywamy takie drzewo, że każdy wierzchołek tego drzewa posiada co najwyżej p 1 wartości szukanych i p wskaźników do poddrzew w porządku < P1, K1, P2, K2,..., Pq-1, Kq-1, Pq > gdzie q p. Pi jest wskaźnikiem pustym lub wskaźnikiem do podrzewa. W każdej chwili S-drzewo spełnia dwa ograniczenia: dla każdego wierzchołka: K1 < K2 <... < Kq-1; dla wszystkich wartości X w poddrzewie wskazanym przez Pi spełnione są następujące warunki: Ki-1 < X < Ki, dla 1 < i < q X < Ki, dla i = 1 Ki-1 < X, dla i = q Systemy baz danych - Zbyszko Królikowski 18 S-drzewo jako mechanizm wyszukiwania rekordów w pliku Wartości w drzewie mogą być wartościami jednego z pól pliku (pole przeszukiwania search field) Każda wartość w drzewie jest związana ze wskaźnikiem do rekordu, który zawiera tą wartość (alternatywnie wskaźnik może być do bloku zawierającego ten rekord) tree node null tree 5 3 6 9 1 7 8 12 Systemy baz danych - Zbyszko Królikowski 20

S-drzewo jako mechanizm wyszukiwania rekordów w pliku cd. S-drzewo może być pamiętane na dysku przez przypisanie każdemu węzłowi bloku dyskowego Gdy nowy rekord jest wstawiany należy uaktualnić S-drzewo, przez wprowadzenie wartości pola przeszukiwania nowego rekordu i wskaźnika do tego rekordu w S-drzewie Z każdym S-drzewem są związane odpowiednie procedury wstawiania i usuwania wartości nie gwarantują one jednak, że dynamicznie tworzone i modyfikowane S-drzewo jest zrównoważone (zbalansowane), co oznacza, że wszystkie liście znajdują się na tym samym poziomie Utrzymywanie zrównoważenia jest bardzo ważne, ponieważ gwarantuje, że nie będzie węzłów na wysokich poziomach, co wymagałoby dostępu do wielu bloków podczas wyszukiwania Problem usuwania rekordów: może prowadzić do pustych węzłów wymagających pamięci i zwiększających liczbę poziomów Systemy baz danych - Zbyszko Królikowski 21 B-drzewo definicja cd. 4. Każdy wierzchołek ma co najwyżej p wskaźników do poddrzew 5. Każdy wierzchołek, za wyjątkiem korzenia i liści, posiada co najmniej [ ( p / 2 ) ] wskaźników do poddrzew. Korzeń posiada co najmniej 2 wskaźniki do poddrzew, za wyjątkiem sytuacji, gdy jest jedynym wierzchołkiem w grafie. 6. Wierzchołek o q wskaźnikach do poddrzew, q p, posiada q-1 wartości kluczy. 7. Wszystkie liście znajdują się na tym samym poziomie. Liście posiadają strukturę zbliżoną do struktury wierzchołków wewnętrznych liście nie posiadają wskaźników do poddrzew. 8. Dla każdej wartości klucza X w poddrzewie wskazywanym przez wskaźnik Pi spełnione są następujące warunki: Systemy baz danych - Zbyszko Królikowski 23 B-drzewo B-drzewo jest S-drzewem z dodatkowymi ograniczeniami ograniczenia te mają na celu zagwarantowanie, że drzewo jest zrównoważone i że wolna przestrzeń (na skutek usuwania rekordów nie będzie nigdy zbyt duża B-drzewo rzędu p definiujemy następująco: 1. Każdy wierzchołek wewnętrzny posiada następującą strukturę: < P1, ( K1, Pr1 ), P2, ( K2, Pr2),..., ( Kq-1, Prq-1 ), Pq > gdzie q p. Pi jest wskaźnikiem do poddrzewa. Pri jest wskaźnikiem do bloku danych zawierających rekord o wartości klucza Ki. 2. Dla każdego wierzchołka K1 < K2 <... < Kq-1 3. Dla każdej wartości klucza X w poddrzewie wskazywanym przez wskaźnik Pi spełnione są następujące warunki: Ki-1 < X < Ki, dla 1 < i < q X < Ki, dla i = 1 Ki-1 < X, dla i = q Systemy baz danych - Zbyszko Królikowski 22 B-drzewo P K Pr K Pr P K Pr 1 1 1... i-1 i-1 i i... K Pr q-1 q-1 P q tree data data tree data tree X X X X < K 1 K i-1 < X < K i K q-1 < X Węzeł B-drzewa z q-1 wartościami pola przeszukiwań tree node data null tree 5 8 1 3 6 7 9 12 Wartości pola przeszukiwań były wprowadzane w nastepującej kolejności: 8, 5, 1, 7, 3, 12, 9, 6 Systemy baz danych - Zbyszko Królikowski 24 i

B+-drzewo Wariant B-drzewa najczęściej wykorzystywany w praktyce Inna struktura węzłów pośrednich i liści w liściach wartości i wskaźniki do danych (gdy indeks dla pola niekluczowego: wskaźniki do danych wskazują na blok ze wskaźnikami do rekordów) w węzłach pośrednich wartości i wskaźniki do poddrzew (niektóre wartości z liści powtarzają się w węzłach pośrednich) Liście połączone w listę Systemy baz danych - Zbyszko Królikowski 25 B+-drzewo Systemy baz danych - Zbyszko Królikowski 26