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



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

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

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

Przykładowe B+ drzewo

Definicja pliku kratowego

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

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

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

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych wykład ósmy Indeksy

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

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

Struktury danych: stos, kolejka, lista, drzewo

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

sprowadza się od razu kilka stron!

ALGORYTMY I STRUKTURY DANYCH

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

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:

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

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

Porządek symetryczny: right(x)

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Drzewa poszukiwań binarnych

Haszowanie (adresowanie rozpraszające, mieszające)

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

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

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

Teoretyczne podstawy informatyki

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

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

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

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów przypomnienie wiadomości. Pojęcie indeksu. Wykład 11: Indeksy. Język DDL i DML.

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

Drzewa podstawowe poj

Algorytmy i struktury danych. wykład 5

Algorytmy i Struktury Danych

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

Drzewo binarne BST. LABORKA Piotr Ciskowski

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

Sortowanie bąbelkowe

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

Teoretyczne podstawy informatyki

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

ALGORYTMY I STRUKTURY DANYCH

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

Matematyka dyskretna - 7.Drzewa

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

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

WPROWADZENIE DO BAZ DANYCH

Listy, kolejki, stosy

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

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

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Bazy danych TERMINOLOGIA

Struktury danych i optymalizacja

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

PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

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

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

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

Normalizacja baz danych

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Drzewa czerwono-czarne.

Podstawy Informatyki. Wykład 6. Struktury danych

Drzewa wyszukiwań binarnych (BST)

ALGORYTMY I STRUKTURY DANYCH

Programowanie obiektowe

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

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

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

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Programowanie obiektowe

Drzewa AVL definicje

PROGRAM RETROKONWERSJI ZDALNEJ

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

Struktury Danych i Złożoność Obliczeniowa

Ogólne wiadomości o grafach

Fizyczna struktura bazy danych w SQL Serwerze

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

System plików przykłady. implementacji

PODSTAWY INFORMATYKI wykład 6.

Algorytmy i struktury danych

Sortowanie. Bartman Jacek Algorytmy i struktury

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

TEORETYCZNE PODSTAWY INFORMATYKI

Transkrypt:

0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury dostępowe, używane w celu przyspieszenia pobierania rekordów z pliku, Oferują dostęp do rekordów bez wpływania na ich fizyczne rozmieszczenie na dysku, Do tworzenia indeksów wykorzystywane jest pole indeksujące które może być dowolnym polem w pliku, Dla danego pliku może być skonstruowanych wiele indeksów na wielu polach, Mechanizm porównywalny do indeksów dołączanych na końcach książek, INDEKSY - DEFINICJE Rodzaje indeksów: jednopoziomowe, wielopoziomowe, Rodzaje indeksów: zagęszczone, rzadkie, Rodzaje struktur: pliki uporządkowane, struktury drzewiaste,

0-0-6 INDEKSY JEDNOPOZIOMOWE Indeks przechowuje wartości pola indeksującego oraz wskaźniki na bloki w których te pola się znajdują, wartości w indeksie są uporządkowane dlatego można tu stosować wyszukiwanie binarne, Rodzaje indeksów jednopoziomowych uporządkowanych: główny (podstawowy), klastrowania (zgrupowany), drugorzędny (wtórny). INDEKS GŁÓWNY Nałożony na atrybucie klucza podstawowego pliku uporządkowanego, Indeks główny to plik uporządkowany zawierający rekordy złożone z dwóch pól: pierwsze ma typ ten sam co klucz, drugie to wskaźnik na blok dyskowy, Wpis do indeksu można określić jako parę <K(i),P(i)> Rozmiar indeksu jest taki sam jak liczba bloków w pliku, Pierwszy z rekordów danego bloku nazywamy rekordem zaczepienia, zaczepieniem bloku lub kotwicą bloku, Plik danych z kluczem głównym INDEKSY ZAGĘSZCZONE I RZADKIE Indeks zagęszczony zawiera wpis dla każdej wartości klucza wyszukiwania czyli dla każdego rekordu, Indeks niezagęszczony posiada wpis jedynie dla niektórych wartości wyszukiwania (np. bloków), INDEKS GŁÓWNY Plik indeksu punkt zaczepienia wskaźnik Adamczyk Anwert Aztek Zaktorski Adamczyk Afon Agnelli Anwert Ampok Awert Aztek Azwok Azyl Zaktorski Zkotar Zylton

0-0-6 INDEKS GŁÓWNY Zalety: Mniej jednostek niż w pliku z danymi: tylko rekordy zaczepienia oraz mniej pól rekordów, Efektywniejsze wyszukiwanie binarne: średni koszt log b. Wady: Duży koszt wstawiania, usuwania i modyfikacji. INDEKS KLASTROWANIA Nałożony na atrybucie nie będącym kluczem podstawowym pliku uporządkowanego (nieunikatowym), Pole takie nazywamy polem klastrowania, Indeks klastrowania to plik uporządkowany z dwoma polami: pierwsze ma ten sam typ co pole klastrowania, drugie wskaźnik, Indeks zawiera wpis do każdej odrębnej wartości klastrowania oraz wskaźnik na pierwszy blok do którego ona należy, Jest indeksem rzadkim, Wady i zalety te same co w przypadku indeksu głównego, INDEKS KLASTROWANIA Plik indeksu Plik danych z polem klastrownia INDEKS KLASTROWANIA Z BLOKAMI NADMIAROWYMI Plik indeksu Plik danych z polem klastrowania wskaźnik na blok Null Wartość pola klastrowania wskaźnik Wartość pola klastrowania wskaźnik wskaźnik na blok Null 6 wskaźnik na blok 6 wskaźnik na blok Null

0-0-6 INDEKS DRUGORZĘDNY Można nałożyć na pole które ma unikatowe wartości w każdym rekordzie lub które nie jest polem klucza i posiada powtarzające się wartości, Jest plikiem uporządkowanym o dwóch polach: jedno jest tego typu co wybrane pole nie będące polem uporządkowania pliku (pole indeksujące), drugie wskaźnikiem na blok lub rekord, Dla jednego pliku może być wiele indeksów drugorzędnych, Jest indeksem zagęszczonym, INDEKS DRUGORZĘDNY (POLE KLUCZA) Plik danych z polem indeksowania Plik indeksu Wartość pola indeksu 6 wskaźnik wskaźniki we wpisach indeksu są wskaźnikami na bloki 6 6 6 9 9 0 7 INDEKS DRUGORZĘDNY (POLE NIE BĘDĄCE POLEM KLUCZA) Plik danych z polem indeksowania poziom pośredni Plik indeksu Wartość wskaźnik pola INDEKSY WIELOPOZIOMOWE Celem wprowadzenia takiego indeksu jest redukcja kosztów przeszukiwania, Idea indeksu wielopoziomowego bazuje na redukcji o tyle razy ile wynosi współczynnik blokowania bfr i, przeszukiwanie indeksu wielopoziomowego wymaga średnio log bfri b i dostępów do bloków pliku indeksowego, Indeks składa się z wielu poziomów: poziom pierwszy (podstawowy) to plik uporządkowany z różnymi wartościami K(i),

0-0-6 INDEKSY WIELOPOZIOMOWE Dla pierwszego poziomu możemy stworzy indeks podstawowy, nazywamy go indeksem drugiego poziomu, Tę samą procedurę można powtarzać dla drugiego poziomu i tworzy się trzeci, Liczba poziomów w indeksie wielopoziomowym (ostatni poziom zwany szczytowym t): t= log bfri (r ), gdzie r to liczba wpisów na poziomie pierwszym, 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. INDEKSY WIELOPOZIOMOWE Poziom pierwszy 8 Poziom drugi 9 8 6 7 80 8 Plik danych z polem klucza głównego 8 9 6 9 6 ISAM ISAM Jedną z fundamentalnych koncepcji indeksu wielopoziomowego jest struktura ISAM (ang. Indexed Sequential Access Method) opracowana przez IBM, zbudowana jest z dwóch poziomów. Poziom pierwszy indeksuje cylindry. Rekordy indeksu zawierają pary wartości: poszukiwany klucz i adres do indeksu ścieżki dyskowej. Poziom drugi indeksuje ścieżki. Jego rekordy zawierają pary wartości: poszukiwany klucz i adres ścieżki. Rozwinięciem struktury ISAM jest VSAM (ang. Virtual Sequential Access Method). VSAM jest już niezależna od rozwiązań sprzętowych. ISAM jest indeksem statycznym, co oznacza, że nie posiada zaawansowanych mechanizmów modyfikowania struktury w sytuacji zmodyfikowania zawartości indeksowanego pliku (dodanie, zmodyfikowanie, usunięcie rekordu), Usunięcie rekordu powoduje powstanie pustego miejsca w bloku indeksu, zaś nowe rekordy są dodawane do bloków przepełnienia. W ostateczności struktura indeksu typu ISAM staje się nieefektywna, dlatego wprowadza się tzw. dynamiczny indeks wielopoziomowy implementowany najczęściej w postaci drzew.

0-0-6 B-DRZEWA I B + -DRZEWA - WPROWADZENIE DRZEWO WYSZUKIWANIA B-drzewa i B + -drzewa stanowią przypadki znanych struktur drzewiastych, Drzewo składa się z wierzchołków, każdy wierzchołek (oprócz korzenia) ma jeden wierzchołek nadrzędny i kilka podrzędnych, Wierzchołek który nie posiada wierzchołków podrzędnych nazywamy liściem, Poziom wierzchołka jest o jeden większy niż poziom nadrzędnego, zaś korzeń ma poziom zerowy, Poddrzewo to składa się z wybranego wierzchołka oraz wszystkich jego wierzchołków podrzędnych, Jest specjalnym typem drzewa, wykorzystywanym do wyszukiwania rekordów, mając daną wartość jednego z jego pól, Drzewo wyszukiwania rzędu p nazywamy takie drzewo, że każdy wierzchołek tego drzewa, Posiada co najwyżej p wartości szukanych i p wskaźników w porządku < P, K, P, K,..., Pq-, Kq-, Pq >, gdzie q <= p, Każde Pi jest wskaźnikiem pustym lub wskaźnikiem do poddrzewa, zaś Ki jest wartością wyszukiwaną. DRZEWO WYSZUKIWANIA - WIERZCHOŁEK DRZEWO WYSZUKIWANIA - PRZYKŁAD P K Ki- Pi Ki Kq- Pq * * * 6 * 9 * x x x X<K Ki-<X<Ki Kq-<X Ograniczenia: w wierzchołku K<K<<Kq-, dla wszystkich wartości X w poddrzewie wskazywanym przez Pi spełnione jest Ki- < X < Ki (dla < i < q), X<Ki (dla i=) oraz Ki- < X (dla i = q). 7 8 * Wskaźnik na wierzchołek Wskaźnik pusty 6

0-0-6 DRZEWO WYSZUKIWANIA - CECHY Nie jest drzewem zrównoważonym, Wiele operacji przy przeszukiwaniu drzewa, Po usunięciu rekordu niektóre wierzchołki mogą być prawie puste co powoduje marnowanie przestrzeni i zwiększenie liczby poziomów, B-DRZEWO Posiada ograniczenia powodujące fakt stałego zrównoważenia oraz że przestrzeń powstająca po usuwaniu nie jest duża, Algorytmy wstawiania i usuwania są dosyć skomplikowane, gdyż muszą spełniać nałożone ograniczenia, Te problemy rozwiązuje B-drzewo. B-DRZEWO RZĘDU P - DEFINICJA Każdy wierzchołek wewnętrzny w drzewie ma postać: <P, <K,Pr>, P, <K,Pr>,,<Kq-,Prq->,Prq>, gdzie q<=p. Każde Pi to wskaźnik drzewa na inny wierzchołek, zaś Pri wskaźnik danych na rekord (lub blok) o wartości pola klucza Ki, w wierzchołku K<K<<Kq-, dla wszystkich wartości X w poddrzewie wskazywanym przez Pi mamy Ki- < X < Ki (dla < i < q), X<Ki (dla i=) oraz Ki- < X (dla i = q). B-DRZEWO - DEFINICJA Każdy wierzchołek posiada najwyżej p wskaźników drzewa, Każdy wierzchołek (oprócz korzenia i liścia) posiada co najmniej p/ wskaźników drzewa, korzeń posiada ich co najmniej dwa, Wierzchołek o q wskaźnikach drzewa, gdzie q<=p, posiada q- wartości pola klucza wyszukiwania, Wszystkie liście znajdują się na tym samym poziomie. 7

0-0-6 B-DRZEWO - WIERZCHOŁEK B-DRZEWO - PRZYKŁAD P K Pr P Ki- Pri- Pi Ki Pri Kq- Prq- Pq * * * o 8 o wskaźnik drzewa wskaźnik danych * * * o o * * * 6 o 7 o * * * 9 o o x x x X<K Ki-<X<Ki Kq-<X * Wskaźnik na wierzchołek Wskaźnik pusty Kolejność wstawiania elementów: 8,,,7,,,9,6 o Wskaźnik danycho B + -DRZEWO Modyfikacja B-drzewa, Wskaźniki danych przechowywane są tylko w liściach, Liście przechowują wpis dla każdej wartości pola wyszukiwania wraz ze wskaźnikiem danych na rekord (lub blok), B + -DRZEWO RZĘDU P DEFINICJA WIERZCHOŁKÓW Każdy wierzchołek wewnętrzny w drzewie ma postać: <P, K, P, K,, Pq-, Kq-, Pq>, gdzie q<=p, zaś każde Pi to wskaźnik drzewa, W wierzchołku K<K<<Kq-, Dla wszystkich wartości X w poddrzewie wskazywanym przez Pi mamy Ki- < X < Ki (dla < i < q), X<=Ki (dla i=) oraz Ki- < X (dla i = q), 8

0-0-6 B + -DRZEWO RZĘDU P DEFINICJA WIERZCHOŁKÓW 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 co najmniej p/ wskaźników drzewa, korzeń posiada ich co najmniej dwa, Wierzchołek o q wskaźnikach drzewa, gdzie q<=p, posiada q- wartości pola klucza wyszukiwania. B + -DRZEWO RZĘDU P DEFINICJA LIŚCI Każdy wierzchołek typu liść w drzewie ma postać: <<K, Pr>, <K, Pr>,, <Kq-, Pq->, Pnast>, gdzie q<=p, zaś każde Pri to wskaźnik danych, Pnast wskazuje na następny wierzchołek liścia, W wierzchołku K<K<<Kq-, dla q<=p, Każde pri jest wskaźnikiem danych wskazującym na rekord (lub blok), którego wartość pola wyszukiwania jest równa Ki, B + -DRZEWO RZĘDU P DEFINICJA LIŚCI Każdy wierzchołek liścia posiada co najmniej p/ wskaźników drzewa, Wszystkie wierzchołki liści znajdują się na tym samym poziomie. B + -DRZEWO WIERZCHOŁKI I LIŚCIE P K Ki- Pi Ki Kq- Pq wskaźnik drzewa wskaźnik drzewa x x x X<=K Ki-<X<=Ki Kq-<X K Pr K Pr Ki Pri Kq- Prq- Pnast wskaźnik danych 9

0-0-6 B + -DRZEWO - PRZYKŁAD * Wskaźnik na wierzchołek Wskaźnik pusty B + -DRZEWO - OPERACJE * * * * * 7 * 8 * o o * o * 6 o 7 o * 8 o * 9 o o o Wskaźnik danych Algorytm dodawania do drzewa: Rozpoczynając od korzenia znajdujemy właściwy liść i umieszczamy tam wartość Jeśli wierzchołek liścia jest pełny i dodanie wartości do liścia powoduje przepełnienie to dzielimy go, pozostawiamy początkowe j = ceiling((p liść + ) / ) wartości w liściu, a pozostałe przenosimy do nowego liścia, j-tą wartość powielamy w węźle nadrzędnym, jeśli przeniesienie wartości do węzła nadrzędnego powoduje przepełnienie, to pozostawiamy początkowe j = floor((p + ) / ) wartości w węźle, a pozostałe przenosimy do nowego węzła, j-tą wartość przenosimy do węzła nadrzędnego B + -DRZEWO - OPERACJE DODAWANIE DO B + -DRZEWA Algorytm usuwania: wartości usuwamy zawsze na poziomie liści, wtedy wartość z lewej w liściu zastępuje wartość w wierzchołku, jeśli wypełnienie liścia spadnie poniżej p/ to znajdź siostrzany wierzchołek liścia bezpośrednio z lewej (lub prawej) strony i redystrybuuj wartości, tak aby oba były zapełnione co najmniej w połowie, Może dojść do propagacji i zmniejszenia liczby poziomów drzewa. Źródło: R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 00 0

0-0-6 USUWANIE Z B + -DRZEWA WYKŁAD PRZYGOTOWANO NA PODSTAWIE R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 00, http://wazniak.mimuw.edu.pl/index.php?title=bazy_ danych. Źródło: R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 00