29
Fizyczna organizacja Fizyczna organizacja danych w baz danych w baz ie ie danych danych Wykład 7 PJWSTK, SZB, Lech Banachowski

Fizyczna organizacja danych w baz ie danych Wykład 7

  • Upload
    dorjan

  • View
    47

  • Download
    4

Embed Size (px)

DESCRIPTION

Fizyczna organizacja danych w baz ie danych Wykład 7. PJWSTK, SZB, Lech Banachowski. Spis treści. Model fizyczny bazy danych Zarz ądzanie miejscem na dysku Zarz ądzanie buforami (w RAM) Organizacja zapisu na dysku rekordów, stron i plików. Model fizyczny bazy danych - PowerPoint PPT Presentation

Citation preview

Page 1: Fizyczna organizacja danych w baz ie  danych Wykład 7

Fizyczna organizacja Fizyczna organizacja

danych w bazdanych w bazieie

danychdanych

Wykład 7

PJWSTK, SZB, Lech Banachowski

Page 2: Fizyczna organizacja danych w baz ie  danych Wykład 7

2

Spis treściSpis treści

1.1. Model fizyczny bazy danychModel fizyczny bazy danych

2.2. ZarzZarządzanie miejscem na dyskuądzanie miejscem na dysku

3.3. ZarzZarządzanieądzanie buforami (w RAM) buforami (w RAM)

4.4. Organizacja zapisu na dysku rekordów, Organizacja zapisu na dysku rekordów,

stron i plikówstron i plików

Page 3: Fizyczna organizacja danych w baz ie  danych Wykład 7

Model fizyczny bazy danychModel fizyczny bazy danych - jest oparty na pojęciu pliku i rekordu

Plik składa się z rekordów w tym samym formacie. Format rekordu jest listą nazw pól. 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.

Podstawowymi operacjami na pliku są: Wstawianie - wstaw rekord do pliku. Usuwanie - usuń rekord z pliku. Modyfikacja - zmodyfikuj zawartość pól w rekordzie w

pliku. Wyszukiwanie - znajdź w pliku rekord(y) z podaną

wartością w danym polu lub spełniające podane warunki.

Page 4: Fizyczna organizacja danych w baz ie  danych Wykład 7

Dyski i pliki SZBD przechowuje dane na twardych dyskach. Stąd konieczność stosowania operacji We/Wy:

– Odczyt (READ): przesłanie danych z dysku do pamięci RAM.

– Zapis (WRITE): przesłanie danych z pamięci RAM na dysk.

– Obie operacje są o rząd wielkości wolniejsze niż operacje w pamięci RAM – powinny być stosowane umiejętnie! Koszt operacji na bazie danych jest przedstawiany jako liczba operacji We/Wy.

Page 5: Fizyczna organizacja danych w baz ie  danych Wykład 7

Dlaczego nie moDlaczego nie możnażna przechowywaprzechowywaćć danych w danych w pamięci pamięci RAM?RAM?

– Pamięć RAM jest chwilowa.– Za duży koszt. – 32 bitowe adresowanie ogranicza ilość danych .

Typowa hierarchia pamięci w bazie danych:– Pamięć RAM dla danych używanych w bieżącej chwili.– Dysk dla głównej bazy danych.– Zewnętrzny nośnik danych – np. taśma dla

archiwalnych wersji danych.

Page 6: Fizyczna organizacja danych w baz ie  danych Wykład 7

Dyski

Dostęp swobodny (random access) – w

przypadku dysków; dostęp sekwencyjny – w

przypadku taśm.

Dane są przechowywane i przekazywane w

jednostkach nazywanych blokami dyskowymi

lub stronami.

Page 7: Fizyczna organizacja danych w baz ie  danych Wykład 7

7

Dostrajanie operacji dyskowych

Inaczej niż w przypadku RAM, czas dostępu do danych na

dysku zależy od ich położenia na dysku. Dlatego wzajemne

rozmieszczenie stron na dysku może mieć zasadniczy

wpływ na szybkość działania SZBD! Najlepiej operować

ciągami sąsiadujących ze sobą stron.

Dąży się do tego, aby dane, które są często

wykorzystywane przez programy aplikacyjne, na stałe

przebywały w buforach pamięci RAM (tzw. cachowanie).

Dostęp do nich jest wtedy bardzo szybki.

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.

Page 8: Fizyczna organizacja danych w baz ie  danych Wykład 7

8

Pole

Rekord

Strona (blok)

Plik

Dyskowy model fizyczny Relacja (tabela) jest reprezentowana przez plik

dyskowy. Plik dyskowy składa się ze stron. Strona

składa się z rekordów. Rekord składa się z pól.

Atrybut

Wiersz

Relacja (tabela)

Page 9: Fizyczna organizacja danych w baz ie  danych Wykład 7

9

1. Gdy rozmiar rekordu większy niż rozmiar strony, rekord jest dzielony na części przechowywane na osobnych stronach (najlepiej sąsiadujących na dysku).

2. Gdy schemat dostępu do danych polega na użyciu powiązanych danych z dwóch lub więcej tabel (np. departamenty i ich pracownicy; klienci, zamówienia i pozycje zamówień), w jednym pliku są zbierane dane z kilku tabel w oparciu o wspólny klucz (np. numer departamentu czy identyfikator klienta).

Dyskowy model fizyczny - uzupełnienie

Page 10: Fizyczna organizacja danych w baz ie  danych Wykład 7

10

Duże obiekty LOB są zwykle trzymane w osobnych obszarach przeznaczonych do ich przechowywania w bazie danych, zwykle jako ciąg sąsiednich stron. W rekordach z danymi znajdują się tylko ich lokalizatory.

Page 11: Fizyczna organizacja danych w baz ie  danych Wykład 7

11

Hierarchia nośników przechowywania danych

10-9 10-6 10-3 10-0 103

Czas dostępu (sec)

1015

1013

1011

109

107

105

103

cache

pamięćelektroniczna

główna

pamięćelektroniczna pomocnicza

dyskimagnetyczne

dyskioptyczne

taśma magnetyczna

Poj

emno

ść (

bajt

y)

Page 12: Fizyczna organizacja danych w baz ie  danych Wykład 7

Zarządzanie miejscem na dysku

Realizowane funkcje:– Alokacja/dealokacja strony.

– Odczyt/zapis strony.

– Sekwencyjna alokacja ciągu stron.– Wyznaczenie strony do zapisu nowego rekordu. – Aktualizacja struktur danych na dysku

związanych z przechowywanymi stronami.

Page 13: Fizyczna organizacja danych w baz ie  danych Wykład 7

Zarządzanie buforami (w RAM)

Dane muszą być w RAM aby SZBD mógł na nich operować! Tablica par <nr_ramki, id_strony>.

BD

RAM

DYSK

Strona dyskowa

Wolna ramka

Proces zgłasza zapotrzebowanie na stronę

PULA BUFORƠW

Wybór ramki dyktowanystrategią zastępowania

Page 14: Fizyczna organizacja danych w baz ie  danych Wykład 7

14

Dodatkowe struktury danych

Dla każdej ramki: licznik odwołań - ile różnych procesów używa ramki w danej chwili. Na początku po umieszczeniu strony w ramce: licznik odwołań = 1;

Dla każdej ramki: bit modyfikacji – czy po sprowadzeniu do pamięci RAM zawartość ramki została zmodyfikowana (stan "dirty"), co oznacza, że strona na dysku będąca źródłem zawartości ramki może już być inna niż zawartość ramki w pamięci RAM. Na początku po umieszczeniu strony w ramce: bit modyfikacji = false.

Ponadto wszystkie ramki, których licznik odwołań = 0, tworzą listę wolnych ramek.

Page 15: Fizyczna organizacja danych w baz ie  danych Wykład 7

Gdy procesorowi jest potrzebna strona...

Gdy nie ma jej w puli buforów:– Wybierz ramkę o liczniku odwołań = 0 .

– Jeśli strona w ramce została zmieniona (bit modyfikacji = true), zapisz ją na dysk.

– Wczytaj potrzebną stronę w wybraną ramkę.

– Ustaw licznik odwołań do tej strony na jeden, a bit modyfikacji na false..

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!

Page 16: Fizyczna organizacja danych w baz ie  danych Wykład 7

ZarzZarządzanieądzanie buforami – buforami – c.d.c.d.

Gdy zmienia się zawartość strony: – Zostaje ustawiony bit modyfikacji = true.

Strona w buforze może być potrzebna wielu procesom: – Nowe zapotrzebowanie na stronę zwiększa jej licznik

odwołań o jeden. Gdy proces zwalnia stronę, jej licznik odwołań zmniejsza się o jeden. Strona staje się kandydatem do zastąpienia gdy jej licznik odwołań = 0.

Page 17: Fizyczna organizacja danych w baz ie  danych Wykład 7

Strategie zastępowania stron w ramkach

– LRU – najdłużej nie używana, – Clock - cyklicznie, – MRU – ostatnio używana.

Sekwencyjne zalewanie puli ramek: LRU + powtarzane sekwencyjne przeglądanie pliku.– # ramek < # stron oznacza, że każde żądanie

strony powoduje operację We/Wy. MRU lepsze w tym przypadku.

Page 18: Fizyczna organizacja danych w baz ie  danych Wykład 7

18

Proces obsługujący zlecenie użytkownika: najpierw oblicza adres strony, na której znajduje się

dany rekord, sprawdza czy strona jest w puli buforów, jeśli jej nie ma, sprowadza stronę z dysku i umieszcza

ją w buforze pamięci RAM (przy tych operacjach są wywoływane moduły zarządzania miejscem na dysku i zarządzania buforami w pamięci RAM),

wydobywa z niej szukany rekord i przekazuje go użytkownikowi.

Page 19: Fizyczna organizacja danych w baz ie  danych Wykład 7

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).

Adres bazowy (B)

L1 L2 L3 L4

F1 F2 F3 F4

Adres = B+L1+L2

Page 20: Fizyczna organizacja danych w baz ie  danych Wykład 7

Formaty rekordów: zmienna długość

Dwa alternatywne formaty (# pól jest stała):

W drugim przypadku: bezpośredni dostęp do wartości i-tego pola; efektywne przechowywanie wartości null.

4 $ $ $ $

Licznik pólPola rozdzielone specjalnym symbolem

F1 F2 F3 F4

F1 F2 F3 F4

Tablica offsetów pól

Page 21: Fizyczna organizacja danych w baz ie  danych Wykład 7

Formaty stron: rekordy stałej długości

rid (id rekordu) = <id_strony, nr_pozycji>. W pierwszym przypadku, przesuwanie rekordów powoduje zmianę id rekordu, co komplikuje odwołania do rekordu przez id rekordu (rid).

12

N

. . . . . .

N M10. . .

M ... 3 2 1

12

N

Wolnemiejsca

M

11

liczba rekordów

liczbapozycji

Page 22: Fizyczna organizacja danych w baz ie  danych Wykład 7

Formaty stron: rekordy zmiennej 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.

Strona irid = (i,N)

rid = (i,2)

rid = (i,1)

Wskaźnikdo puliwolnychmiejsc

Tablica pozycji

N . . . 2 120 16 24 N

# pozycji

Page 23: Fizyczna organizacja danych w baz ie  danych Wykład 7

Plik rekordów

PLIK: kolekcja stron, każda zawierająca

zbiór rekordów:

– wstawianie/usuwanie/modyfikowanie rekordów,

– odczytanie konkretnego rekordu (o podanym

rid),

– wyszukanie wszystkich rekordów

(spełniających podane warunki).

Page 24: Fizyczna organizacja danych w baz ie  danych Wykład 7

Plik nieuporządkowany (heap)

Rekordy są przechowywane na stronach w

dowolnym porządku.

Nowy rekord jest wstawiany do pierwszej

strony, na której jest wolne miejsce.

Przy wyszukiwaniu trzeba przejść po

wszystkich stronach do chwili napotkania

szukanego rekordu.

Page 25: Fizyczna organizacja danych w baz ie  danych Wykład 7

Plik nieuporządkowany (listy) implementacja – dwie listy

Stronapocz.

Stronadanych

Stronadanych

Stronadanych

Stronadanych

Stronadanych

Stronadanych Strony z

wolnymimiejscami

Strony pełne

Page 26: Fizyczna organizacja danych w baz ie  danych Wykład 7

Plik nieuporządkowany implementacja – katalog stron

Stronadanych

Stronadanych

Stronadanych

Stronapocz.

Katalog(bitmapa)

Page 27: Fizyczna organizacja danych w baz ie  danych Wykład 7

27

Plik posortowanyRekordy są zapisywane na kolejnych stronach zgodnie z porządkiem względem klucza rekordu. Taka reprezentacja jest wygodna gdy rekordy przetwarza się zawsze w pewnym, ustalonym porządku lub tylko pewien ich zakres względem tego porządku np. SELECT * FROM Emp e ORDER BY e.Sal lub SELECT * FROM Emp e WHERE e.Sal BETWEEN 1000 and 2000

W pliku posortowanym wyszukanie rekordu mając dany jego klucz jest nieco szybsze niż dla pliku nieuporządkowanego, ale ze względu na to, że rekordy znajdują się na dysku, zastosowanie jednej z szybkich metod wyszukiwania jak wyszukiwanie binarne nie jest w pełni możliwe.

Skomplikowane stają się operacje wstawienia nowego rekordu do pliku jak i usunięcia rekordu z pliku.

Page 28: Fizyczna organizacja danych w baz ie  danych Wykład 7

28

Implementacja pliku posortowanego

1 3 5 8 12 19 34

1. Pełny ekstent – stron sąsiadujących ze sobą na dysku – rekordy uporządkowane według wartości klucza. Jest problem ze wstawieniem nowego rekordu i usunięciem rekordu z pliku. Jest możliwość zastosowania wyszukiwania binarnego.

1 3 5 8 12 19 34

2. Lista stron (lub ekstentów) – rekordy uporządkowane według wartości klucza. Nie ma problemu ze wstawieniem nowego rekordu i usunięciem rekordu z pliku. Nie ma bezpośredniej możliwości zastosowania wyszukiwania binarnego.

Page 29: Fizyczna organizacja danych w baz ie  danych Wykład 7

29

Plik haszowany

Plik jest kolekcją “segmentów” (ang. bucket). Segment = strona główna plus zero lub więcej stron nadmiarowych.

Organizacja pliku haszowanego jest użyteczna przy wyborze rekordu z pliku w oparciu o wartość lub wartości pewnych pól rekordu np. przy wykonywaniu zapytania SELECT * FROM Emp e WHERE e.Ename=:Nazwisko

Funkcja haszująca h: h(r) = “segment” do którego wpada rekord r. h bierze pod uwagę tylko niektóre pola r, nazywane polami wyszukiwania.