Fizyczna organizacja danych w bazie danych Wykład 7

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
C++ wykład 2 ( ) Klasy i obiekty.
Schemat blokowy M START KONIEC
INDEKSY I SORTOWANIE ZEWNĘTRZNE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
PROGRAMOWANIE STRUKTURALNE
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 2000 Normalizacja Paweł Górczyński 2005.
MS Access 2000 Piotr Górczyński Dane w tabelach.
Microsoft Office Access
Kurs Pascala – spis treści
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy plików Bibliografia:
Dynamiczne struktury danych 1
BD-LAB6 Wojciech Pieprzyca
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
Systemy plików.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Podstawy programowania II
Magazyny pamięci.
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.
Systemy plików FAT, FAT32, NTFS
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
Zarządzanie informacją
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
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.
Podstawowe informacje
Definiowanie kluczy w tabelach RBD
System plików.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Procesor, pamięć, przerwania, WE/WY, …
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.
Pamięć RAM Pamięć RAM.
Pamięć SRAM.
Komendy SQL do pracy z danymi
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.
Temat: Tworzenie bazy danych
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Listy.
Indeksy.
Fizyczna organizacja danych w bazie danych Wykład 7
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 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 - 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.

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.

Dlaczego nie można przechowywać danych w pamięci 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. 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 taśm. 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 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.

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) Pole Rekord Strona (blok) Plik

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

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.

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)

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. Podstawową jednostką operacyjną jest strona 24

Zarządzanie buforami (w RAM) Proces zgłasza zapotrzebowanie na stronę PULA BUFORƠW Strona dyskowa Wolna ramka RAM Np.. Dwie tablice haszowane DYSK BD Wybór ramki dyktowany strategią zastępowania Dane muszą być w RAM aby SZBD mógł na nich operować! Tablica par <nr_ramki, id_strony>. 4

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. Być może wstawiane na listę z opóźnieniem Lista ta jest porzadkowana np.. LRU

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

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. LRU najbardziej naturalne, ale nie zawsze optymalne 7

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.

Formaty rekordów: 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

Formaty rekordów: 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 Tablica offsetów pól W drugim przypadku: bezpośredni dostęp do wartości i-tego pola; efektywne przechowywanie wartości null. 10

Formaty stron: rekordy stałej długości 1 1 2 2 . . . Wolne miejsca . . . N N M 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 rid = (i,N) Strona i rid = (i,2) rid = (i,1) 20 16 24 N Wskaźnik do puli wolnych miejsc 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

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

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

Plik posortowany Rekordy 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.

Implementacja pliku posortowanego 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. Strony nie musza być w pelni wypelnione Wstawianie nowego rekordu Usuwanie rekordu 1 3 5 8 12 19 34

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 niektóre pola r, nazywane polami wyszukiwania. Wstawianie nowego rekordu Usuwanie rekordu 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