Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania



Podobne dokumenty
sprowadza się od razu kilka stron!

Fizyczna organizacja danych w bazie danych

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Podstawy Informatyki. Metody dostępu do danych

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

dr inż. Jarosław Forenc

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Systemy operacyjne III

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

System plików przykłady. implementacji

Bazy danych wykład ósmy Indeksy

Tabela wewnętrzna - definicja

Haszowanie (adresowanie rozpraszające, mieszające)

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

WPROWADZENIE DO BAZ DANYCH

Definicja pliku kratowego

Zarządzanie pamięcią operacyjną

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Wykład 10: Fizyczna organizacja danych w bazie danych

System plików przykłady implementacji

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Optymalizacja poleceń SQL Metody dostępu do danych

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Zarządzanie pamięcią w systemie operacyjnym

Normalizacja baz danych

System plików. Warstwowy model systemu plików

Bazy danych. Andrzej Łachwa, UJ, /15

Przykładowe B+ drzewo

Tadeusz Pankowski

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wykład 2. Relacyjny model danych

Architektura komputerów

Podstawy. Pamięć wirtualna. (demand paging)

Baza danych. Baza danych to:

System plików warstwa logiczna

Stronicowanie w systemie pamięci wirtualnej

Bazy danych Wykład zerowy. P. F. Góra

Podstawowe wiadomości o systemach plików.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Sortowanie zewnętrzne

PODSTAWY INFORMATYKI wykład 5.

Schematy zarzadzania pamięcia

Podstawowe struktury danych

5. Bazy danych Base Okno bazy danych

INDEKSY I SORTOWANIE ZEWNĘTRZNE

2017/2018 WGGiOS AGH. LibreOffice Base

Materiały do laboratorium MS ACCESS BASIC

Bazy danych - BD. Organizacja plików. Wykład przygotował: Robert Wrembel. BD wykład 5 (1)

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Wprowadzenie do baz danych

Pliki. Operacje na plikach w Pascalu

System Oracle podstawowe czynności administracyjne

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Dynamiczne struktury danych

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Architektura komputerów

Fizyczna struktura bazy danych w SQL Serwerze

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Systemy plików FAT, FAT32, NTFS

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Bazy danych TERMINOLOGIA

Baza danych. Modele danych

Sortowanie przez wstawianie Insertion Sort

Technologie informacyjne (3) Zdzisław Szyjewski

QUERY język zapytań do tworzenia raportów w AS/400

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

PROGRAM RETROKONWERSJI ZDALNEJ

Budowa systemów komputerowych

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Architektura komputerów

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

T A B E L E i K W E R E N D Y

Technologie informacyjne (3) Zdzisław Szyjewski

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Aktualizacja baz danych systemu qs-stat

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Technologia informacyjna

Złożoność obliczeniowa zadania, zestaw 2

Zarządzanie pamięcią operacyjną

dr inż. Jarosław Forenc

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Transkrypt:

Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych 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 Małgorzata Krętowska Katedra Oprogramowania e-mail: m.kretowska@pb.edu.pl Model logiczny i fizyczny Model logiczny bazy danych 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. iektóre pola są wyróżnione jako klucz rekordu - ich wartości jednoznacznie identyfikują cały rekord. Podstawowe operacje na pliku wstawianie usuwanie modyfikacja wyszukiwanie Operacje na pliku 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 4 Mechanizmy składowania 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, ale wiąże się z ograniczoną pojemnością Drugorzędny mechanizm składowania - dyski magnetyczne, dyski optyczne oraz taśmy urządzenia te charakteryzują się większą pojemnością, mniejszymi kosztami i oferują wolniejszy dostęp do danych niż mechanizm podstawowy. Dane nie mogą być przetwarzane bezpośrednio przez procesor główny Dyski 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 zależy 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. 5 6

Taśmowe urządzenia pamięciowe Dyskowy model fizyczny Dostęp sekwencyjny - aby uzyskać dostęp do n-tego bloku na taśmie najpierw musimy przejrzeć wcześniejsze n-1 bloków. ie są przeważnie wykorzystywane do przechowywania danych bieżących ale do archiwizacji baz danych Atrybut Wiersz (obiekt) Pole Rekord Strona (blok) Relacja Plik Porównanie pojęć poziomu logicznego i fizycznego 7 8 Dyskowy model fizyczny 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) 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ólny klucz. 9 Moduł zarządzania miejscem na dysku W pliku mamy dwa rodzaje stron: strony 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: odczyt strony zapis strony pobranie strony do zapisu nowego rekordu alokacja ciągu stron (położonych spójnie na dysku) 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. 10 Zarządzanie buforami danych (w RAM) 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 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 Działania modułu zarządzania buforami 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 11 1

Działania modułu zarządzania buforami Gdy zmienia się zawartość ramki: 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ę kandydatem do zastąpienia, gdy jej licznik odwołań =0. Zostaje wtedy wstawiona na listę wolnych ramek 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 Formaty rekordów 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ę, że 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 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, a przez to różnych rozmiarach (klastry) 13 14 Zapis rekordu o stałej długości Zapis rekordu składa się ze spójnego obszaru zawierającego ciągi pól P 1,.., P n o stałych rozmiarach D 1,.., D n Mając adres bazowy (początek rekordu) B łatwo można obliczyć początek i-tego pola jako B+D 1 +...+D i-1. P 1 P P 3 P 4 Zapis rekordu o zmiennej długości Zapis rekordu o zmiennej długości można reprezentować przez zapis o stałej długości (każde pole będzie reprezentowane 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 D 1 D D 3 D 4 Adres bazowy (B) Adres=B+D 1 +D P 1 P P 3 P 4 D 1 $ D 3 $ 15 16 Zapis rekordu o zmiennej długości a początku rekordu umieszczamy tablicę wskaźników do początków kolejnych pól, wówczas uzyskujemy bezpośredni dostęp do wartości i-tego pola efektywne przechowywanie wartości ull Zapis rekordu z polami opcjonalnymi Jeżeli liczba pól w rekordzie jest duża, ale liczba pól 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 P 1 P P 3 azwisko=kowalski $ Wiek=5 $ Zarobki=1500 % oddziela nazwę pola od jego wartości oddziela pola kończy rekord 17 18

Zapis rekordów różnych typów Każdy rekord zostaje poprzedzony wskaźnikiem typu rekordu Rozmieszczenie rekordów w blokach Rekordy pliku muszą być rozmieszczane w blokach dyskowych (stronach), ponieważ blok jest jednostką przesyłania danych między dyskiem a pamięcią Zapis rekordu w jednej z omawianych postaci Gdy rozmiar bloku jest większy od rozmiaru rekordu, wówczas każdy blok będzie zawierał wiele rekordów Wskaźnik typu rekordu Zakładając, że rozmiar bloku wynosi B bajtów, a rekordu R, gdzie R<=B, wówczas można określić współczynnik bloku dla pliku: bfr = floor(b/r) Rozmiar nieużywanej przestrzeni wynosi wówczas B-(bfr R) bajtów 19 0 Rozmieszczenie rekordów w blokach Rozmieszczenie rekordów w blokach Organizacja segmentowa bloku wykorzystuje nieużywaną przestrzeń bloku w ten sposób, że część rekordu jest przechowywana w jednym bloku, a reszta w drugim wskaźnik znajdujący 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. Organizacja niesegmentowa bloku 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 zmiennej długości możliwa jest zarówno organizacja segmentowa jak też niesegmentowa (zależy od przeciętej długości rekordu) Blok i Rekord 1 Rekord Rekord 3 Rekord 4 P Blok i+1 R 4 (reszta) Rekord 5 Rekord 6 Rekord 7 P Blok i Rekord 1 Rekord Rekord 3 Blok i+1 Rekord 4 Rekord 5 Rekord 6 1 Format strony dla rekordów stałej długości Format strony dla rekordów stałej długości Dwa alternatywne formaty: najpierw są zgrupowane wszystkie miejsca zajęte a potem wolne miejsca zajęte 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 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) identyfikujący jego położenie na dysku jest określany następująco: rid=<id_strony, numer pozycji na stronie> 1 Wolne miejsce Liczba rekordów 1 M 1 0 1... 0 1 1 1 M M... 3 1 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. 3 4

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). ie zmienia to indeksu i,czyli nie zmienia również identyfikatora rekordu rid. Rid=(i,) Strona i Rid=(i,1) Metody organizacji pliku rekordów Podstawowa różnica pomiędzy różnymi 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 0... 13 4 Wskaźnik do puli wolnych miejsc Tablica pozycji Liczba pozycji 5 6 Plik nieuporządkowany Rekordy są przechowywane na stronach pliku w dowolnym porządku nowy rekord jest wstawiany do pierwszej strony, na której 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 pracownik order by pensja select * from pracownik where pensja>000 wówczas do wyszukania odpowiednich rekordów można użyć wyszukiwania binarnego na blokach a nie na rekordach (uzyskanie dostępu do log (b) bloków, gdzie b - liczba bloków w pliku. 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/ bloków) 7 8 Pliki posortowane Problem - wstawianie i usuwanie rekordów 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ąć średnio połowę rekordów w pliku. Poprawa wydajności przez wykorzystanie tymczasowego pliku nieuporządkowanego tzn pliku przepełnienia. owe rekordy są wstawiane do pliku przepełnienia - na jego koniec. Okresowo plik jest sortowany i kolejne rekordy są wstawiane do pliku głównego =>zwiększona złożoność operacji wyszukiwania usuwanie rekordów - problem mniej istotny, gdy wykorzystuje się znaczniki usunięcia Pliki haszowane 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, 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 9 30

Plik haszowany Plik haszowany klucz h 0 1 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 pracownik where nazwisko=&nazwisko Organizacja rekordów w pliku haszowanym nie zachowuje kolejności wartości klucza wyszukiwania M-1 Strony główne Strony nadmiarowe 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. 31 3