Bazy danych Strona 1 Struktura fizyczna 29 stycznia 2010 10:29 Model fizyczny bazy danych jest oparty na pojęciu pliku i rekordu. Plikskłada się z rekordów w tym samym formacie. Format rekordujest listą nazw pól. Rekordskłada się z wartości poszczególnych pól. Niektóre pola są wyróżnione jako klucz rekordu ich wartości jednoznacznie identyfikują cały rekord. Dyski Dane są przechowywane i przekazywane w jednostkach nazywanych blokami dyskowymi lub stronami. Inaczej niż w przypadku RAM, czas dostępu do danych na dysku zależy od ich położenia na dysku. Bufory w RAM pracują mniej więcej tak, jak pamięć wirtualna w SO Gdy procesowi potrzebna jest strona: a) Gdy nie ma jej w puli buforów: Wybierz ramkę o liczniku odwołań = 0. Jeśli ramka jest niezaktualizowana ( dirty ), zapisz ją na dysk. Wczytaj potrzebną stronę w wybraną ramkę. Ustaw licznik odwołań do tej strony na jeden. b) Gdy strona jest w puli buforów, zwiększ jej licznik odwołań o jeden. Przekaż procesowi wskaźnik do ramki ze stroną. - Jeśli można z góry przewidzieć (np. przeglądanie sekwencyjne) sprowadza się od razu kilka stron! Strategie zastępowania ramek LRU najdłużej nie używana, Clock-cyklicznie, MRU ostatnio używana. Sekwencyjne zalewanie puli ramek: LRU+ powtarzane sekwencyjne przeglądanie pliku. # ramek< # stronoznacza, że każde żądanie strony
Bazy danych Strona 2 powoduje operację We/Wy. MRU lepsze w tym przypadku. Formaty rekordów - stała długość Typy pól takie same dla wszystkich rekordów w pliku; zapisane w słowniku danych(katalogu systemowym). Formaty rekordów - zmienna długość Dwa alternatywne formaty (# pól jest stała): a) b) bezpośredni dostęp do wartości i-tego pola; efektywne przechowywanie wartości null. Formaty stron - rekordy stałej długości
Bazy danych Strona 3 - Rid (Id rekordu) = <idstrony, # pozycji>. W pierwszym przypadku, przesuwanie rekordów powoduje zmianę id rekordu,co komplikuje odwołania do rekordu przez id rekordu (rid). Formaty stron - rekordy stałej długości - Można przesuwać rekordy po stronie bez zmiany rid można także zastosować dla rekordów stałej długości. Plik PLIK- kolekcja stron, każda zawierająca zbiór rekordów: Pliki nieuporządkowane - Rekordy są przechowywane na stronachw dowolnym porządku.
Bazy danych Strona 4 - Nowy rekord jest wstawianydo pierwszej strony, w której jest wolne miejsce. - Przy wyszukiwaniu trzeba przejść po wszystkich stronach do chwili napotkania szukanego rekordu. Implementacja dwie listy: Implementacja katalog stron: Inne implementacje - Pliki posortowane- wygodne gdy trzeba sprowadzić rekordy w pewnym porządku lub tylko pewien ich zakres. - Pliki haszowane- Użyteczne przy selekcji przez równość wartości. Plik jest kolekcją segmentów (ang. bucket). Segment= strona głównaplus zero lub więcej stron nadmiarowych. Funkcja haszującah: h(r) = segment do którego wpada rekord r. hbierze pod uwagę tylko niektóre pola r, nazywane polami wyszukiwania. Indeksy - Plik nieuporządkowany umożliwia wyszukanie rekordu:
Bazy danych Strona 5 mając dany rid, lub przeglądając sekwencyjnie wszystkie rekordy w pliku. - Indeksysą strukturami danych, które pomagają szybko znajdować odpowiedzi na takiego rodzaju zapytania. - Klucz wyszukiwania dla indeksu - wybrane pola rekordu względem których ma odbywać się wyszukiwanie. - Indeks składa się z pozycji danychk*określanych względem wartości klucza wyszukiwania k. - Plik danych rekordy danych. - Plik indeksu pozycje danych, pozycje indeksu. - Indeks wewnętrzny-plik indeksu może być zbudowany na samym pliku danych. Wówczas pozycja danych k* pokrywa się z rekordem danych. Może być tylko jeden indeks wewnętrzny. - Indeks zewnętrzny pozycje danych k* są rozłączne z rekordami danych. Postacie: 1) <k, rid rekordu z tą wartością kluczak> albo 2) <k, lista rid rekordów z tą wartością kluczak > - Postać bardziej zwarta; zmienna długość rekordu. Klasyfikacja indeksów - Gdy klucz wyszukiwania zawiera klucz główny indeks głównywpp. indeks niegłówny. - Indeks jednoznaczny- klucz wyszukiwania zawiera klucz kandydujący (czyli taki, który również mógłby być główny). Drzewa - wartości są przechowywane w liściach - Zastosowanie indeksów o strukturze drzewa: Wyszukiwanie zakresowe. Wyszukiwanie równościowe. - Sortowanie (np. ORDER BY). ISAM struktura statyczna(indexed sequential access method). Modyfikowane są tylko liście. Wymagane są strony nadmiarowe mogące istotnie pogorszyć działanie
Bazy danych Strona 6 algorytmów. - B+ drzewo struktura dynamiczna. W praktyce wysokość zwykle <=4. Haszowanie - Ustalona alokacja stron głównych; alokowane dodatkowe strony nadmiarowe w razie potrzeby. - h(k)= k mod M= segment do którego należy pozycja danych o kluczu - k (M=# segmentów). Mogą powstać długie łańcuchy nadmiarowych stron co prowadzi do pogorszenia działania. - istnieją dynamiczne wersje haszowania polegające na zwiększaniu liczby M segmentów przez ich podział. - Indeksy haszowane dobre przy wyszukiwaniu równościowym. Nie wspomagają wyszukiwania zakresowego ani sortowania.