Fizyczna organizacja danych w bazie danych Wykład 7

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Schemat blokowy M START KONIEC
INDEKSY I SORTOWANIE ZEWNĘTRZNE
Elementarne struktury danych Piotr Prokopowicz
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
Microsoft Office Access
Systemy plików FAT12, FAT16, FAT32, NTFS.
Dynamiczne struktury danych 1
Fizyczna organizacja danych w bazie danych Wykład 7
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Budowa Komputera.
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Systemy plików.
Teoria relacyjnych baz danych
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Systemy plików FAT12, FAT16, FAT32, NTFS.
Magazyny pamięci.
Zbiór do posortowania mieści się w pamięci
Podstawy programowania II
Bazy danych.
Zasada działania komputera
Temat 19: Organizacja informacji w bazie danych – część 2.
dr hab. Ryszard Walkowiak prof. nadzw.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Bazy danych podstawowe pojęcia
Temat 19: Organizacja informacji w bazie danych – część 1.
Budowa komputera.
SQL - Structured Query Language
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Nośniki informacji i akcesoria komputerowe
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
Komendy SQL do pracy z tabelami i bazami
MICROSOFT Access TWORZENIE MAKR
Bazy danych - podstawowe pojęcia
Bazy danych Microsoft access 2007.
PL/SQL – dalsza wędrówka
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Definiowanie kluczy w tabelach RBD
System plików.
Excel Filtrowanie Funkcje bazodanowe
Procesor, pamięć, przerwania, WE/WY, …
Projektowanie relacyjnych baz danych – diagramy związków encji
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Komendy SQL do pracy z danymi
Bazy danych Podstawy relacyjnych baz danych Autor: Damian Urbańczyk.
Optymalna konfiguracja Microsoft SQL Server 2014
Operacje na plikach i folderach
Projektowanie postaci formularza:
BAZY DANYCH MS Access.
Tryby adresowania i formaty rozkazów mikroprocesora
„Filtry i funkcje bazodanowe w EXCELU”
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Prezentacja programu PowerPoint
Bazy danych. Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów Baza.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Temat: Tworzenie bazy danych
Indeksy haszowe. Wprowadzenie Podstawowa idea techniki haszowania polega na wykorzystaniu funkcji haszowej, która odwzorowuje wartości atrybutu haszowego.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Listy.
Indeksy.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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

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

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

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ą!

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

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

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.

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

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

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.

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)

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

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

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

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

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

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.

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

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.

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

Format rekordu: zmienna długość Dwa alternatywne formaty (# pól jest stała): F1 F2 F3 F4 4 $ Pola rozdzielone specjalnym symbolem Licznik pól F1 F2 F3 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

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.

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 ... 3 2 1 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

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 . . . 2 1 # 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

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

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

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

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

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.

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 12 19 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 12 19 34

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. 1 5 12 34 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 1 3 4 5 8 9 12 19 34 45

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