446 7. S YSTfcMOWŁ A2>reK I T J!;/.! C5VL.
PRZYKl.AD7.18
Będziemy kontynuować rozważania na temat rezerwowania miejsc, rozpoczęte w przykładach 7.16 i 7.17. Przy założeniu, że funkcja wykonuje się przy poziomie izolacji - odczyt powtarzalny, miejsce, które było dostępne przy pierwszym wykonaniu zapytania, pozostaje niczajęte przy ponawianiu zapytania.
Załóżmy jednak, że relacja Rejsy zmieniła się. Na przykład mogły zostać zmienione samoloty i w ten sposób mogła się zwiększyć liczba dostępnych miejsc albo niektóre rezerwacje mogły zostać na przykład odwołane. Wówczas w odpowiedziach na kolejne zapytania mogą się pojawić nowe krotki z dostępnymi miejscami.
□
Ćwiczenie 7.2.1. Wszystkie ćwiczenia z tego rozdziału dotyczą następujących dwóch relacji:
Produkt(producent, model, typ)
PC (model, szybkość, ram, hd, cci, cena)
Należy naszkicować programy wykonujące poniższe zadania, stosując instrukcje SQI-osadzanc w dowolnym języku podstawowym. Należy pamiętać o korzystaniu z instrukcji COMMiT i RCLLBACK wszędzie tam, gdzie jest to niezbędne, oraz zaznaczeniu we właściwych miejscach, żc transakcje są tylko do odczytu.
a) Dla danych wartości szybkości i rozmiaru RAM (jako argumentów' funkcji) należy wyszukać wszystkie PC o tej charakterystyce oraz wydrukować numer modelu i cenę każdego z nich.
*b) Dysponując numerem modelu, należy usunąć go z obu relacji Produkt i ?c.
c) Dysponując numerem modelu, należy zwiększyć jego cenę o 100 $.
d) Przy zadanych wartościach: producenta, numeru modelu, szybkości, rozmiaru RAM, rozmiaru dysku twardego, szybkości CD oraz cenie należy stwierdzić, że ten model nic występuje w bazie. Jeśli jednak występuje, to należy podać komunikat dla użytkownika. Jeśli takiego modelu nic ma w bazie, to należy wstawić dane o tym produkcie do tabel Produkt i PC.
IĆwiczcnie 7.2.2. Dla każdego programu /. ćwiczenia 7.2.1 należy omówić problem niepodzielności, który może wystąpić podczas awarii systemu powstałej w trakcie przetwarzania tego programu.
JĆwiczenic 7.2.3. Załóżmy, że transakcja T polega na wykonaniu jednego z czterech programów z ćwiczenia 7.2.1, a inne transakcje polegają na jednoczesnym wykonaniu tego samego programu lub któregoś z pozostałych. Jakie zachowania transakcji T są możliwe do zauważenia przy wykonywaniu na poziomie izolacji RSAD UNCOMMIT-TED, a które nic wystąpią przy poziomie izolacji SERIALI ZA3LE? Należy po kolei rozważyć wszystkie programy z ćw iczenia 7.2.1.
*!!Ćwiczenie 7.2.4. Załóżmy, żc transakcja T jest funkcją nieskończoną, która cc godzinę sprawdza, czy w bazie danych występuje PC o szybkości 200 i cenie poniżej 1000 S. Jeśli znajdzie się taki PC, to funkcja wypisuje komunikat i kończy działanie W tym czasie mogą działać inne transakcje, które wykonują programy z ćwiczę nia 7.2.1. Dla każdego z czterech poziomów izolacji: sekwencyjnego, powtarzalnegc odczytu, odczytu zatwierdzonego i odczytu niezatwierdzonego należy określić wynił transakcji T.
W bieżącym rozdziale omówimy systemy zarządzania bazami danycl w sposób możliwie najszerszy-. Zobaczymy, w jaki sposób definiuje się baz danych, a następnie organizuje katalogi, klastry i schematy. Dowiemy si także, w jaki sposób łączy się programy z tymi danymi, na których mają by wykonywane. Wiele tych szczegółów zależy od konkretnej implemcntacj a więc skupimy uwagę na podstawowych zasadach, które są objęte standai dem SQL2.
Środowisko SQL stanowi ramę dla danych i operacji SQL, które na tyc danych mogą być wykonywane. W praktyce środowisko SQL utożsamia s z konkretną instalacją systemu zarządzania baz danych. Jeśli na przykład fi ma ABC kupuje licencję systemu zarządzania bazami danych $QL firn: Dandy-DB i uruchamia ją na swoich systemach komputerowych ABC, to tć działający system nazywamy środowiskiem SQL.
Wszystkie omówione dotychczas elementy bazy danych: tabele, pe spektywy, dziedziny i ascrcje są definiowane w środowisku $QL. Tworzą oi hierarchiczne struktury i każda z nich odgrywa właściwą sobie rolę w sy$t mie. Struktury definiowane według standardu $QL2 zostały przedstawione i rys. 7.11.
Oto ich krótka charakterystyka.
1. Schematy . Są to zbiory' tabel, perspektyw-, asercji, dziedzin i inny typów danych, o których nie wspominaliśmy (ale zostały wymienio w ramce zatytułowanej „Co jeszcze należy do schematu?” w p. 7.3.i Schematy stanowią podstawowe jednostki w systemie i są pojęcio\ najbliższe bazom danych, ale są czymś węższym niż baza danych, wyniknie w punkcie 3.
’ Zauważmy, ?.c w tym kontekście schemat oznacza schemat bazy danych, a nic relacji