Bazy danych - Wkuwanko.pl
Transkrypt
Bazy danych - Wkuwanko.pl
Plan wykładu • Model logiczny i model fizyczny • Mechanizmy składowania plików • Moduł zarz dzania miejscem na dysku i moduł zarz dzania buforami • Formaty rekordów i sposoby ich zapisu • Rozmieszczenie rekordów w blokach • Metody organizacji pliku rekordów Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Małgorzata Kr towska Katedra Oprogramowania e-mail: [email protected] Bazy danych (studia dzienne) Model logiczny i fizyczny Operacje na pliku • Model logiczny bazy danych • Podstawowe operacje na pliku – – – – • Model fizyczny bazy danych - oparty jest na poj ciu pliku i rekordu. – Plik obiektu bazy danych składa si z rekordów posiadaj cych ten sam format – Format rekordu jest list nazw pól z okre leniem ich typów danych. – Rekord skł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. Bazy danych (studia dzienne) 2 wstawianie usuwanie modyfikacja wyszukiwanie • Plik słu y zwykle jako reprezentacja fizyczna jednej tabeli. Ale równie istnieje mo liwo pliku jako klastra kilku tabel i wtedy rekordy trzymane w pliku mog mie ró ny format 3 Bazy danych (studia dzienne) 4 Mechanizmy składowania Dyski • Podstawowy mechanizm składowania - no niki danych, na których mo e bezpo rednio operowa procesor np. pami RAM. Mechanizm podstawowy zapewnia zwykle szybki dost p do danych, ala wi e si z ograniczon pojemno ci • Charakterystyka wykorzystania danych przechowywanych na dysku: – dost p swobodny: w oparciu o adres rekordu na dysku mo na go przesła do pami ci RAM w jednej operacji We-Wy – dane s przechowywane i przesyłane w jednostkach nazywanych blokami dyskowymi lub stronami – czas dost pu do danych na dysku zalezy od ich poło enia na dysku (ci gi s siaduj cych ze sob stron) – d y si do tego, aby dane, które s cz sto wykorzystywane przez programy, na stałe przebywały w buforach pami ci RAM. – Operacje odczytu i zapisu bloków na dysku mog by realizowane współbie nie. St d opłaca si , aby transakcje u ytkowników były realizowane przez system współbie nie, a nie sekwencyjnie. • Drugorz dny mechanizm składowania - dyski magnetyczne, dyski optyczne oraz ta my – urz dzenia te charkteryzuj si wi ksz pojemnosci , mniejszymi kosztami i oferuja wolniejszy dost p do danych ni mechanizm podstawowy. – Dane nie mog by przetwarzane bezpo rednio przez procesor główny Bazy danych (studia dzienne) 5 Ta mowe urz dzenia pami ciowe Bazy danych (studia dzienne) 6 Dyskowy model fizyczny • Dost p sekwencyjny - aby uzyska dostep do n-tego bloku na ta mie najpierw musimy przejrze wcze niejsze n-1 bloków. • Nie s przewa nie wykorzystywane do przechowywania danych bie cych ale do archiwizacji baz danych Atrybut Pole Wiersz (obiekt) Rekord Strona (blok) Relacja Porównanie poj Bazy danych (studia dzienne) 7 Bazy danych (studia dzienne) Plik poziomu logicznego i fizycznego 8 Dyskowy model fizyczny Moduł zarz dzania miejscem na dysku • gdy rozmiar rekordu jest wi kszy ni rozmiar strony, rekord jest dzielony na cz ci przechowywane na osobnych stronach (najlepiej s siaduj cych na dysku) • W pliku mamy dwa rodzaje stron: – stony z wolnym miejscem do zapisu nowych rekordów – strony całkiem lub prawie całkiem zapełnione • Zakładamy tak e, e system ma mo liwo rozszerzenia pliku rekordów i alokacji nowych pustych stron. • Moduł zarz dzania miejscem na dysku realizuje nast puj ce funkcje: • du e obiekty LOB s trzymane w osobnym obszarze przeznaczonym do ich przechowywania w bazie danych, zwykle jako ci g s siednich stron. W rekordach danych znajduj si tylko ich wska niki – – – – • jeden plik mo e reprezentowa te klaster tabel tzn. powi zanie danych z dwóch lub wi kszej liczby tabel. Dane w pliku s wówczas umieszczane w oparciu o współny klucz. Bazy danych (studia dzienne) • Moduł zarz dzania miejscem na dysku ukrywa szczegóły sprz tu i systemu operacyjnego i umo liwia pozostałym modułom traktowanie danych na dysku jako zbioru stron. 9 Zarz dzanie buforami danych (w RAM) Bazy danych (studia dzienne) 10 Działania modułu zarz dzania buforami • Moduł zarz dzania buforami danych jest odpowiedzialny za sprowadzanie stron z dysku do puli buforów w pami ci RAM. Zapis strony odbywa si w ramce • Gdy procesowi potrzebna jest strona: – Gdy potrzebnej strony nie ma w puli ramek • wybierz ramk z listy wolnych ramek (licznik odwoła =0) • je li strona w wybranej ramce została zmieniona, ale nie zaktualizowana na dysku (bit modyfikacji=true) zapisz j na dysk • wczytaj potrzebn stron w wybran ramk • ustaw jej licznik odwoła =1 – Gdy potrzebna strona jest w puli ramek, zwi ksz jej licznik odwoła o 1. – Przeka procesowi wska nik do ramki ze stron – je li mo na przewidzie , e maj by sprowadzone s siaduj ce na dysku strony , sprowad od razu kilka stron • Oprócz puli ramek w pami ci RAM s przechowywane: – tablica par: <nr_ramki, id_strony> – dla ka dej ramki: licznik odwoła - ile ró nych procesów u ywa ramki w danej chwili – dla ka dej ramki bit modyfikacji - czy po sprowadzeniu do pami ci RAM zawarto ramki została zmodyfikowana – wszystkie ramki, których licznik odwoła =0 tworz list wolnych ramek Bazy danych (studia dzienne) odczyt strony zapis strony pobranie strony do zapisu nowego rekordu alokacja ci gu stron (poło onych spójnie na dysku) 11 Bazy danych (studia dzienne) 12 Działania modułu zarz dzania buforami • Gdy zmienia si zawarto Formaty rekordów ramki: • Plik jest ci giem rekordów. Je eli ka dy rekord w pliku ma dokładnie ten sam rozmiar o takim pliku mówi si , składa si z rekordów o stałej długo ci. Je eli ró ne rekordy w pliku maj ró ny rozmiar o pliku mówi si , e składa si z rekordów o zmiennej długo ci. Taka sytuacja ma miejsce wówczas, gdy – ustawiamy dla ramki bit modyfikacji = true • Strona w buforze danych mo e by potrzebna wielu procesom: – nowe zapotrzebowanie na stron zwi ksza jej licznik odwoła o jeden – gdy proces zwalnia stron w ramce, jej licznik odwoła zmniejsza si o jeden – ramka staje si kandydatek do zast pienia, gdy jej licznik odwoła =0. Zostaje wtedy wstawiona na list wolnych ramek – rekordy maj ten sam typ rekordu, ale jedno lub wi cej pól ma zmienn długo – rekordy maj ten sam typ rekordu, ale jedno lub wi cej pól jest opcjonalne – plik zawiera rekordy o ró nych typach rekordów, z przez to ró nych rozmiarach (klastry) • Strategie zast powania stron w ramkach z listy wolnych ramek – LRU - zast puje si stron , która najdłu ej była nieu ywana – MRU - zast puje si stron , która ostatnio była u ywana – Clock - ustala si stał cykliczn kolejno pobierania wolnych ramek Bazy danych (studia dzienne) 13 Zapis rekordu o stałej długo ci P2 P3 P4 D1 D2 D3 D4 Adres bazowy (B) Bazy danych (studia dzienne) 14 Zapis rekordu o zmiennej długo ci • Zapis rekordu skł da si ze spójnego obszaru zawieraj cego ci gi pól P1,.., Pn o stałych rozmiarach D1,.., Dn • Maj c adres bazowy (pocz tek rekordu) B łatwo mo na obliczy poczatek i-tego pola jako B+D1+...+Di-1. P1 Bazy danych (studia dzienne) • Zapis rekordu o zmiennej długo ci mo na reprezentowa przez zapis o stałej długo ci (ka de pole b dzie reprezenowane w rekordzie) • dla pól o zmiennej długo ci (stał liczba pól w rekordzie) mo na wykorzystywa separatory (?, %, $), które nie wyst puj w warto ci adnego pola, w celu okre lenia ko ca pól o zmiennej długo ci P1 D1 Adres=B+D1+D2 15 Bazy danych (studia dzienne) P2 P3 $ D3 P4 $ 16 Zapis rekordu o zmiennej długo ci Zapis rekordu z polami opcjonalnymi • Na pocz tku rekordu umieszcamy tablic wska ników do pocz tków kolejnych pól, wówczas uzyskujemy • Je eli liczba pól w rekordzie jest du a , ale liczba pół faktycznie wyst puj cych w rekordzie jest mała, mo na w ka dym rekordzie uwzgl dni sekwencj par <nazwa_pola, warto pola> zamiast samych warto ci pól. • Wyst puje kilka rodzajów znaków rozdzielaj cych – bezpo redni dost p do warto ci i-tego pola – efektywne przechowywanie warto ci Null P1 P2 P3 Nazwisko=Kowalski oddziela nazw pola $ Wiek=25 oddziela pola $ Zarobki=1500 % ko czy rekord od jego warto ci Bazy danych (studia dzienne) 17 Zapis rekordów ró nych typów Bazy danych (studia dzienne) 18 Rozmieszczenie rekordów w blokach • Ka dy rekord zostaje poprzedzony wska nikiem typu rekordu • Rekordy pliku musz by przydzielane w blokach dyskowych (stronach), poniewa blok jest jednostk przesyłania danych mi dzy dyskiem a pami ci • Gdy rozmiar blok jest wi kszy od rozmiaru rekordu, wówczas ka dy blok b dzie zawierał wiele rekordów Zapis rekordu w jednej z omawianych postaci • Zakładaj c, e rozmiar bloku wynosi B bajtów, a rekordu R, gdzie R<=B, wówczas mo na okre li współczynik bloku dla pliku: bfr = floor(B/R) Wska nik typu rekordu • Rozmiar nieu ywanej przestrzeni wynosi wówczas B-(bfr R) bajtów Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20 Rozmieszczenie rekordów w blokach Rozmieszczenie rekordów w blokach • Organizacja segmentowa bloku • Organizacja niesegmentowa bloku – wykorzystuje nieu ywan przestrze bloku w ten sposób, e cz rekordu jest przechowywana w jednym bloku, a reszta w drugim – wska nik znajdujacy si na ko cu pierwszego bliku wskazuje na blok zawieraj cy reszt rekordu w przypadku, gdy nie b dzie to nast pny w kolejno ci blok na dysku. Rekord 1 Rekord 2 Rekord 3 Rekord 4 P R 4 (reszta) Rekord 5 Rekord 6 Rekord 7 P Blok i Blok i+1 Bazy danych (studia dzienne) – rekordy nie mog przekracza granic bloków – wykorzystuje si j w przypadku rekordów o stałej długo ci , gdy B>R, poniewa powoduje to, e ka dy rekord zaczyna si od znanej lokalizacji w bloku, co upraszcza ich przetwarzanie – w przypadku rekordów o zmienej długo ci mo liwa jest zarówno organizacja segmentowa jak te niesegmentowa (zale y od przeci tej długo ci rekordu) 21 Format strony dla rekordów stałej długo ci Blok i Rekord 1 Rekord 2 Rekord 3 Blok i+1 Rekord 4 Rekord 5 Rekord 6 Bazy danych (studia dzienne) 22 Format strony dla rekordów stałej długo ci • Dwa alternatywne formaty: N • Przy operowaniu na danych pojawia si potrzeba si gania do konkretnych rekordów, a nie do wszystkich za ka dym razem np. si gamy do rekordu w oparciu o jego wcze niej wyliczony adres b d poprzez adres znaleziony w indeksie. • Adres rekordu (identyfikator rekordu rid) identyfikujacy jego poło enie na dysku jest okre lany nast puj co: rid=<id_strony, numer pozycji na stronie> Bazy danych (studia dzienne) Wolne miejsce 1 2 – najpierw s zgrupowane wszystkie miejsca zaj te a potem wolne – miejsca zajete i wolne s ze sob przemieszane - to czy miejsce jest wolne czy zaj te wskazuje bit w dodatkowej tablicy Occupied • Occupied (i) =1 wtedy i tylko wtedy, gdy i-te miejsce na stronie jest zaj te 1 2 N M N 1 0 1 ... 0 1 1 1 M M ....... Liczba rekordów 3 21 Liczba pozycji W przypadku pierwszej struktury przesuwanie rekordów na stronie powoduje zmian identyfikatora rekordu, co komplikuje odwołania do rekordu przez jego identyfikator rid. 23 Bazy danych (studia dzienne) 24 Metody organizacji pliku rekordów Format strony dla rekordów zmiennej długo ci • • • Adres zapisu rekordu na stronie jest okre lony przez warto w tablicy Poz. Warto Poz(i) wskazuje na pocz tek obszaru i-tego rekordu. Dodatkowo warto Poz(0) wskazuje na pocz tek obszaru wolnych miejsc. Rid=<id_strony, numer pozycji w tablicy Poz> Przy zmianie pozycji na stronie aktualizowany jest te adres w Poz(i). Nie zmienia to indeksu i ,czyli nie zmienia równie identyfikatora rekordu rid. • Podstawow ró nic pomiedzy róznymi organizacjami plików rekordów polega na tym, czy porz dkuj one rekordy według warto ci pewnego klucza czy nie. • Wyró niamy: – Plik nieuporz dkowany – Plik posortowany – Plik haszowany Strona i Rid=(i,N) Rid=(i,1) 20 ... 13 24 Tablica pozycji N Wska nik do puli wolnych miejsc Liczba pozycji Bazy danych (studia dzienne) 25 Bazy danych (studia dzienne) Plik nieuporz dkowany Pliki posortowane • Rekordy s przechowywane na stronach pliku w dowolnym porz dku • nowy rekord jest wstawiany do pierwszej strony, na które jest wolne miejsce • Przy wyszukiwaniu przechodzimy po wszystkich stronach do chwili napotkania szukanego rekordu albo ko ca pliku, gdy rekordu nie ma w pliku • Rekody s zapisywane na kolejnych stronach wzgl dem klucza rekordu • Reprezentacja wygodna gdy rekordy przetwarza si zawsze w pewnym ustalonym porz dku lub tylko ich pewien zakres wzgl dem tego porz dku np. Select * from emp order by sal select * from emp where sal>2000 – wówczas do wyszukania odpowiednich rekordów mo na u y wyszukiwania binarnego na blokach a nie na rekordach (uzyskanie dost pu do log2(b) bloków, gdzie b - liczba bloków w pliku. • Organizacja nieuporz dkowana jest wygodna przy wykonywaniu zapyta dotycz cych wszystkich rekordów lub wi kszo ci rekordów: select * from emp; Bazy danych (studia dzienne) 26 • Brak korzy ci, gdy chcemy odwoła si do rekordów w oparciu o warto ci innych pól, które nie s polami uporz dkowania -dost p wymaga wyszukiwania liniowego ( rednio b/2 bloków) 27 Bazy danych (studia dzienne) 28 Pliki posortowane Pliki haszowane • Problem - wstawianie i usuwanie rekordów • Plik jest kolekcj segmentów • Segment to strona główna plus zero lub wi cej stron nadmiarowych alokowanych do segmentu w razie potrzeby. • Przydział rekordu do segmentu odbywa si w oparciu o warto funkcji haszuj cej, zastosownej do klucza wyszukiwania rekordu, którym jest jedno lub wi cej pól rekordu: – wstawianie - nale y znale odpowiedni pozycj w pliku wzgl dem pola uporz dkowania, a nast pnie zapewni wolne miejsce w pliku. W tym celu nale y przesun c rednio połow rekordów w pliku. • Poprawa wydajno ci przez wykorzystanie tymczasowego pliku nieuporz dkowanego tzn pliku przepełnienia. Nowe rekordy s wstawiane do pliku przepełnienia - na jego koniec. Okresowo plik jest sortowany i kolejene rekordy s wstawiane do pliku głównego =>zwi kszona zło ono operacji wyszukiwania – usuwanie rekordów - problem mniejistotny , gdy wykorzystauje si znaczniki usuni cia Bazy danych (studia dzienne) • Funkcja haszuj ca: h(klucz wyszukiwania rekordu r)= adres segmentu, do którego wpada rekord r 29 Bazy danych (studia dzienne) Plik haszowany Plik haszowany • Organizacja pliku haszowanego jest u yteczna przy wyborze rekordu z pliku w oparciu o warto lub warto ci pewnych pól rekordu np.: 0 1 klucz h select * from emp where ename=&nazwisko 2 • Organizacja rekordów w pliku haszowanym nie zachowuje kolejno ci warto ci klucza wyszukiwania M-1 Strony główne Bazy danych (studia dzienne) 30 • Zastosowanie jednej organizacji rekordów w pliku zazwyczaj nie wystarcza w aplikacji baz danych, w których wyszukiwanie odbywa si wzgl dem warto ci ró nych kluczy wyszukiwania. Rozwi zanie tego problemu polega na skorzystaniu z osobnych struktur indeksowych. Strony nadmiarowe 31 Bazy danych (studia dzienne) 32