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

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

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

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

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

Haszowanie (adresowanie rozpraszające, mieszające)

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

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

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

Tabela wewnętrzna - definicja

sprowadza się od razu kilka stron!

Fizyczne struktury danych

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

Fizyczne struktury danych. Kategorie nośników danych. Nośniki danych hierarchia nośników budowa dysku magnetycznego macierze RAID.

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Przykładowe B+ drzewo

Tadeusz Pankowski

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

Tablice z haszowaniem

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

Tablice z haszowaniem

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

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

struktury danych dla operacji słownikowych

Definicja pliku kratowego

dr inż. Jarosław Forenc

Lista, Stos, Kolejka, Tablica Asocjacyjna

Fizyczna organizacja danych w bazie danych

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

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

Programowanie w VB Proste algorytmy sortowania

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Bazy danych. Andrzej Łachwa, UJ, /15

Podstawy Informatyki. Metody dostępu do danych

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

WPROWADZENIE DO BAZ DANYCH

Algorytmy i struktury danych

Haszowanie. dr inż. Urszula Gałązka

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Optymalizacja poleceń SQL Metody dostępu do danych

Dynamiczne struktury danych

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

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

Techniki wyszukiwania danych haszowanie

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Struktury danych (I): kolejka, stos itp.

Podstawy Informatyki Metody dostępu do danych

Wykład 4. Tablice z haszowaniem

2017/2018 WGGiOS AGH. LibreOffice Base

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

Podstawowe struktury danych

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Administracja bazy danych Oracle 10g

Algorytmy sortujące i wyszukujące

ALGORYTMY I STRUKTURY DANYCH

Zmienne i struktury dynamiczne

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Pliki. Operacje na plikach w Pascalu

Indeksowanie w bazach danych

dr inŝ. Jarosław Forenc

Celem wykładu jest prezentacja różnych podejść do implementacji systemu plików. Podejścia opierają się na założeniu, że urządzeniem składowania

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Algorytmy i struktury danych. wykład 5

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

Bazy danych - wykład wstępny

Technologia informacyjna

INDEKSY I SORTOWANIE ZEWNĘTRZNE

System plików warstwa fizyczna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Struktury. Przykład W8_1

Architektura komputerów

Sortowanie zewnętrzne

Algorytm. a programowanie -

dr inż. Jarosław Forenc

Kompletna dokumentacja kontenera C++ vector w -

Wykład 4. Tablice. Pliki

Porządek symetryczny: right(x)

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Sortowanie bąbelkowe

5.4. Tworzymy formularze

Struktury danych i optymalizacja

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Zasady programowania Dokumentacja

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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

dr inż. Jarosław Forenc

WSTĘP DO INFORMATYKI. Struktury liniowe

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

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

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

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

Schematy zarzadzania pamięcia

Transkrypt:

Proces fizycznego projektowania bazy danych sprowadza się do wyboru określonych technik organizacji danych, najbardziej odpowiednich dla danych aplikacji. Pojęcia podstawowe: Dane są przechowywane na dysku w formie plików, składających się z rekordów. Rekord jest kolekcją danych reprezentujących wystąpienie encji rekordy powinny być przechowywane na dysku w taki sposób aby możliwa była ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba. Podstawowe organizacje fizyczne plików: Heap file (unordered file) stóg Sorted (sequential) file plik uporządkowany Hashed file plik haszowy B-trees file Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 1 Pojęcia podstawowe cd: Zakładamy, że: Rozmiar bloku = B; rozmiar rekordu = R bajtów, Dla plików z rekordami o stałej długości, gdzie B R można umieścić bfr = [(B/R)] rekordów w bloku, bfr jest to współczynnik blokowania wolny obszar w bloku B = (bfr * R) Aby wykorzystać pustą przestrzeń w bloku, można w niej umieścić część rekordu a jego resztę w następnym bloku. Wskaźnik na końcu pierwszego bloku wskazuje na blok zawierający resztę rekordu. Organizacja dzielona (ang. spanned) vs. niedzielona (ang. unspanned) Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 3 Pojęcia podstawowe cd: Zestaw pól oraz odpowiadające im typy danych określają typ rekordu Rekordy mogą być stałej lub zmiennej długości niektóre pola mogą być opcjonalne Plik może zawierać rekordy różnego typu (np. dane o studencie i jego wyniki z sesji) Rekordy pliku muszą być alokowane do bloków dyskowych ponieważ blok a nie rekord jest jednostką transferu danych pomiędzy pamięcią dyskową i operacyjną Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc każdy blok może zawierać wiele rekordów Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 2 Organizacja dzielona vs. niedzielona block i record 1 record 2 record 3 block i + 1 record 4 record 5 record 6 block i record 1 record 2 record 3 record 4 P block i + 1 record 4 (rest) record 5 record 6 rec. 7 P Dla rekordów o zmiennej długości, każdy blok może zawierać inną liczbę rekordów w tym przypadku współczynnik blokowania bfr reprezentuje średnią liczbę rekordów na blok Współczynnik bfr jest wykorzystywany do obliczenia liczby b potrzebnych dla pliku składającego się z r rekordów: b = [( r / bfr )] bloków Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 4

etody alokacji bloków pliku na dysku: Ciągła (ang. contignous) Łączona (ang. linked) Segmentowa (ang. clusters) zestawy bloków połączone wskaźnikami (kombinacja dwóch poprzednich) Indeksowa Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 5 Pliki uporządkowane (sekwencyjne) Rekordy pliku są uporządkowane wg pola porządkującego (ang. ordering field). Jeśli to pole jest równocześnie polem klucza, to gwarantuje to, że rekordy w pliku są unikalne często pole to jest nazywane kluczem porządkującym pliku (ang. ordering key) blok 1 Nazwisko Data_ur. Płeć Aaron Ed Abbott Diane Acosta Hare blok n Wright P. Wyatt Earp Zimmer B. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 7 Organizacje plików Pliki nieuporządkowane Stóg podstawowa organizacja nieuporządkowana rekordy są umieszczane w pliku w kolejności wykonywania operacji insert. Operacje: Wstawianie rekordów: ostatni blok jest wczytywany do bufora, rekord jest wstawiany na końcu tego bloku a następnie blok jest zapisywany na dysk. Wyszukiwanie rekordu: konieczność liniowego przeszukiwania wszystkich bloków (średnio b/2 bloków) Usuwanie rekordu: wczytanie bloku do bufora, liniowe przeszukiwanie, usunięcie rekordu i ponowny zapis bloku na dysk. Pozostaje zwolniony obszar w bloku konieczność periodycznej reorganizacji pliku w celu odzyskania pamięci. Deletion marker extra bit pamiętany z rekordem pokazujący, że rekord został usunięty Sortowanie pliku sortowanie zewnętrzne najpierw sortowane są rekordy wewnątrz każdego bloku a następnie bloki są łączone w grupy. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 6 Pliki uporządkowane (sekwencyjne) - cd Zalety: Plik jest uporządkowany czytanie rekordów w określonym porządku (wg pola porządkującego) jest maksymalnie efektywne nie wymaga sortowania pliku. Jeżeli warunek wyszukiwania rekordu oparty jest na wartości pola porządkującego to można stosować przeszukiwanie binarne. Algorytm przeszukiwania binarnego: Plik posiada b bloków: 1,2,..., b. Rekordy są uporządkowane rosnąco. Szukamy rekordu o wartości K. Przeszukiwanie binarne realizuje średnio log2(b) dostępów do bloków. l 1; u b; while (u > l) do begin i (l + u) div 2; read blok i of the file into the buffer; Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 8

Algorytm przeszukiwania binarnego - cd: if K < ordering field value of the first record in the block then u (i 1) else if K > ordering field value of the first record in the block then l (i + 1) else if the record with the ordering field value = K is in the buffer then goto found else goto notfound end; goto notfound Uporządkowanie pliku nic nie daje, jeśli wyszukiwanie jest realizowane według wartości pola nie-porządkującego trzeba wówczas zastosować przeszukiwanie liniowe. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 9 odyfikowanie rekordów: zależy od dwóch elementów: warunków wyszukiwania dla znalezienia rekordu oraz pola, które ma być modyfikowane. Jeśli wyszukiwanie jest realizowane wg pola porządkującego, to można wykorzystać przeszukiwanie binarne, w przeciwnym wypadku liniowe. Jeśli modyfikowane jest pole nieporządkujące (przy założeniu rekordów o stałej długości), to rekord zmodyfikowany może być wstawiony w to samo miejsce w pliku. Natomiast w wypadku modyfikacji pola porządkującego, stary rekord musi być usunięty i następnie wstawiony nowy rekord w nowe miejsce. Czytanie rekordów: czytanie rekordów, w tym również tych z pliku nadmiarowego wymaga najpierw reorganizacji plików. Rekordy z pliku overflow muszą być uporządkowane i włączone do pliku głównego. Rekordy oznaczone do usunięcia są usuwane podczas reorganizacji pliku. Pliki uporządkowane są zazwyczaj wykorzystywane wraz z dodatkową strukturą, tj. indeksem głównym włączonym do pliku. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 11 Problemy: Wstawianie i usuwanie rekordów: konieczność zachowania porządku w pliku Przesuwanie części pliku (średnio ½ rekordów do przesunięcia) Pozostawianie wolnego obszaru w bloku Tworzenie tymczasowego nieuporządkowanego pliku (ang. overflow lub transaction file) a następnie łączenie go z plikiem głównym (ang. master file) nowe rekordy są dodawane na końcu pliku nadmiarowego; rośnie złożoność algorytmu przeszukiwania plik nadmiarowy musi być przeszukiwany liniowo. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 10 Pliki haszowe (bezpośrednie) Wykorzystuje się technikę haszowania (kodowanie mieszające) W pliku wyróżnia się pole (haszowe klucz haszujący), które jest podstawą przeszukiwania; musi być zdefiniowana funkcja haszowa (ang. hash function), która zastosowana do pola haszowego zwraca adres bloku dyskowego, w którym znajduje się rekord. Wyszukiwanie rekordów z bloku jest wykonywane w pamięci operacyjnej dla większości rekordów potrzebna jest tylko jedna operacja dostępu do bloku dyskowego w celu odszukania tego rekordu. Haszowanie wewnętrzne Jest implementowane przez użycie tablicy rekordów danych jest szczelin (ang. slot), których adresy odpowiadają indeksom tablicy haszowej. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 12

Haszowanie wewnętrzne Name SSN Job Salary data fields overflow pointer 0 1 2 3 0 1 2 + 2 address - 2-2 + 1 Tablica rekordów Rozwiązywanie konfliktów + 1 + 5 + 2 + 4 overflow * null pointer = -1 * overflow pointer refers to position of next record in linked list Dobieramy funkcję haszującą, która przekształca wartość pola haszującego w liczbę całkowitą pomiędzy 0 a 1. h ( hash_field_value ) ( 0, 1 ) Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 13 Haszowanie wewnętrzne Problem kolizji Żadna funkcja haszowa nie gwarantuje, że różnym wartościom pola haszowego będą odpowiadały różne adresy szczelin wynika to z faktu, że zbiór możliwych wartości pola haszowego jest najczęściej znacznie większy od przestrzeni adresowej tablicy haszowej. Kolizja ma miejsce wtedy, gdy wartość funkcji haszowej dla danej wartości pola haszowego nowego rekordu odpowiada adresowi szczeliny, w której znajduje się już inny rekord proces znajdowania innej lokalizacji dla danego rekordu nosi nazwę rozwiązywania kolizji etody rozwiązywania kolizji: Adresowanie otwarte Łańcuchowanie Wielokrotne haszowanie Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 15 Haszowanie wewnętrzne Funkcja haszowa najczęściej wykorzystywana: h ( K ) = K mod Funkcja ta zwraca resztę całkowitą z podzielenia K przez wartość ta jest adresem rekordu Przed zastosowaniem funkcji haszowej wartości pól nienumerycznych są transformowane do liczb całkowitych (np. przez wymnożenie kodów mnemonicznych znaków) dla pola haszującego, które jest łańcuchem 20 znaków, może być wykorzystany następujący algorytm transformacji: temp 1 for i = 1 to 20 do temp temp * code ( K [ i ] ); hash_address temp mod Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 14 Haszowanie wewnętrzne Rozwiązywanie kolizji Adresowanie otwarte w wypadku gdy pozycja określona adresem haszowym jest zajęta, następuje sprawdzenie następnej (kolejnej) pozycji aż do znalezienia pozycji pustej: I hash address; If location i is occupied then begin i (i + 1) mod ; while (i hash_address) and location i is occupied do i (i + 1) mod ; if (i = hash_address) then all position are full else new_hash_address 1; end; Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 16

Haszowanie wewnętrzne Rozwiązywanie kolizji Łańcuchowanie utrzymywanych jest szereg pozycji nadmiarowych; do każdego rekordu jest dodawany wskaźnik nadmiaru do pozycji nadmiarowych. W wypadku kolizji nowy rekord jest dodawany do niewykorzystanej pozycji nadmiarowej, a wskaźnik w polu kolizyjnym (wskazywanym przez adres haszujący) jest ustawiany na pozycję nadmiarową data fields overflow pointer 0 1 2 3 + 2 address - 2 + 1 + 5 + 1 + 2 + 4 overflow * null pointer = -1 * overflow pointer refers to position of next record in linked list Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 17 Haszowanie zewnętrzne Funkcja haszowa adresuje blok (porcję) (ang. bucket), w którym jest przechowywanych wiele rekordów porcja może być blokiem dyskowym lub gronem (clustrem) przylegających do siebie bloków dyskowych Funkcja haszowa odwzorowuje wartość klucza we względny numer bloku, ale nie określa faktycznego adresu dyskowego. Tablica utrzymywana w nagłówku pliku odwzorowuje numer bloku w odpowiadający mu adres bloku dyskowego. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 19 Haszowanie wewnętrzne Rozwiązywanie kolizji Haszowanie wielokrotne stosowana jest druga funkcja haszująca jeśli pierwszy wynik powoduje kolizję; przy kolejnych kolizjach stosowane jest adresowanie otwarte lub kolejne funkcje haszujące. Podsumowanie: Każdy algorytm rozwiązywania kolizji wymaga własnych algorytmów wstawiania, usuwania i wyszukiwania rekordów. Najprostszym rozwiązaniem jest łańcuchowanie Cechą dobrej funkcji haszowej jest zapewnienie równomiernego rozkładu rekordów w obrębie przestrzeni adresowej tablicy haszowej, przy zostawianiu możliwie jak najmniejszej liczby pozycji niewykorzystanych z tego punktu widzenia zalecany rozmiar tablicy haszowej powinien wynosić: r / ( 0.7 0.9 ) gdzie, r jest liczbą rekordów, które mają być pamiętane w tablicy, a jest liczbą pozycji w przestrzeni adresowej. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 18 Haszowanie zewnętrzne Problem kolizji Dopóki w bloku jest miejsce aby pomieścić kolejny rekord adresowany przez funkcję haszującą to problem kolizji nie występuje problem kolizji pojawia się dopiero w momencie zaadresowania rekordu do bloku już wypełnionego. Dla rozwiązania problemu kolizji można wykorzystać odmianę łańcuchowania przez utrzymywanie w każdej porcji wskaźnika do listy łańcuchowej rekordów przepełnienia danej porcji Wskaźniki na liście łączonej dotyczą rekordów i zawierają adres bloku i numer rekordu w bloku. Haszowanie zewnętrzne jest metodą, która gwarantuje najszybszy dostęp do określonych rekordów. Wadą tej metody jest utrudnione porządkowanie pliku i wyszukiwanie rekordów wg wartości pola haszowego rekordy w pliku nie są uporządkowane w logicznym porządku wartości pola haszowego. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 20

Haszowanie zewnętrzne Rozwiązanie problemu kolizji Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 21 Haszowanie zewnętrzne Problem stałego rozmiaru przestrzeni adresowej przydzielonej plikowi: Załóżmy, że funkcja haszowa adresuje bloków a m jest maksymalną liczbą rekordów, które mogą się pomieścić w bloku. Wówczas * m rekordów może być alokowanych w pliku. Jeśli liczba rekordów jest znacząco mniejsza od * m to w pliku pozostanie dużo wolnego miejsca. Jeśli liczba rekordów jest większa od * m to pojawia się wiele kolizji i proces wyszukiwania rekordów zostaje spowolniony. Aby była możliwa dynamiczna zmiana liczby bloków przeznaczonych na plik, należy zastosować specjalną odmianę haszowania zewnętrznego, tj. haszowanie dynamiczne Wyszukiwanie rekordów wg pól innych niż haszowe jest tak samo kosztowne jak w przypadku plików nieuporządkowanych. Systemy baz danych organizacje fizyczne plików danych Zbyszko Królikowski 22