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