Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Fizyczna organizacja danych w bazie danych Wykład 7

Podobne prezentacje


Prezentacja na temat: "Fizyczna organizacja danych w bazie danych Wykład 7"— Zapis prezentacji:

1 Fizyczna organizacja danych w bazie danych Wykład 7
PJWSTK, SZB, Lech Banachowski 1

2 Spis treści Dyskowy model fizyczny bazy danych
Zarządzanie miejscem na dysku Zarządzanie buforami (w RAM) Organizacja zapisu na dysku rekordów, stron i plików

3 I. Dyskowy model fizyczny bazy danych
- 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. Klucz rekordu – wyróżnione pola rekordu, których wartości jednoznacznie identyfikują cały rekord (minimalny taki podzbiór). Klucz wyszukiwania rekordu - wyróżnione pola rekordu względem których wyszukuje się rekordy. Podstawowymi operacjami na pliku rekordów 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 na pola. Czasami się zdarza, że format rekordu jest zmienny – na końcu dopuszcza się dodawanie pól określonych typów. ALTER TABLE może jednak zmienić format rekordów w pliku. Klucz – najmniejszy podzbiór o tej własności

4 Dyski i pliki SZBD przechowuje dane na twardych dyskach.
Stąd konieczność stosowania operacji We/Wy: Odczyt (READ): przesłanie porcji danych z dysku do pamięci RAM. Zapis (WRITE): przesłanie porcji 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. Wiedza informatyczna jest związana z aktualną technologią!

5 Dlaczego nie można przechowywać danych w pamięci RAM?
Pamięć RAM jest chwilowa, nietrwała. Na ogół, nie wystarczający rozmiar. Duży koszt. 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 kopii backup danych i dziennika transakcji. Redundancja – ten sam rekord danych może być zapisany w wielu miejscach: dysk, RAM, backup, replika, cache w serwerze aplikacji, arkusz danych w aplikacji klienckiej. Ten sam rekord może być jednocześnie zapisany w trzech różnych miejscach! 19

6 Dyski Dostęp swobodny (random access) – w przypadku dysków; (dostęp sekwencyjny – w przypadku nośników zewnętrznych). Dane są przechowywane i przekazywane w jednostkach nazywanych blokami dyskowymi lub stronami. 20

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

8 Dyskowy model fizyczny
Model logiczny Atrybut Wiersz Tabela Pole Rekord Strona (blok) Plik (segment danych) jednostka wymiany Bufor pamięciRAM Tabela jest reprezentowana przez plik. Plik składa się ze stron. Strona składa się z rekordów. Rekord składa się z pól. Zamiast plik używa się też terminu segment Ekstent jednostka alokacji miejsca na dysku

9 Dyskowy model fizyczny - uzupełnienie
Gdy rozmiar rekordu większy niż rozmiar strony, rekord jest dzielony na części przechowywane na osobnych stronach (najlepiej sąsiadujących na dysku). 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).

10 Dyskowy model fizyczny - uzupełnienie
3. 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ę wskaźniki do nich (ich lokalizatory). Opcja IN-LINE dla obiektów LOB, które mają mały rozmiar.

11 Hierarchia nośników przechowywania danych
taśma magnetyczna 1015 dyski optyczne 1013 dyski magnetyczne pamięć elektroniczna pomocnicza 1011 Pojemność (bajty) pamięć elektroniczna główna 109 107 105 cache 103 10-9 10-6 10-3 10-0 103 Czas dostępu (sec)

12 II. Zarządzanie miejscem na dysku (stronami)
Obszar na dysku ze stronami z danymi i pusty obszar z którego można pobierać i alokować nowe ekstenty. Realizowane funkcje: Alokacja/dealokacja ekstentu. Odczyt/zapis strony o podanym adresie. Wyznaczenie strony do zapisu nowego rekordu. Aktualizacja struktur danych na dysku związanych z przechowywanymi stronami. Podstawową jednostką operacyjną jest strona 24

13 III. Zarządzanie buforami (w RAM)
Proces zgłasza zapotrzebowanie na stronę PULA BUFORƠW Strona dyskowa Wolny bufor RAM Np.. Tablice haszowana dla sprawdzania czy dana strona znajduje się w buforze DYSK BD Wybór bufora dyktowany strategią zastępowania Dane muszą być w RAM aby SZBD mógł na nich operować! Pomocnicza struktura danych: tablica par <nr_bufora, id_strony>. 4

14 Dodatkowe struktury danych
Dla każdego bufora: licznik odwołań - ile różnych procesów używa bufor w danej chwili. Na początku po umieszczeniu strony w buforze: licznik odwołań = 1 Dla każdego bufora: bit modyfikacji – czy po sprowadzeniu do pamięci RAM zawartość bufora została zmodyfikowana (stan "dirty"), co oznacza, że strona na dysku będąca źródłem zawartości bufora może już być inna niż zawartość bufora w pamięci RAM. Na początku po umieszczeniu strony w buforze: bit modyfikacji = false Ponadto, wszystkie bufory, których licznik odwołań = 0 tworzą listę wolnych buforów. Być może wstawiane na listę z opóźnieniem Lista ta jest porzadkowana np. LRU

15 Gdy procesowi użytkownika jest potrzebna strona...
Gdy nie ma jej w puli buforów: Wybierz bufor o liczniku odwołań = 0 Jeśli strona w buforze została zmieniona (bit modyfikacji = true), zapisz ją na dysk. Wczytaj potrzebną stronę w wybrany bufor. Ustaw licznik odwołań do tej strony na 1, a bit modyfikacji na false Gdy strona jest w puli buforów, zwiększ jej licznik odwołań o 1. Przekaż procesowi wskaźnik do bufora ze stroną. Blokady Jeśli można z góry przewidzieć (np. przeglądanie sekwencyjne) sprowadza się od razu kilka stron! 5

16 Zarządzanie buforami – 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 1. 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 6

17 Punkt kontrolny (checkpoint)
Proces, który co ustalony okres czasu, przepisuje zawartość listy zmodyfikowanych stron z puli buforów na dysk zmieniając ich bit modyfikacji na false.

18 Strategie zastępowania stron z listy wolnych buforów
LRU – najdłużej nie używana -- „samo-organizująca się” lista stron MRU – ostatnio używana. Sekwencyjne zalewanie puli buforów: LRU + powtarzane sekwencyjne przeglądanie pliku. # buforów < # stron oznacza, że każde żądanie strony powoduje operację We/Wy. MRU lepsze w tym przypadku. Wiersze sprowadzane przy przejściu dużej tabeli najczęściej nie będą używane przez inne procesy – lepiej stosować MRU niż LRU. W każdym buforze znajduje się strona z dysku. Jest zapotrzebowanie na nową stronę. Do którego bufora można ją sprowadzić tracąc poprzednią zawartość w RAM? LRU najbardziej naturalne, ale nie zawsze optymalne 7

19 Zarządzanie buforami (w RAM)
O szybkości działania aplikacji decyduje liczba operacji odczytu i zapisu stron na dysku. Wzrastają rozmiary pamięci RAM i w związku z tym wzrasta liczba buforów danych. Wielokrotnie używane strony są przechowywane w buforach. Gdy baza danych jest używana przez aplikację biznesową, przyjmuje się, że średnio ponad 90% potrzebnych do wykonania zapytania danych powinno znajdować się w buforach. Zarówno skompilowane instrukcje SQL jak i wyniki zapytań są zapisywane w buforach i używane wielokrotnie.

20 Format rekordu: stała długość
L1 L2 L3 L4 Adres bazowy (B) Adres = B+L1+L2 Typy pól takie same dla wszystkich rekordów w pliku; zapisane w słowniku danych (katalogu systemowym). 9

21 Format rekordu: zmienna długość
Dwa alternatywne formaty (# pól jest stała): F F F F4 4 $ Pola rozdzielone specjalnym symbolem Licznik pól F F F F4 Gdy chcemy rozszerzyć rekord o nowe pole? Tablica offsetów pól W drugim przypadku: bezpośredni dostęp do wartości i-tego pola; efektywne przechowywanie wartości null 10

22 Format mieszany Każdy rekord składa się z dwóch części: stałego i zmiennego rozmiaru zarządzanych odpowiednio przy użyciu przedstawionych poprzednio metod.

23 Format strony: rekordy stałej długości wskaźnikiem do rekordu jest bezwzględny adres
1 1 2 2 . . . Wolne miejsca . . . N M Nagłówek strony Nagłówek strony N 1 . . . 1 1 M M liczba rekordów liczba pozycji 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). 11

24 Formaty stron: rekordy zmiennej długości wskaźnikiem do rekordu jest względny adres
rid = (i,N) Strona i rid = (i,2) rid = (i,1) 20 16 24 N Wskaźnik do puli wolnych miejsc Nagłówek strony N # pozycji Tablica pozycji Można przesuwać rekordy po stronie bez zmiany rid – można także zastosować dla rekordów stałej długości. 12

25 IV. Plik rekordów PLIK: kolekcja stron, każda zawierająca zbiór rekordów: wstawianie/usuwanie/modyfikowanie rekordów, odczytywanie konkretnego rekordu (o podanym rid), wyszukiwanie wszystkich rekordów spełniających podane warunki. 13

26 IV.1 Plik nieuporządkowany (sterta, 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. Sterta Chyba ze jest indeks (wyszukiwanie) 14

27 Plik nieuporządkowany (listy) implementacja – dwie listy
Strona danych Strona danych Strona danych Strony pełne Strona pocz. Strona danych Strona danych Strona danych Strony z wolnymi miejscami Wstawianie nowego rekordu Usuwanie rekordu 15

28 Plik nieuporządkowany implementacja – katalog stron
Strona danych pocz. Katalog (bitmapa) Wstawianie nowego rekordu Usuwanie rekordu 16

29 IV.2 Plik uporządkowany (posortowany)
Rekordy są zapisywane na kolejnych stronach zgodnie z porządkiem względem pewnego klucza wyszukiwania 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 Wyszukanie rekordu mając daną wartość jego klucza wyszukiwania zależy od implementacji. Bardziej skomplikowane stają się operacje wstawienia nowego rekordu do pliku jak i aktualizacji oraz usunięcia rekordu z pliku.

30 Implementacje pliku uporządkowanego
1. Spójny obszar stron – sąsiadujących ze sobą na dysku – rekordy uporządkowane według wartości klucza wyszukiwania. Jest problem ze wstawieniem nowego rekordu i usunięciem rekordu z pliku. Jest możliwość zastosowania wyszukiwania binarnego. 1 3 5 8 34 2. Lista stron (lub ekstentów) – rekordy uporządkowane według wartości klucza wyszukiwania. Łatwe wstawienie nowego rekordu jak i usunięcie rekordu z pliku. Nie ma bezpośrednio możliwości zastosowania wyszukiwania binarnego. Strony nie musza być w pelni wypelnione Wstawianie nowego rekordu Usuwanie rekordu 1 3 5 8 34

31 Implementacja pliku uporządkowanego
3. Lista stron (lub ekstentów) z indeksem – rekordy uporządkowane według wartości klucza. W indeksie dla każdej strony zapisany najmniejszy klucz i jej adres – ułatwione wyszukiwanie. Łatwe wstawienie nowego rekordu i usunięcie rekordu z pliku. Poziom wyszukiwania Indeks Można rozpoczynać od reprezentacji pełny ekstent, z pozostawianiem miejsca na nowe rekordy; z czasem gdy miejsca te zostaną wypełnione przez wstawiane rekordy, dołączane są nowe strony, niekoniecznie położone obok siebie na dysku – przechodząc w ten sposób w reprezentację listy stron. Poziom: INSERT,DELETE, UPDATE 34 45

32 IV.3 Plik haszowany Plik jest kolekcją “segmentów” (ang. bucket). Segment = strona główna plus zero lub więcej stron nadmiarowych. Funkcja haszująca h: h(r) = “segment” do którego wpada rekord r. h bierze pod uwagę tylko klucz wyszukiwania rekordu r. Wstawianie nowego rekordu Usuwanie rekordu Dzieląc duzy zbiór na dużo małych, problem dotyczący dużego zbioru sprowadza się do problemu dotyczącego małego zbioru, który można już rozwiązać w pamięci RAM. 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


Pobierz ppt "Fizyczna organizacja danych w bazie danych Wykład 7"

Podobne prezentacje


Reklamy Google