1) Opisz metody dostępu systemów bazodanowych do źródeł danych

Transkrypt

1) Opisz metody dostępu systemów bazodanowych do źródeł danych
1) Opisz metody dostępu systemów bazodanowych do źródeł danych
(RAM, bufory dyskowe, dyski).
PAMIĘĆ RAM:
ƒ Pamięć RAM wykorzystywana do aktualnie przetwarzanych danych, ponieważ procesor ma do RAM'u
bezpośredni dostęp a to wpływa na szybkość przetwarzania danych.
ƒ Koszt pamięci ram jest wysoki – przy olbrzymich bazach danych nie ma szans aby cała zawartość
bazy zmieściła się w pamięci RAM.
ƒ Pamięć RAM jest ulotna, dane muszą być zabezpieczone w pamięci nielotnej (dyski twarde)
BUFORY DYSKOWE:
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. Dane przetwarzane przez bazę danych muszą się
znajdować w pamięci RAM.
Oprócz puli ramek w pamięci RAM są przechowywane:
ƒ tablica par: <frame, page_id >
ƒ 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łan=0 tworzą listę wolnych ramek
DYSKI:
ƒ Bazy danych zapisują informacje na dyskach.
ƒ Dwie podstawowe operacje: READ (transfer z dysku do pamięci RAM) oraz WRITE (transfer z
pamięci RAM na dysk) są kosztowne (czas) i muszą być starannie planowane.
ƒ Dane są zapisywane i odzyskiwane z dysku w jednostkach zwanych blokami dyskowymi lub stronami.
ƒ Czas dostępu do strony danych jest zależny od jaj pozycji na dysku:
SEEK TIME (przesunięcie głowicy dyskowej do określonej ścieżki na dysku) – rzędu 1-20ms
ROTATION TIME (oczekiwanie na blok danych w czasie obrotu głowicy) – rzędu 0-10ms
TRANSFER TIME (przeniesienie aktualnych danych z lub na dysk) – 1ms na stronę 4kb
ƒ Istotne obniżenie czasów SEEK i ROTATION – dostępne rozwiązania programowe i sprzętowe.
ORGANIZACJA STRON NA DYSKU:
Koncepcja „next block” – bloki danych umieszczane na tej samej ścieżce, na tych samych cylindrach lub na
przylegających cylindrach.
Bloki danych w pliku są umieszczane sekwencyjnie w celu zminimalizowania czasu dostępu do nich.
METODY DOSTĘPU DO DANYCH NA DYSKU:
1) Przegląd liniowy
2) dostęp za pomocą adresu rekordu
2. Opisz systemy organizacji danych w plikach dyskowych.
Wyróżniamy:
- pliki nieuporządkowane (heap file)
- pliki posortowane
- pliki haszowane
PLIKI NIEUPORZĄDKOWANE (HEAP FILE):
ƒ
ƒ
ƒ
ƒ
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.
Organizacja nieuporządkowana jest wygodna przy wykonywaniu zapytań dotyczących wszystkich
rekordów lub większości rekordów: SELECT * FROM emp;
PLIKI POSORTOWANE:
ƒ
ƒ
Rekordy 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;
ƒ
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.
WADY:
Problemem jest wstawianie i usuwanie rekordów:
– wstawianie - należy znaleźć odpowiednia pozycje w pliku względem pola uporządkowania,
a następnie zapewnić wolne miejsce w pliku. W tym celu należy przesunąć ś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 kolejne rekordy są wstawiane do pliku głównego.
– usuwanie rekordów - problem mniej istotny, gdy wykorzystuje się znaczniki usunięcia
PLIKI HASZOWANE:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Plik jest kolekcja segmentów (lub kubełków jak było na wykładach;)
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, zastosowanej do
klucza wyszukiwania rekordu, którym jest jedno lub więcej pól rekordu.
Funkcja haszująca: h(klucz wyszukiwania rekordu r)= adres segmentu, do którego wpada rekord r
Organizacja pliku haszowanego jest użyteczna przy wyborze rekordu z pliku w oparciu o wartość lub
wartości pewnych pól rekordu np.:
SELECT * FROM emp WHERE ename=&nazwisko;
Organizacja rekordów w pliku haszowanym nie zachowuje kolejności wartości klucza wyszukiwania

Podobne dokumenty