Architektura systemu zarządzania bazą danych
Wykonanie:
Katarzyna Gębal
Joanna Michałów
Wstęp
W porównaniu z innymi systemami baz danych MySQL jest stosunkowo prosty w użyciu, a wysiłek, który trzeba włożyć w jego zainstalowanie, również nie jest zbyt duży. Prawdopodobnie to właśnie prostota jest źródłem popularności MySQL wśród użytkowników, którzy nie są ani nie zamierzają być programistami.
Jednak MySQL nie będzie działać bez nadzoru użytkownika. Cały czas ktoś musi obserwować system, sprawdzając , czy działa sprawnie i wydajnie, a także rozwiązuje problemy, które mogą się pojawić w czasie pracy systemu. Dlatego ta praca przeznaczona jest dla osób odpowiedzialnych za działanie MySQL w miejscu pracy.
W naszej pracy chciałybyśmy przedstawić różne aspekty administrowanie systemu MySQL.
Mowa będzie o przeglądaniu spraw i obowiązków związanych z administrowaniem systemem, jak również dostarczymy informacji, jak sobie z nimi radzić.
CZĘŚĆ
I
Relacyjne bazy danych
Relacyjne bazy danych są bardziej wydajniejsze niż pliki tekstowe, a ich obsługa za pomocą języka zapytań SQL jest prosta i przyjemna. Relacyjne bazy danych składają się z kolumn i rekordów. Każda kolumna ma swoja nazwę, a każdy rekord przechowuję inną propozycję. Pola są określonego typu, dlatego można w nich przechowywać teksty, liczby, daty czy obrazki. Klucze podstawowe umożliwiają jednoznaczną identyfikację danego rekordu. W relacyjnej bazie danych kolejność rekordów nie ma znaczenia, ponieważ za pomocą języka SQL można nie tylko wybrać interesujące rekordy, ale również je posortować.
FIZYCZNA ORGANIZACJA DANYCH W BAZACH DANYCH
Model fizyczny bazy danych oparty jest na pojęciu pliku i rekordu:
PLIK-składa się z rekordów o 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.
Typowymi 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 z podaną wartością w danym polu.
PAMIĘĆ ZEWNĘTRZNA (dyskowa)- jest podzielona na równej wielkości bloki. Każdy blok jest identyfikowany przez swój adres na dysku. Plik zajmuje jeden lub więcej bloków. Rekord jest identyfikowany łącznie przez adres bloku oraz adres wewnątrz bloku.
Dane w bazie danych są na stałe przechowywane w plikach na dysku. Aby móc je użyć lub przetworzyć, muszą zostać przesłane do buforów w pamięci wewnętrznej. Podstawową cecha pamięci dla bazy danych jest jej dwupoziomowość. Ten sam blok danych może być jednocześnie zapisany na dysku i w buforze w pamięci wewnętrznej. Oprócz standardowej organizacji bloków pamięci system zarządzania bazą danych ma także do czynienia z dużymi obiektami, często obsługiwanymi przez inne wyspecjalizowane aplikacje( np. edytor tekstów, obrazów czy dźwięków). Na ogół duże obiekty są przechowywane osobno i tylko wskaźniki do nich znajdują się w zwykłych blokach z danymi.
Operacją zajmującą najwięcej czasu w bazach danych jest przesłanie bloku między pamięcią zewnętrzną i wewnętrzną . Operacja ta nosi nazwę dostępu do bloku. Szybkość operacji na bazie danych ocenia się liczbą dostępów do bloków.
Podstawowe struktury danych dla modelu fizycznego bazy danych:
Ø PLIKI NIEUPORZĄDKOWANE (organizacja heap):
Rekordy są wpisywane po kilka do kolejnych bloków. Nowy rekord wstawia się do pierwszego bloku w którym jest wolne miejsce. Rekord usuwa się przez ustawienie specjalnego bitu usunięcia na 1 (wydzielonego w każdym rekordzie). Gdy nie ma wskaźników do usuwanego rekordu, zwalniane miejsce może być użyte przez nowy rekord. Wyszukiwanie w oparciu o wartość jednego lub kilku pól jest kosztowne- trzeba po kolei sprawdzać wszystkie rekordy w pliku(sprowadzając je do pamięci wewnętrznej). Koszt wyszukiwania to n/k dostępów do bloków. Organizacja nieuporządkowana jest dobra, gdy rekord pliku są przeglądane sekwencyjnie w dowolnej kolejności(np. przy złączaniu).
Ø PLIKI HASZOWANE ( MIESZANE): Plik składa się ze skorowidza i zbioru list bloków- po jednej dla każdej pozycji skorowidza.
Funkcja haszująca (mieszająca) podaje dla wartości klucza rekordu numer listy bloków. Na podstawie numeru listy bloków jest odczytywany ze skorowidza fizyczny adres listy bloków, na której dany rekord jest umieszczany. Postępując podobnie, możemy go wyszukać w oparciu o jego klucz.
Przy odpowiednio dobranej liczbie pozycji w skorowidzu, a co za tym idzie, liczbie list bloków, wyszukiwanie rekordu o danej wartości klucza jest realizowane w stałym czasie(podobnie modyfikacja, wstawianie i usuwanie) dokładnie średnio 1+n/(k*B) dostępów do bloków: 1 blok skorowidza i n/(k*B) bloków list kolizji (gdzie B jest liczba pozycji w skorowidzu).
W reprezentacji używającej haszowania nie możemy przetwarzać rekordów w kolejności uporządkowanej względem wartości klucza.
Ø PLIKI INDEKSOWANE:
Rekordy są przechowywane w tzw. Pliku głównym w kolejności uporządkowanej lub nie, z dobudowanym specjalnym plikiem indeksującym czyli indeksem.:
ü METODA ISAM (INDEKSOWO- SEKWENCYJNA):
Rekordy są przechowywane w pliku głównym w kolejności uporządkowanej względem wartości klucza. Indeks zawiera posortowany ciąg kluczy rekordów znajdujących się jako pierwsze w kolejnych blokach pliku głównego razem a z adresami tych bloków.
W poniższym przykładzie mamy do czynienia z czterema blokami pliku głównego, z podanymi tylko kluczami rekordów i z tylko jednym blokiem indeksu.
INDEKS
(1,b1)(9,b2) (20,b3)(77,b4)
b1 b2 b3 b4
1 3 5 7
9 1113 15
20 21 27 60
77 89 ……
PLIK GŁÓWNY
Wyszukiwanie rekordu o danej wartości klucza odbywa się najpierw w pliku indeksującym (zawierające posortowane klucze).
Po zidentyfikowaniu bloku pliku głównego, w którym może się znajdować rekord o danym kluczu, szukamy rekordu w zlokalizowanym bloku. Wyszukiwanie ma koszt 1+log(n/kI2) dostępów do bloków [ 1 blok pliku głównego i log (n/kI2) bloków indeksu ].
Wypisywanie rekordów w kolejności uporządkowane jest bezpośrednie. Wstawianie rekordów może być trudne, gdy cały blok pliku głównego jest już zajęty. Dlatego bloki wypełnia się tylko częściowo, albo zezwala się na doczepianie dodatkowych bloków.
ü B-DRZEWA:
Aby uczynić strukturę indeksu bardziej elastyczną (aby umożliwić wstawianie i usuwanie bez ograniczeń) , nad plikiem głównym rozbudowuje się hierarchię indeksów mającą strukturę drzewa , nazywaną B-drzewem.. W drzewie tym bloki zawierające rekordy pliku głównego znajdują się w liściach na najniższym poziomie. Wszystkie liście są na tej samej głębokości (tym samym ostatnim poziomie). Indeks pierwszego składa się z jednego bloku zawierającego indeks do bloków drugiego poziomu. Indeks drugiego poziomu stanowi indeks do bloków trzeciego poziomu itd.
Pierwszy poziom
Drugi poziom
--------------------------------
Przedostatni poziom
Poziom pliku głównego
Poziom indeksu składa się z odpowiedniej wartości klucza i wskaźnika. Każdy blok jest zapełniony rekordami co najmniej w połowie. Wyszukiwanie polega na przejściu ścieżką w dół drzewa od korzenie do liścia-liczba dostępów do bloku =1+log(n/k)/log k < 1+log n..
Wstawianie da się też wykonać w czasie logarytmicznym od n gdyż dotyczy ono jednej ścieżki od korzenia do liścia drzewa. Jednak może ona wymagać dostawienia dodatkowych bloków na każdym poziomie. Usuwanie rekordu dotyczy też jednej ścieżki w B-drzewie .Gdy w jakimś bloku pozostanie mniej niż k/2 rekordów, usuwa się ten blok z drzewa, a rekordy dostawia się do innych bloków.
ü B-DRZEWA jako INDEKS GĘSTY:]
W bazie danych zachodzi potrzeba zakładania indeksów względem innych kluczy .Dla każdego takiego klucza tworzy się wówczas tak zwany indeks gęsty składający się z par (klucz, p), gdzie klucz — wartość odpowiedniego klucza rekordu a p wskaźnik do niego w pliku głównym , po wszystkich rekordach pliku głównego. Wielopoziomowe drzewo B-drzewo buduje się nad indeksem gęstym – pozostawiając plik główny niezmieniony. Operacje wyszukiwania, wstawiania, usuwania i modyfikacji przebiegają podobnie jak poprzednio - do kosztu dochodzi jeden dodatkowy dostęp do bloku.
Toteż w bazie danych potrzebne są też indeksy względem pól, które nie tworzą klucza. Rekordy Indeksu gęstego maja postać (klucz, p1,......,pk) gdzie p1,.....pk są wskaźnikami do rekordów w pliku głównym, w którym wartość klucza indeksu jest równa wartości klucz. Taki indeks gęsty razem z plikiem głównym tworzą tak zwany plik odwrócony.
GRUPOWANIE REKORDÓW RÓŻNYCH TYPÓW
...
grzegorj