Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski



Podobne dokumenty
Podstawy Informatyki. Metody dostępu do danych

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

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

Przykładowe B+ drzewo

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

Bazy danych. Andrzej Łachwa, UJ, /15

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

Definicja pliku kratowego

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

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Haszowanie (adresowanie rozpraszające, mieszające)

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

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

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

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:

Algorytmy i struktury danych. wykład 5

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

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

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

Algorytmy i Struktury Danych

Listy, kolejki, stosy

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

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

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

Porządek symetryczny: right(x)

Drzewa poszukiwań binarnych

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

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

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

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

ALGORYTMY I STRUKTURY DANYCH

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

Sortowanie bąbelkowe

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Drzewa czerwono-czarne.

Teoretyczne podstawy informatyki

Struktury Danych i Złożoność Obliczeniowa

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

sprowadza się od razu kilka stron!

Lista liniowa dwukierunkowa

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

Drzewa AVL definicje

ALGORYTMY I STRUKTURY DANYCH

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

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

PRZYSPIESZENIE KNN. Ulepszone metody indeksowania przestrzeni danych: R-drzewo, R*-drzewo, SS-drzewo, SR-drzewo.

Drzewo binarne BST. LABORKA Piotr Ciskowski

Bazy danych wykład ósmy Indeksy

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

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

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

PODSTAWY INFORMATYKI wykład 6.

Programowanie obiektowe

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

Podstawy Informatyki Metody dostępu do danych

Struktury danych: stos, kolejka, lista, drzewo

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

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

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

Sortowanie. Bartman Jacek Algorytmy i struktury

WPROWADZENIE DO BAZ DANYCH

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

ALGORYTMY I STRUKTURY DANYCH

Struktury danych i optymalizacja

Drzewa wyszukiwań binarnych (BST)

Podstawy Informatyki. Wykład 6. Struktury danych

Programowanie obiektowe

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Teoretyczne podstawy informatyki

dr inż. Paweł Myszkowski Wykład nr 11 ( )

Drzewa poszukiwań binarnych

Algorytmy i struktury danych

Egzaminy i inne zadania. Semestr II.

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

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

System plików przykłady implementacji

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

Drzewa podstawowe poj

System plików przykłady. implementacji

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

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Algorytmy i Struktury Danych

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy i Struktury Danych, 9. ćwiczenia

AiSD zadanie drugie. Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5. 10 kwietnia 2008

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

Wykład 3. Drzewa czerwono-czarne

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

WSTĘP DO INFORMATYKI. Struktury liniowe

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

System plików ReiserFs

Tablice z haszowaniem

Algorytmy i struktury danych

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

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych

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

Haszowanie. dr inż. Urszula Gałązka

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

Transkrypt:

: idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 5 10 13 17 34 37 45 60 log 2( N+ 1) h 1+ log2n 2 : idea : idea 30 30 12 40 12 40 7 15 35 50 7 15 35 50 5 10 13 17 34 37 45 60 5 10 13 17 34 37 45 60 12 30 40 Sposób grupowania wierzchołków uzasadniający postać 5 7 10 13 15 17 34 35 37 45 50 60 3 Drzewo wielodrogowe utworzone w wyniku pogrupowania drzewa w bloki trójelementowe 4

Postać bloków w indeksie o strukturze B-drzewo drzewo (perfectly balanced multiway tree) 10 Nazwisko RPTR BPTR 8 10 Michalak 13 13 Płócieniak 4 9 8 Michalak 13 13 Płócieniak 4 9 obszar niewykorzystany wskaźniki na kolejne bloki wskaźniki na rekordy w pliku wartości atrybutu (klucza) indeksowania m=1.5 W bloku mogą być co najwyżej 3 (2m) elementy indeksu i co najmniej 1 ( m ). Dalej będziemy zakładać, że m jest liczbą całkowitą. 5 1. B-drzewo(perfectly balanced multiwaytree)jest drzewem wyszukiwania o takich ograniczeniach, które zapewniają, że jest ono zawsze w pełnizrównoważone, a stopień jego wypełnienia nie jest nigdy zbyt mały. (Komplikuje to oczywiście algorytmy wstawiania i usuwania, ale przyspiesza wyszukiwanie): wszystkie drogi od korzenia do liści są jednakowej długości h, każdy wierzchołek z wyjątkiem korzenia ma, conajmniejm+1 następników (poddrzew), każdy wierzchołek ma, co najwyżej 2m+1 następników (poddrzew), korzeń ma, co najmniej 2 następniki poddrzewa. 2. Umożliwiają wyszukiwanie, dołączanie i usuwanie w czasie logarytmicznym, O(logmN) 3. i ich warianty (B+-drzewa) stanowią podstawę implementacji indeksów w komercyjnych systemach baz danych. 7 struktura wierzchołków Struktura wierzchołka (bloku, strony) w B-drzewie. Wszystkie bloki mają jednakową wielkość. p 0 x 1 a 1 p 1 x l a l p l 8

p 0 x 1 a 1 p 1 x l a l p l T 0 T 1 T l... X 0 X 1 X l 9 operacja dołączania Dołączanie metoda podziału metoda kompensacji 1. Chcemy dołączyć element indeksu o kluczu X, tak aby nie naruszyć struktury. 2. Dołączanie poprzedzone jest procedurą SZUKAJ, w wyniku której, albo znajdziemy wierzchołek zawierający klucz X (koniec) albo znajdziemy adres wierzchołka (liścia) do którego należy dołączyć klucz X. 3. Jeśli wierzchołek ma mniej niż 2m elementów to dołączamy nowy klucz. 4. Jeśli wierzchołek ma 2m elementów to następuje kolizja (przepełnienie, nadmiar), którą rozwiązujemy albo metodą podziału albo metodą kompensacji. 10 B-drzewo klasy t(1,1.5): B-drzewo klasy t(h,m) metoda podziału bloku wierzchołka: 1 2 3 4 1 1 2 1 2 3 W bloku znajduje się 2m+1 elementów indeksu nadmiar, przepełnienie. Postępowanie: 1. Jako element środkowy przyjmujemy element na pozycji k= m+1 2. W starym bloku, b, pozostawiamy elementy o numerach: 1,..., k 1. 3. Tworzymy nowy blok, b, i umieszczamy w nim elementy o numerach k+1,...,2m+1. 4. Element środkowy przesuwany jest do bloku poprzednika (rodzica). 5. Dla przesuwanego elementu może powstać konieczność utworzenia nowego korzenia. Wówczas otrzymujemy drzewo klasy t(h+1,m). B-drzewo klasy t(2, 1.5): 1 2 3 4 3 1 2 4 11 12

Dołącz 7: 3 1 2 4 3 1 2 4 5 3 1 2 4 5 6 1 2 4 5 7 1 2 4 5 7 8 9 Dołącz 10, 11, 12: 9 1 2 4 5 7 8 10 1 2 4 5 7 13 9 1 2 4 5 7 8 10 11 12 14 9 1 2 4 5 7 8 10 9 1 2 4 5 7 8 10 11 12 Dołącz 13: 9 12 1 2 4 5 7 8 10 11 13 B-drzewo klasy t(h,m) metoda kompensacji: r 3 9 20... b b 7 8... 10 11 12... W bloku bznajduje się 2m elementów indeksu próba dołączenia elementu x=13 prowadzi do nadmiaru (przepełnienia). W bloku b po lewej stronie liczba elementów jest mniejsza niż 2m. W bloku rlewy i prawy wskaźnik elementu x (9) wskazują (bezpośrednio lub pośrednio) na bloki b i b. Postępowanie: 1. Element x (np. 9) dołączany jest do bloku b (na ostatnim miejscu). 2. Do bloku r w miejsce elementu x wstawiany jest najmniejszy element z bloku b (np. 10) i element ten usuwany jest z b. 3. Do bloku b można teraz bezkonfliktowo dołączyć x (13). r 3 10 20 15... b b 7 8 9... 11 12 13...

Dołącz 13: 9 1 2 4 5 7 8 1011 12 1 2 4 5 7 8 9 1011 12 10 1 2 4 5 7 8 9 11 12 9 12 1 2 4 5 7 8 10 11 13 1415 dołącz 16 9 13 1 2 4 5 7 8 10 11 12 14 1516 10 1 2 4 5 7 8 9 111213 dołącz 11.5 10 13 17 1 2 4 5 7 8 9 11 11.5 12 14 15 16 operacja usuwania 1 2 4 5 7 8 9 Usuwanie metoda łączenia metoda kompensacji 1. Chcemy usunąć element o kluczux. Usuwanie podobnie jak dołączanie poprzedzone jest algorytmem wyszukiwania. Procedura SZUKAJ powinna zakończyć się powodzeniem i zwrócić adres (b) wierzchołka (bloku) zawierającego klucz x. Jeśli strona jest liściem to usuwamy element indeksu o kluczu x. Może wówczas wystąpić niedomiar, który usuwamymetodą łączenia lub kompensacji. Jeżeli strona nie jest liściem to przeglądamy poddrzewo wskazywane przez prawywskaźnik stojący zakluczem x i szukamy najmniejszego indeksu (L)- idziemy ścieżką wskazywaną przez P 0, aż dojdziemy do liścia. Ten najmniejszy element wstawiamy w miejsce xa następnie usuwamy go z liścia może wystąpić niedomiar. 19 usuń 5: 1 2 4 7 8 9 usuń 4: kompensacja (z prawym) 3 7 1 2 6 8 9 usuń 6: kompensacja (z prawym) 3 8 1 2 7 9 20

3 8 1 2 7 9 usuń 7: kompensacja (z lewym) 2 8 1 3 9 zadanie Dane jest B-drzewo klasy t(3, 2): wstaw obiekt o kluczu 32 (metodą podziału i metodą kompensacji), usuń obiekt o kluczu 46(metodą łączenia i metodą kompensacji). usuń 3: łączenie 2 1 8 9 usuń 2: łączenie 1 8 9 21 22 złożoność B-drzewoklasy t(h,m). Obliczenie liczby wierzchołków (bloków) w B-drzewie: złożoność (c.d.) B-drzewoklasy t(h,m) Obliczenie liczby elementów indeksu w B-drzewie: W min liczba wierzchołków przy minimalnym wypełnieniu W max liczba wierzchołków przy maksymalnym wypełnieniu N min liczba elementów indeksu przy minimalnym wypełnieniu N max liczba elementów indeksu przy maksymalnym wypełnieniu 23 24

złożoność (c.d.) B-drzewoklasy t(h,m) Szacowanie wysokości N liczba elementów w pliku (i w indeksie) h min wysokość przy minimalnym wypełnieniu h max wysokość przy maksymalnym wypełnieniu 25 zadania 1. Oblicz liczbę wierzchołków W min i W max klasy T(3, 2) odpowiednio przy minimalnym i maksymalnym wypełnieniu drzewa. 2. Oblicz maksymalne (minimalne) zużycie pamięci konieczne na zapamiętanie indeksu w postaci, przy następujących danych: N = 100 000 B = 1kB P = 4B A = 8B X = 20B - liczba rekordów w pliku głównym, - wielkość bloku, - wielkość pola wskaźnikowego, - wielkość pola adresowego, Jaka jest wówczas wysokość? - wielkość pola klucza indeksowania. 26 B + -drzewa B + -drzewa 1. W większości komercyjnych systemów baz danych do tworzenia indeksów wykorzystywana jest pewna modyfikacja B-drzewo nazwie B + -drzewa. 2. Struktura B + -drzewajest taka sama jak (zrównoważone, wielodrogowe drzewo wyszukiwań). 3. Różnica polega na tym, że wszystkie indeksowane dane i wskaźniki do rekordy danych przechowywane są w liściach.wierzchołki pośrednie służą tylko jako pomoc dotarcia do właściwego liścia. 1. W przypadku B + -drzewa wskaźniki danych są przechowywane tylko w liściach 2. Wierzchołki liści posiadają wpis (indeks ze wskaźnikiem do rekordu danych) dla każdej wartości pola wyszukiwania 3. Niektóre wartości pola wyszukiwania są powtarzane w wierzchołkach wewnętrznych i służą do wspomagania wyszukiwania 4. Koszt wyszukiwania wysokość drzewa + 1. wskaźnik danych 5 3 7 8 B+-drzewo dla kluczy: 8, 5, 1, 7, 3, 12, 9, 6 1 3 5 6 7 8 9 1 2 27 Liście implementowane są zwykle jako lista. 28

Pytania kontrolne Pytania kontrolne (c.d.) 1. Indeksy: rodzaje indeksów, zastosowania, zalety i wady indeksów, kiedy tworzymy indeksy. 2. : budowa, operacje wstawiania i usuwania elementów, obliczenia (wysokość, ilość wierzchołków, itp.), (przykłady z wykładu). 3. Różnice między B-drzewema B + -drzewem. 4. Cele i etapy optymalizacji zapytań, jakie elementy wpływają na koszt wykonania zapytania. ZADANIA: 1. Jaką wysokość musi mieć B-drzewoklasy t(h, 5), aby przy maksymalnym wypełnieniu zaindeksować plik liczący 14 500rekordów? 1. Dany jest indeks zorganizowany jako B-drzewoklasy t(3,10). Jaka jest maksymalnaliczba rekordów bazy danych, którą można zaindeksować przy użyciu tego? 2. Strona ma wielkość 1KB, pole klucza ma długość 16B, pole wskaźnika na blok ma długość 4B, pole wskaźnika na rekord ma długość 8B. Ile indeksów mieści się na trzecim poziomie tego drzewa przy minimalnym wypełnieniu. Uwaga: trzeba rozpocząć od obliczenia współczynnika wypełnienia (m). 29 30