-O 1. DZIEDZINA SYSTEMÓW BAZ DANYCH
;obie wzajemnie przeszkadzać oraz żc żadne dane nie zostaną utracone, nawet eśli nastąpi awaria systemu. Współdziała on z modułem obsługi zapytań, jonicważ musi mieć dostęp do szczegółów dotyczących tych danych, na któ-ych przetwarza się bieżące zapytania (w celu uniknięcia konfliktów). Może ię zdarzyć, że część przetwarzania będzie musiała zostać opóźniona, aby nic )owstał konflikt.
U góry rysunku 1.1 można zobaczyć trzy rodzaje wejść do systemu DBMS:
1. Zapytania. Są to pytania o dane. Mogą one być sformułowane dwojako:
a) Poprzez interfejs zapytań bezpośrednich. Na przykład relacyjny DBMS umożliwia wprowadzenie zapytań w SQL, które są następnie przekazywane do modułu przetwarzania zapytań, który z kolei tworzy odpowiedź.
b) Poprzez interfejsy programów użytkowych. Typowy DBMS umożliwia programiście utworzenie programu użytkowego, który poprzez wywołania procedur DBMS tworzy zapytania do bazy danych. Na przykład agent posługujący się systemem rezerwacji lotniczych uruchamia program użytkowy, który tworzy zapytanie do bazy danych dotyczące dostępności rejsów. Zapytania mogą być formułowane dzięki specjalizowanemu interfejsowi, który na ogół składa się z formularzy z pustymi polami, przeznaczonymi do wypełnienia konkretnymi danymi, np. nazwą miasta, terminem itp. Nie można w ten sposób zadać zupełnie dowolnego pytania, ale jest znacznie łatwiej sformułować typowe zapytanie poprzez taki interfejs, niż. formułować zapytanie bezpośrednio w języku $QL.
2. Aktualizacje. Są to operacje zmiany danych. Tak jak w przypadku zapytań można je wprowadzać do systemu poprzez interfejsy zapytań bezpośrednich lub poprzez interfejsy programów użytkowych.
3. Modyfikacje schematu. Polecenia tego rodzaju wydaje specjalnie uprawniona osoba nazywana administratorem bazy danych, której wolno zmieniać schemat bazy danych i tworzyć nowe bazy danych. Na przykład, jeśli agencje rządowe wezwą banki do udokumentowania wypłaty odsetek zgodnie z numerami ubezpieczenia społecznego klientów', to bank może zażądać dodania do relacji opisującej klientów nowego atrybutu o nazwie nrUbezpieczer.ra.
W prostych systemach baz danych moduł zarządzania pamięcią może yć tym samym co system plików podstawowego systemu operacyjnego. ;dnak na ogół, przynajmniej w pewnych okolicznościach, DBMS bezpo-cdnio zarządza przestrzenią na dysku, co jest podyktowane względami efektywności. Moduł zarządzania pamięcią składa się z dwóch części: modułu zarządzania buforami oraz modułu zarządzania plikami.
1. Moduł zarządzania plikami przechowuje dane o miejscu zapisania plików na dysku i na polecenie modułu zarządzania buforami przesyła zawartość bloku lub bloków, gdzie jest zapamiętany żądany plik. Proszę sobie przypomnieć, że dyski zazwyczaj są zorganizowane w postaci bloków dyskowych, czyli spójnych obszarów o stosunkowo dużej pojemności 21' lub 214 bajtów (od 4000 do 16000 bajtów).
2. Moduł zarządzania buforami obsługuje pamięć operacyjną. Moduł zarządzania plikami przekazuje bloki danych z dysku, a moduł zarządzania buforami wybiera w pamięci operacyjnej strony, które zostaną przydzielone dla wybranych bloków. Blok z dysku może być przez chwilę przechowany w pamięci operacyjnej, ale musi zostać przesłany z powrotem na dysk, gdy tylko pojawi się potrzeba zapisania w to miejsce pamięci operacyjnej innego bloku. Powrót bloku na dysk może nastąpić również w wyniku żądania modułu obsługi transakcji (zob. p. 1.2.4).
Zadaniem modułu zarządzania zapytaniami jest przekształcenie zapytania lub operacji na bazie danych, wyrażanych zazwyczaj w języku bardzo wysokiego poziomu (np. jako zapytanie SQL), w ciąg poleceń żądających dostarczenia określonych danych, takich jak konkretne krotki zadanej relacji lub fragmenty indeksu relacji. Często najtrudniejszą operacją przetwarzania zapytań jest optymalizacja zapylania, tzn. wybór dobrego planu pytania lub ciągu poleceń do systemu zarządzania pamięcią, którego wykonanie wygeneruje właściwa, odpowiedź w możliwie najkrótszym czasie.
PRZYKŁAD 1.2
Załóżmy, że bank opracował bazę danych z dwiema relacjami:
1. Klienci: jest to tabela, która zawiera nazwiska klientów banku, ich numer polisy ubezpieczenia społecznego oraz adres.
2. Konta: jest to tabela zawierająca dane o kontach, obejmujące numer konta, bilans oraz numer polisy ubezpieczenia społecznego właściciela konia. Warto zauważyć, że każde konto ma głównego właściciela, którego numer polisy służy celom podatkowym; mogą istnieć jeszcze inni właściciele konta, ale na podstawie tych dwóch relacji nie można o nich uzyskać informacji.
Załóżmy rów-nież, że /.ostało utworzone zapytanie „znaleźć bilanse tych ws/ystkićh kont. których głównym właścicielem jest Anna Nowak”. Moduł