Bazy danych II – kolokwium 1 (czas: 1,5 godz. – zad. 75 min. + 15 min. czas dodatk.)
Dane są tabele:
Wyniki_obliczen
ID_wo
typ number, klucz główny, wyłącznie wartości dodatnie, komentarz: klucz główny
przedzial_od
typ number, cztery miejsca po przecinku, różny od przedział_do
przedzial_do
typ number, cztery miejsca po przecinku, różny od przedział_od
ID_f
typ number
wynik
typ number, cztery miejsca po przecinku
Funkcja
ID_f
typ number, klucz główny, wyłącznie wartości dodatnie, komentarz: klucz główny
nazwa
varchar2(5), komentarz: nazwa funkcji
1. (10 min., 5p.) Utworzyć tabele opisane powyżej.
2. (3 min., 2p.) Utworzyć sekwencje o nazwach: seq_wo i seq_f.
3. (4 min., 2p.) Umieścić następujące zestawy danych (wykorzystując utworzone sekwencje do
umieszczenia wartości liczbowych dla kluczy głównych):
Wyniki_obliczen
ID_wo
przedzial_od
przedzial_do
ID_f
1
-1.5
1
2
2
0
1.6
2
3
-5
3.1415
1
Funkcje
ID_f
nazwa
1
sin
2
cos
4. Utworzyć pakiet o nazwie Obliczenia, a następnie w pakiecie utworzyć funkcję o nazwie calka:
a. (30 min., 30p.) calka(przedzial_od number, przedzial_do number, nazwa_funkcji varchar2
domyślnie sin ) obliczającą całkę oznaczoną z uwzględnieniem przedziałów całkowania i
rodzaju funkcji. Obliczenia wykonać metodą trapezów,
b. (5 min., 5p.) utworzyć własny wyjątek, wywoływany po wpisaniu niewłaściwej nazwy funkcji
(czyli różnej od: sin i cos). Wywołanie wyjątku przerywa działanie programu z komunikatem:
niewłaściwa nazwa funkcji.
5. (8 min., 7p.) Jednym poleceniem uaktualnić komórki kolumny wynik wartościami zwróconymi przez
funkcję calka (6p.). Przed rozpoczęciem uaktualnienia ustawić poziom izolacji transakcji na: serializable
(1p.).
6. (5 min., 4p.) Utworzyć widok o nazwie vWyniki na bazie tabel, wyświetlający: nazwę funkcji, przedziały,
wynik.
7. (10 min., 10p.) Utworzyć wyzwalacz o nazwie tWynikiObliczenFunkcje, usuwający odpowiednie wiersze
w tabeli Wyniki_obliczen po usunięciu danej funkcji w tabeli Funkcje (w oparciu o relację Funkcje.ID_f
-> Wyniki_obliczen.ID_f ).
Punktacja
Ocena
61-65
5.0
56-60
4.5
50-55
4.0
40-49
3.5
33-39
3.0
0-32
2.0