Bazy danych. Andrzej Łachwa, UJ, /15

Podobne dokumenty
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 >

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

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

Podstawy Informatyki. Metody dostępu do danych

Tadeusz Pankowski

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

Przykładowe B+ drzewo

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

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

Definicja pliku kratowego

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

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

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

Bazy danych wykład ósmy Indeksy

Haszowanie (adresowanie rozpraszające, mieszające)

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

ALGORYTMY I STRUKTURY DANYCH

WPROWADZENIE DO BAZ DANYCH

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

sprowadza się od razu kilka stron!

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Baza danych. Baza danych to:

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

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

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

Drzewa poszukiwań binarnych

Fizyczna struktura bazy danych w SQL Serwerze

Sortowanie bąbelkowe

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

Sortowanie. Bartman Jacek Algorytmy i struktury

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

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

Algorytmy i struktury danych

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

0-0000, , , itd

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

Podstawy Informatyki Metody dostępu do danych

System plików przykłady implementacji

Teoretyczne podstawy informatyki

System plików przykłady. implementacji

Algorytmy i Struktury Danych, 9. ćwiczenia

Indeksowanie w bazach danych

Porządek symetryczny: right(x)

Algorytmy i struktury danych

Algorytmy i struktury danych. wykład 5

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

Teoretyczne podstawy informatyki

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

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

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

Indeksy. Bazy danych 139

Lista liniowa dwukierunkowa

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

Algorytmy i Struktury Danych

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

Matematyka dyskretna - 7.Drzewa

Jakub Pilecki Szymon Wojciechowski

ALGORYTMY I STRUKTURY DANYCH

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

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

Teoretyczne podstawy informatyki

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

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

Autor: Joanna Karwowska

Drzewa wyszukiwań binarnych (BST)

SYSTEMY OPERACYJNE WYKLAD 5 - zarządzanie pamięcią pomocniczą

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

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:

Krzysztof Kadowski. PL-E3579, PL-EA0312,

PROGRAM RETROKONWERSJI ZDALNEJ

System plików ReiserFs

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

Normalizacja baz danych

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

OPRACOWANIE: SŁAWOMIR APANOWICZ

Indeksy w hurtowniach danych

Egzaminy i inne zadania. Semestr II.

Drzewa czerwono-czarne.

Struktury danych i optymalizacja

Drzewa poszukiwań binarnych

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

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.

5. Bazy danych Base Okno bazy danych

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

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

Teoretyczne podstawy informatyki

Listy, kolejki, stosy

PODSTAWY INFORMATYKI wykład 6.

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.

Transkrypt:

Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15

PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri: R.14. Struktury indeksowe dla plików Bazy danych wyklad 7 [wazniak.mimuw.edu.pl] Garcia Molina, Ullman, Widom: Systemy baz danych, R. 13

INDEKSY Indeksy to struktury używane w celu przyspieszenia dostępu do rekordów zapamiętanych w plikach bazy danych. Indeksy działają w oparciu o pola indeksujące, przy czym dla danego pliku można utworzyć różne indeksy (indeksy oparte na różnych polach). Indeks pliku danych to struktura podobna do indeksu książkowego. Ten ostatni to uporządkowana alfabetycznie lista terminów występujących w książce, gdzie przy każdym terminie wypisano adresy stron na których dany termin występuje. Pola indeksujące nazywamy również kluczami indeksowania (nie mylić z kluczem relacji!).

Indeksy można podzielić na podstawowe (primary index, indeks główny, założony na atrybucie porządkującym unikatowym), klastrowania (clustering index, na atrybucie porządkującym nieunikatowym) i wtórne (secondary index, indeks drugorzędny, założony na atrybucie nieporządkującym). Inny podział to indeksy gęste (wpis dla każdej wartości klucza, tj. dla każdego rekordu pliku danych) i rzadkie (wpisy tylko dla niektórych wartości klucza). Kolejny podział to indeksy jedno poziomowe, dwupoziomowe i wielopoziomowe, a w ramach tych ostatnich B drzewa w różnych odmianach, m.in. B + drzewa i B * drzewa.

PRZYKŁAD 1 Indeks główny jest tworzony dla uporządkowanego pliku rekordów danych na polu stanowiącym klucz relacji. Indeks główny to uporządkowany plik rekordów. Każdy rekord indeksu składa się z dwóch pól stałej wielkości. Pierwsze ma taki typ jak pole klucza uporządkowania w pliku danych, drugie jest wskaźnikiem na blok dyskowy. Wartość pierwszego pola to wartość pola klucza pierwszego rekordu bloku danych wskazywanego przez wskaźnik. Na każdy rekord indeksu głównego przypada jeden blok danych, zatem liczba wpisów w indeksie równa się liczbie bloków danych zajmowanych przez plik indeksowany. Jest to indeks rzadki.

Adamski Agatowski Albiński Ariański Adamski Ateński Ateński Aztecki Barański Bielecki Bogdański Bogdański Brunerski Cielecki Czarnecki

Policzmy konkretny przykład. Jeżeli plik uporządkowany ma 30.000 rekordów po 100 B każdy, a blok na dysku ma 1024 B, to w jednym bloku można zapisać 10 rekordów, a dla całego pliku trzeba 3.000 bloków. Przeszukiwanie binarne tego pliku wymaga log 2 3000 = 12 operacji dostępu do bloków. Jeżeli pole klucza uporządkowania ma 9 B, a wskaźnik na blok 6 B, to w jednym bloku zmieści się 68 wpisów indeksu głównego, a na cały indeks potrzeba 45 bloków. Przeszukiwanie binarne indeksu wymaga log 2 45 = 6 dostępów do bloków + 1 dostęp do bloku danych, czyli 7 operacji dostępu do bloków.

PRZYKŁAD 2 Indeks klastrowania tworzymy dla pliku rekordów posortowanych według pola, którego wartości nie są unikatowe. Indeks ten jest także plikiem posortowanym. Każdy wpis zawiera odrębną wartość pola indeksującego i wskaźnik na pierwszy blok danych, który zawiera rekord o danej wartości pola indeksującego. Uwaga: kilka kolejnych wskaźników indeksu może wskazywać ten sam blok oraz nie wszystkie bloki pliku danych muszą być wskazane w indeksie.

PRZYKŁAD 3 Indeks drugorzędny na polu zawierającym wartości powtarzające się budujemy na dwa sposoby. Pierwszy polega na stosowaniu wielu wpisów dla powtarzających się wartości pola. Drugi albo na wpisach o zmiennej długości albo o wpisach ze wskaźnikiem na blok wskaźników. Poniżej mamy jednopoziomowy gęsty indeks drugorzędny z jednym wpisem dla każdej wartości klucza (dla każdego rekordu pliku danych). Wpisy te są uporządkowane, dzięki czemu można będzie na indeksie wykonywać przeszukiwanie binarne. Przy każdej wartości pola indeksującego występuje lista wskaźników do wszystkich bloków dysku zawierających rekordy z daną wartością pola.

1 2 3 4 3 1 3 3 2 4 1 1 2 2 3 4 4

PRZYKŁAD 4 Indeks dwupoziomowy jako indeks indeksu głównego. Poziom pierwszy to indeks główny. Dla niego budujemy nowy indeks główny; znajduje się on na poziomie drugim. Dla omawianego wcześniej pliku uporządkowanego o 30.000 rekordów po 100 B każdy i blokach 1024 B, cały indeks poziomu drugiego zmieści się w jednym bloku. Dla odszukania rekordu potrzebujemy więc tylko 3 dostępów do bloków. Ponadto indeks najwyższego poziomu trzyma się zwykle w pamięci operacyjnej, więc w omawianym przypadku będą to tylko 2 dostępy do bloków.

PRZYKŁAD 5 W przypadku indeksu drugorzędnego z powtarzającymi się wartościami pola indeksującego marnuje się często dużo przestrzeni dyskowej. Rozwiązania z wpisami o zmiennej długości albo z blokami wskaźników też nie są idealne. Zaproponowano więc technikę kubełkowania.

DRZEWA WYSZUKIWANIA Drzewo wyszukiwania rzędu p to drzewo, którego każdy wierzchołek zawiera co najwyżej p 1 wartości wyszukiwania oraz p wskaźników na wierzchołek podrzędny (lub wskaźników zerowych). Z każdą wartością wyszukiwania związany jest wskaźnik na rekord lub wskaźnik na blok. Wierzchołki drzewa przechowywane są w blokach, więc dostęp do poszukiwanego rekordu wymaga dostępu do tylu bloków ile elementów ma odpowiednia ścieżka w drzewie. Drzewo wyszukiwania nie jest zrównoważone.

B-DRZEWA Jest to cała rodzina struktur, które organizują przestrzeń na dysku w zrównoważoną drzewiastą strukturę bloków. Z każdym B drzewem jest związany parametr p, który wyznacza układ drzewa, a który dobierany jest tak, aby w jednym bloku zmieściło się p-1 par (wartość wyszukiwania, wskaźnik na blok) i p wskaźników drzewa. Dane te tworzą węzeł drzewa, przy czym wartości wyszukiwania są uporządkowane rosnąco. Wskaźnik drzewa kieruje nas do podrzewa zawierającego wartości wyszukiwania z przedziału ograniczonego dwoma wartościami wyszukiwania sąsiadującymi w węźle z takim wskaźnikiem (a w przpadkach skrajnych jednyą wartością).

W B + drzewach w węzłach wewnętrznych nie ma wskaźników na bloki danych, są tylko wskaźniki na bloki wierzchołków niższego poziomu drzewa. Wskaźniki na bloki danych występują dopiero w liściach. Ostatni wskaźnik liścia wskazuje na blok następnego liścia z prawej strony. W korzeniu są co najmniej dwa wskaźniki na bloki niższych poziomów. W pozostałych węzłach jest co najmniej połowa liczby możliwych do zapisania tam wskaźników. Przykład: blok ma 4096 B, klucz 4 B, wskaźnik 8 B. W takiej sytuacji szukamy największej wartości p, która spełnia nierówność 4(p 1)+8p 4096. Jest to 341. Zatem wierzchołek wewnętrzny może zawierać co najwyżej 340 kluczy i 341 wskaźników.

Liść Garcia Molina, Ullman, Widom, Systemy baz danych, rozdz. 13

Przykład wstawiania nowej wartości. Do ostatnio omawianego drzewa chcemy wstawić klucz 40. Odnajdujemy liść do którego powinna trafić ta wartość. U nas jest to liść piąty. Nie ma tam miejsca na nową wartość, więc musimy ten liść rozbić na dwa. Do pierwszego z nich idzie wskaźnik od rodzica, ale tam nie ma już miejsca na wskaźnik do drugiego z tych liści. Musimy więc rozbić rodzica na dwa wierzchołki. Por. kolejne rysunki.