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

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

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

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

sprowadza się od razu kilka stron!

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

Haszowanie (adresowanie rozpraszające, mieszające)

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

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

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

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

Przykładowe B+ drzewo

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

Fizyczna organizacja danych w bazie danych

dr inż. Jarosław Forenc

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

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Algorytmy sortujące i wyszukujące

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

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

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

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

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

Tabela wewnętrzna - definicja

Programowanie w VB Proste algorytmy sortowania

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

Podstawowe struktury danych

5. Bazy danych Base Okno bazy danych

Tadeusz Pankowski

Definicja pliku kratowego

Bazy danych. Andrzej Łachwa, UJ, /15

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

System plików przykłady. implementacji

Schematy zarzadzania pamięcia

System plików przykłady implementacji

WPROWADZENIE DO BAZ DANYCH

dr inż. Jarosław Forenc

System plików warstwa logiczna

Systemy operacyjne III

System plików. Warstwowy model systemu plików

Podstawy Informatyki. Metody dostępu do danych

Architektura komputerów

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Haszowanie. dr inż. Urszula Gałązka

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Algorytmy i struktury danych

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Bazy danych wykład ósmy Indeksy

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Lista, Stos, Kolejka, Tablica Asocjacyjna

Podstawowe wiadomości o systemach plików.

2017/2018 WGGiOS AGH. LibreOffice Base

Zarządzanie pamięcią operacyjną

Pliki. Operacje na plikach w Pascalu

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Architektura komputerów

Podstawy programowania skrót z wykładów:

Import danych z plików Excel. (pracownicy, limity urlopowe i inne)

Sortowanie zewnętrzne

Optymalizacja poleceń SQL Metody dostępu do danych

Wstęp do programowania

Zarządzanie pamięcią w systemie operacyjnym

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

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

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

Bazy danych - wykład wstępny

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

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

Logiczny model komputera i działanie procesora. Część 1.

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

16MB - 2GB 2MB - 128MB

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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

Korespondencja seryjna

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

PODSTAWY INFORMATYKI wykład 5.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

MGA Sp. z o.o Toruń ul. Piaskowa 6

Architektura komputerów

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

Zmienne i struktury dynamiczne

Wykład 5: PHP: praca z bazą danych MySQL

Podstawy Programowania C++

Wykład 8: klasy cz. 4

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Wykład 4. Tablice. Pliki

Technologia informacyjna

Normalizacja baz danych

Autor: Joanna Karwowska

UKŁADY MIKROPROGRAMOWALNE

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

Transkrypt:

PLAN WYKŁADU Składowanie danych Podstawowe struktury plikowe Organizacja plików BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć HIERARCHIA MECHANIZMÓW SKŁADOWANIA Podstawowy mechanizm składowania pamięć operacyjna, zapewnia szybki dostęp, ale ograniczona pojemność, PRZECHOWYWANIA BAZ DANYCH Dane w dużych ilościach i trwałe przechowywane są najczęściej na dyskach drugorzędnego mechanizmu przechowywania (pamięć zewnętrzna), Drugorzędny mechanizm składowania dyski magnetyczne, optyczne i taśmy, większa pojemność, mniejszy koszt, wolniejszy dostęp. Powody: zbyt duże, aby mieściły się w pamięci w całości, jest to pamięć nieulotna, mniej narażona na utratę danych, mniejszy koszt jednostkowy. 1

REKORDY Dane są zwykle przechowywane w postaci rekordów, Każdy rekord składa się z pól przechowujących wartości, Rekordy zwykle opisują encje i ich atrybuty, Nazwy pól i ich dane to typ rekordu, Przykład rekordu w notacji C: struct pracownik{ char imie[10]; char pesel[10]; int wiek; int zarobki; }; Typ danych BLOB jest przechowywany poza swoim rekordem, TYPY REKORDÓW I PLIKI Rodzaje rekordów: Proste wartość pola elementarna i złożone - wartością pola rekordu jest inny rekord, O stałej długości - zawsze zajmuje tyle samo miejsca na dysku, niezależnie od rzeczywistych rozmiarów przechowywanych w nim danych i zmiennej długości wszystkie rekordy różnej długości, przyjmują taki rozmiar jaki faktycznie przyjmują przechowywane w nich dane (pola o zmiennej długości, wiele wartości dla pojedynczego rekordu, pola opcjonalne, różne typy rekordów), Plik jest ciągiem rekordów. FORMATY PRZECHOWYWANIA REKORDÓW ROZMIESZCZANIE REKORDÓW W BLOKACH Nazwisko PESEL Stanowisko 1 12 22 Rekordy są przydzielane w blokach dyskowych, gdyż blok stanowi jednostkę przesyłania danych pomiędzy dyskiem a pamięcią, Nazwisko PESEL Stanowisko Kowalski 45061123411 kierownik Rozmiar tych bloków jest określany przez system operacyjny, Nazwisko=Kowalski PESEL=45061123411 Stanowisko=kierownik Każdy blok może zawierać wiele rekordów, każdy rekord może się mieścić w wielu blokach, 2

WSPÓŁCZYNNIK BLOKU Można określić tzw. współczynnik bloku bfr reprezentujący średnią liczbę rekordów na blok dla danego pliku: bfr= B/R, B- rozmiar bloku w bajtach, R- rozmiar rekordu o stałej długości lub maksymalny rozmiar rekordu o zmiennej długości, B R, B-(bfr*R) bajtów to obszar nieużywanej przestrzeni w każdym bloku, wynikający z faktu że R jest zazwyczaj niepodzielne przez B, b= (r/bfr) bloków liczba bloków wymaganych dla pliku zawierającego r rekordów, dla rekordów o zmiennej długości, ORGANIZACJA REKORDÓW Organizacja segmentowa (dzielona) Rekordy mogą być przechowywane w kilku blokach, gdy są zbyt duże są dzielone, Wskaźniki wskazują na kolejne bloki w których znajduje się pozostała cześć rekordu, Redukuje ilość traconej przestrzeni dyskowej, R1 R2 R3 R3 R4 R5 blok i blok i+1 ORGANIZACJA REKORDÓW Organizacja niesegmentowa (niepodzielna) Rekord, który nie mieści się w całości w bloku jest przenoszony do bloku, w którym zmieści się cały, Powoduje pozostawanie niewykorzystywanego miejsca w blokach, R1 R2 R3 blok i RODZAJE ALOKACJI BLOKÓW NA DYSKU Ciągła bloki pliku są alokowane w kolejnych blokach dysku, szybkie, ale utrudnia rozszerzanie pliku, Łączona każdy blok pliku zawiera wskaźnik na następny, spowalnia, ale umożliwia rozszerzanie, Klastrów - ciągłe sekwencje bloków są łączone w klastry, które zawierają wskaźniki na kolejne klastry, klastry nazywa się segmentami pliku lub obszarami pliku, R4 R5 R5 blok i+1 Indeksowa - bloki pełnią rolę indeksów zawierających wskaźniki na faktyczne bloki pliku. 3

NAGŁÓWKI (DESKRYPTORY) PLIKÓW Zawiera podstawowe informacje wymagane przez programy systemowe: Informacje służące do określania adresów na dysku bloków pliku, Opisy formatów z długością pól i kolejnością pól w rekordzie dla niesegmentowanych rekordów o stałej długości, Kody typów pól, znaki separatorów oraz kody typów rekordów dla rekordów o zmiennej długości Informacje wykorzystywane do wyszukiwania rekordu na dysku. OPERACJE NA PLIKACH Operacje jednorekordowe: Otwórz: przygotowuje plik do odczytu, przydziela bufory, odczytuje nagłówek pliku, ustawia wskaźnik na początku pliku, Zeruj: ustawia wskaźnik na początku otwartego pliku, Znajdź: znajduje pierwszy rekord spełniający warunki wyszukiwania, przesłanie znalezionego bloku dyskowego do bufora w pamięci, ustawia wskaźnik na znalezionym rekordzie nazywanym rekordem bieżącym, Odczytaj: kopiuje bieżący rekord do zmiennej programu w aplikacji użytkownika, może przesuwać wskaźnik na następny rekord w pliku, OPERACJE NA PLIKACH ZnajdźNastępny: szuka kolejnego rekordu spełniającego warunki, Usuń: usuwa rekord bieżący, aktualizuje plik na dysku, Zmodyfikuj: modyfikuje wybrane pola bieżącego rekordu, aktualizuje plik na dysku, Wstaw: wstawia nowy rekord do zlokalizowanego bloku po ówczesnym przesłaniu rekordu do pamięci, zapisuje bufor na dysk, Zamknij: zwalnia bufory, wykonuje inne operacje czyszczące, Przeglądaj: zwraca pierwszy lub kolejny rekord (jeśli plik był wcześniej otwarty) OPERACJE NA PLIKACH Operacje zbiorowe: ZnajdźWszystkie: znajduje wszystkie rekordy w pliku spełniające warunek, ZnajdźN: wyszukuje 1 rekord spełniający warunek i następnie n-1 kolejnych, ZnajdźPosortowane: pobiera rekordy z pliku w wybranym porządku, Zreorganizuj: dokonuje rozpoczęcia procesu reorganizacji, np. zmiany kolejności rekordów pliku poprzez ich posortowanie, Otwórz, Zamknij. 4

RODZAJE OPERACJI I PLIKÓW RODZAJE ORGANIZACJI PLIKÓW Operacje pobierania nie zmieniają danych, lokalizują określone rekordy, Operacje aktualizacji zmieniają plik poprzez np. dodawanie czy usuwanie rekordów, Pliki nieuporządkowanych rekordów (stertowe lub stosowe), Pliki uporządkowanych rekordów (posortowane, sekwencyjne), Pliki statyczne operacje aktualizacji są stosowane bardzo rzadko, Pliki dynamiczne podlegają częstym zmianom, Pliki haszowe. PLIKI NIEUPORZĄDKOWANYCH REKORDÓW Rekordy umieszczane są w pliku w kolejności wstawiania nowy rekord zawsze na końcu, Adres ostatniego bloku przechowywany jest w nagłówku pliku, PLIKI STERTOWE - OPERACJE Wstawianie: wydajne, po ostatnim rekordzie, Wyszukiwanie: liniowe przeszukanie całego pliku blok po bloku, jeśli mamy w pliku b bloków to przy jednym rekordzie spełniającym warunki mamy koszt średni b/2, zaś przy kilku rekordach lub ich braku koszt nawet b, Usuwanie: wiąże się z takimi operacjami jak wyszukanie, skopiowanie do bufora, usunięcie i zapisanie na dysku, powoduje pojawienie się nieużywanej przestrzeni na dysku, można wprowadzić znacznik usunięcia lub okresowa reorganizację pliku, 5

PLIKI STERTOWE - OPERACJE PLIKI STERTOWE - CHARAKTERYSTYKA Porządkowanie: tworzy się posortowaną kopię pliku, operacja kosztowna, stosuje się technikę sortowania zewnętrznego - polega ono na sortowaniu pliku fragmentami, które mieszczą się w pamięci operacyjnej. Każdy posortowany fragment jest w drugiej fazie sortowania łączony z innymi fragmentami, Efektywne wstawianie pojedynczych rekordów i zbiorów rekordów zawsze na końcu, Efektywne inne operacje, ale tylko w przypadku plików o rozmiarze kilku bloków, Struktura właściwa dla odczytu wszystkich rekordów (o stałej i zmiennej długości, o organizacji segmentowanej i niesegmentowanej), Struktura stosowana z innymi strukturami dostępu do danych (np. indeksy). PLIKI UPORZĄDKOWANYCH REKORDÓW Rekordy pliku są porządkowane według wartości jednego pola (pole uporządkowania), Aaron Abbott Adams Andrews Barnaba Cyklon Wojko Zaklew Zynks Blok 1 Blok 2 Blok n PLIKI SEKWENCYJNE - OPERACJE Odczyt rekordów: wydajny, bez sortowania, Znalezienie następnego: wydajne, przeważnie bez konieczności dostępu do innych bloków, Wyszukiwanie: może być użyty mechanizm wyszukiwania binarnego, efektywny, koszt log2b, Wstawianie: kosztowe, gdyż wymaga fizycznego uporządkowania rekordów, należy wyszukać pozycję i przesuwać średnio połowę rekordów (odczytanie i zapisanie), 6

PLIKI SEKWENCYJNE - OPERACJE PLIKI SEKWENCYJNE - WSTAWIANIE Usuwanie: kosztowny tak jak wstawianie, można nadawać znaczniki usunięcia i dokonywać reorganizacji, Wyszukiwanie wg innego klucza niż klucz uporządkowania: wyszukiwanie liniowe, Modyfikacja: koszt zależy od warunku wyszukiwania (gdy uwzględnia pole porządkujące to binarnie) i modyfikowanego pola (porządkujące czy nie), modyfikacja pola porządkującego jest tak samo kosztowna jak wstawienie rekordu Zwiększenie wydajności wstawiania można uzyskać dzięki: Pozostawianie niezużytej przestrzeni w każdym bloku dla nowych rekordów- gdy miejsce się skończy ten sam problem, Tworzenie tymczasowego pliku nieuporządkowanego (plik przepełnienia) z nowym rekordem na końcu i okresowe jego sortowanie z dołączaniem do pliku głównego w trakcie reorganizacji- zwiększamy efektywność wstawiania, ale dołączamy nieefektywne wyszukiwanie liniowe, PLIKI SEKWENCYJNE - CHARAKTERYSTYKA Zalety: Efektywny odczyt rekordów w kolejności pola porządkującego, gdyż są już posortowane Znalezienie następnego rekordu, według określonego porządku, jest bardzo proste Bardzo efektywne wyszukiwanie oparte na metodzie binarnej, jeśli kryterium oparte jest o pole porządkujące, Wady: Uporządkowanie pliku jest nieprzydatne, gdy wyszukiwanie jest realizowane według wartości pola nie porządkującego pliku danych, wstawianie i usuwanie rekordów jest bardzo kosztowne ze względu na konieczność zachowania porządku. PLIK MIESZAJĄCY/HASZOWY Organizacja pliku bazuje na technice mieszania, Porządek rekordów w pliku określony na podstawie tzw. pola mieszającego/haszowego, Idea polega na określeniu funkcji h (funkcja mieszająca/haszowa/randomizacji), która to zwraca adres bloku dyskowego, w którym powinien znaleźć się dany rekord, Wyróżniamy następujące rodzaje haszowania: wewnętrzne, zewnętrzne. 7

HASZOWANIE WEWNĘTRZNE Mieszanie implementowane jest w postaci tablicy mieszającej z użyciem tablicy rekordów, Koncepcja haszowania wewnętrznego: dana jest tablica o indeksach od 0 do M-1, zatem jest M pozycji których adresy odpowiadają indeksom tablicy, wybierana jest funkcja mieszająca, która przekształca pole mieszające na wartość całkowitą z przedziału od 0 do M-1, najczęściej spotykaną funkcją haszową jest funkcja h(k)=k MOD N, inne funkcje haszujące opierają się na operacjach arytmetycznych, logicznych, wybieraniu pewnych cyfr z wartości pola mieszającego. HASZOWANIE WEWNĘTRZNE 0 1 2 3 4 5 M-2 M-1 Nazwisko PESEL Stanowisko Dział Polem mieszającym może być Nazwisko, zaś wynikiem działania funkcji haszowej adres pod którym umieścimy rekord. HASZOWANIE WEWNĘTRZNE - PRZYKŁAD ALGORYTMY MIESZAJĄCE Id Nazwisko Dział 16 Kowlaski O 12 Otycek P 15 Macukow L 14 Fortulik K 13 Laisek O 10 Polaks O 11 Wertykowski P h(id)=id mod 10 0 10;Polaks;O 1 11;Wertykowski;P 2 12;Otycek;P 3 13;Laisek;O 4 14;Fortulik;K 5 15;Macukow;L 6 16;Kowlaski;O Pierwszym etapem przed zastosowaniem mechanizmu haszowania jest transformacja: wartości niecałkowitoliczbowych do całkowitych, czy ciągu znaków do wartości numerycznych, Przykład algorytmu mieszającego: zastosowanie funkcji mieszającej mod względem ciągu znaków K char K[20]; temp=1; for (i=1;i<=20;i++) { temp=temp*k[i] ;} adress=temp % M; 8

KOLIZJA Następuje gdy wartość pola mieszającego wstawianego rekordu po wykonaniu mieszania zwraca adres który zawiera już inny rekord, Rozwiązaniem jest wstawienie rekordu na innej pozycji, nazywamy to rozstrzygnięciem kolizji, Metody rozstrzygania kolizji: Adresowanie jawne, Łączenie, Mieszanie wielokrotne. METODY ROZSTRZYGANIA KOLIZJI Adresowanie jawne - począwszy do pozycji zwróconej przez haszowanie program sprawdza wszystkie kolejne aż znajdzie nieużywaną pozycję, czyli w skrócie kolejną wolną, Łączenie do każdej pozycji rekordu zostaje dodane pole wskaźnika, nowy rekord jest umieszczany na nieużywanej pozycji przepełnienia i ustawiany jest adres mieszający na taką pozycję, tworzony jest obszar przepełnienia do przechowywania rekordów ulegających kolizji, Mieszanie wielokrotne program stosuje drugą lub trzecią funkcję mieszającą, jeśli mamy dalej kolizję wykorzystywane jest adresowanie jawne, ADRESOWANIE JAWNE ŁĄCZENIE Algorytm rozstrzygnięcia kolizji przez jawne adresowanie Pola danych Wskaźnik przepełnienia i=adres_mieszania(k); a=i; if (pozycja i jest zajęta) { i= (i+1) % M; 0 1 2 3 4 5 M M+2 obszar adresowy while ((i!=a) && pozycja i jest zajęta) M-2 M+1 i= (i+1) % M; if (i==a) wszytskie_pozycje_zajęte else nowy_adres=i; M-1 M M+1 M+2 M+O-2 M+5 M+4 obszar przepełnienia } M+O-1 9

HASZOWANIE ZEWNĘTRZNE ODWZOROWANIE NUMERU PAKIETU NA ADRES BLOKU Mieszaniem zewnętrznym określamy mieszanie dla plików na dysku, Przestrzeń adresowa dzielona jest na pakiety zawierające wiele rekordów, Liczba pakietów jest stała i równa liczbie szczelin w tablicy haszowej, Pakiet może być pojedynczym blokiem albo ich klastrem, Funkcja haszująca przekształca klucz na względny numer pakietu, Nagłówek pliku dyskowego zawiera tablicę konwersji numerów pakietów w fizyczne adresy bloków dyskowych, tablica konwersji numer adres bloku na pakietu dysku 0 1 2 3 4 5 M-2 M-1 PROBLEM KOLIZJI Mniej istotny, Jeśli należy rozstrzygać kolizję można skorzystać z techniki łączenia, gdzie mamy wskaźniki na listę rekordów przepełnienia danego pakietu, Pakiet 1 Rekord 1 Rekord 2 Rekord n Wskaźnik Pakiet 2 Rekord 1 Rekord 2 Rekord n Wskaźnik pakiet przepełenienia Rekord m Rekord m+1 wskaźnik wskaźnik wskaźnik HASZOWANIE ZEWNĘTRZNE - OPERACJE Wyszukiwanie rekordu jeśli oparte o pole inne niż mieszające to jest tak samo kosztowne jak w pliku nieuporządkowanym, Usuwanie rekordu usuwanie ich z pakietu, Jeśli pakiet posiada łańcuch przepełnień to przenosimy jeden z rekordów do pakietu, Jeśli usuwamy rekord przepełnienia usuwamy go z listy, należy jednak zapamiętywać puste pozycje przepełnienia, Można w tym celu wykorzystać listę nieużywanych pozycji przepełnienia, 10

HASZOWANIE ZEWNĘTRZNE - OPERACJE Modyfikacja rekordu zależy od warunku wyszukiwania oraz rodzaju pola, które ma być zmodyfikowane, Jeśli warunek jest porównaniem równościowym z polem mieszającym to wyszukiwanie za pomocą funkcji haszowej, jeśli inny to wyszukiwanie liniowe, Gdy modyfikacji ulega pole nie będące polem mieszającym to zmieniamy rekord i zapisujemy go w tym samym pakiecie, w przeciwnym przypadku pakiet może ulec zmianie stąd usuwamy rekord i wstawiamy zmodyfikowany, MIESZANIE STATYCZNE I DYNAMICZNE O mieszaniu statycznym mówimy gdyż przydzielana jest stała liczba pakietów M, Jest to wadą gdy chcemy dynamicznie rozszerzać lub skracać pliki, Można to rozwiązać stosując mieszanie rozszerzalne lub liniowe, Schematy te wykorzystują fakt możliwości przedstawienia wyniku funkcji mieszającej w postaci liczby binarnej (wartość skrótu), rekordy są rozkładane do pakietów na bazie wartości bitów wiodących w ich wartościach skrótów, MIESZANIE ROZSZERZALNE Dostępna jest struktura katalogu tablicy o 2 d adresach pakietów, gdzie d to głębokość globalna katalogu, Wartość całkowita, która odpowiada pierwszym d bitom jest indeksem tablicy w celu określenia pozycji katalogu, adres z tej pozycji określa pakiet z odpowiednimi rekordami, Kilka lokalizacji katalogu z tymi samymi pierwszymi bitami może zawierać ten sam adres pakietu, jeśli wszystkie rekordy się w nim mieszczą, d to głębokość lokalna trzymana w każdym pakiecie, która mówi o liczbie bitów na których oparta jest zawartość pakietu, MIESZANIE ROZSZERZALNE katalog d=3 000 001 010 011 100 101 110 111 pakiety plików danych d =3 d =3 d =2 d =2 d =3 d =3 pakiety dla rekordów rozpoczynających się od 000 pakiety dla rekordów rozpoczynających się od 001 pakiety dla rekordów rozpoczynających się od 01 pakiety dla rekordów rozpoczynających się od 10 pakiety dla rekordów rozpoczynających się od 110 pakiety dla rekordów rozpoczynających się od 111 11

MIESZANIE LINIOWE ideą haszowania liniowego jest umożliwienie zmiany rozmiaru przestrzeni adresowej funkcji haszowej bez użycia katalogu, plik początkowo składa się pakietów 0,1,2,...,M-1 a wykorzystywana funkcja haszowa to h i (K) = K mod M przepełnienia wywołane kolizjami są obsługiwane przez przechowywanie łańcuchów dla poszczególnych pakietów, jeśli w dowolnym pakiecie nastąpi przepełnienie, pierwszy pakiet pliku (0) jest dzielony na dwa pakiety 0 i M za pomocą nowej funkcji haszowej h i+1 (K) = K mod 2M przy kolejnych kolizjach pakiety są dzielone w porządku liniowym 1,2,3, za pomocą h i+1 (K), w konsekwencji mamy 2M pakietów WYKŁAD PRZYGOTOWANO NA PODSTAWIE R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 2005, http://wazniak.mimuw.edu.pl/index.php?title=bazy_ danych. 12