400 7. SYSTEMOWE ASPEKTY JĘZYKA SQL
d) Usuwanie z przykładu 5.29.
e) Aktualizacja z przykładu 5.31.
f) Więzy krotkowe z rys. 6.4.
g) Ascrcja z przykładu 6.10.
^Ćwiczenie 7.4.2. Utworzyć diagram grant po wykonaniu czynności 4, 5 i 6 ciągu, który został przedstawiony na rys. 7.19. Należy założyć, że właścicielem relacji z prawami p jest użytkownik A.
Numer czynności |
Kio |
Czynność |
1 |
A |
GRANT p TO B WITH GRANT OPTION |
2 |
A |
GRANT p TO C |
3 |
B |
GRANT p TO D WITH GRANT OPTION |
4 |
D |
GRANT p TO B, C, E WITH GRANT OPTION |
5 |
B |
REVOKE p FROM D CASCADE |
6 |
A |
REVOKE p FROM C CASCADE |
RYSUNEK 7.19
Ciąg czynności do ćwiczenia 7.4.2
Ćwiczenie 7.4.3. Utworzyć diagram grant po wykonaniu czynności 5 i 6 ciągu, który został przedstawiony na ry s. 7.20. Należy założyć, że właścicielem relacji z prawami p jest użytkownika.
Numer czynności |
Kio |
Czynność |
1 |
A |
GRANT p TO B, E WITH GRANT OPTION |
2 |
B |
GRANT p TO C WITH GRANT OPTION |
3 |
C |
GRANT p TO D WITH GRANT OPTION |
4 |
E |
GRANT p TO C |
5 |
E |
GRANT p 70 D WITH GRANT OPTION |
6 |
A |
REVOKE GRANT OPTION FOR p FROM B CASCADE |
RYSUNEK 7.20
Ciąg czynności do ćw iczenia 7.4.3
IĆwiczenic 7.4.4. Należy' utworzyć diagram grant powstały w wyniku przetworzenia następującego ciągu instrukcji, przy założeniu, ze właścicielem relacji z prawami p jest użytkownik A.
Nr czynności |
Kto |
Czynność |
1 |
A |
GRANTp TO B WITH GRANT OPTION |
2 |
B |
GRANT pTO B WITH GRANT OPTION |
3 |
A |
REYOKE p FOR FROM B CASCADE |
♦ Osadzanie SQL (embedded SQL): Zamiast korzystać z interfejsu zapytań do uruchamiania zapytań i wprowadzania zmian w języku SQL, często jest efektywniej napisać program w standardowym języku programowania i wstawdć do niego instrukcje SQL.
♦ Niedopasowanie falowe (impedance mismalch): Model danych $QL rożni się zasadniczo od modeli danych w zwykłych językach programowania. Dlatego do komunikacji między instrukcjami SQL a programem zewnętrznym trzeba korzystać z tzw. zmiennych dzielonych, w których można przekazywać wartości składowych krotek.
♦ Kursory (cursors): Kursor jest zmienną SQL, która wskazuje krotkę w relacji. Kursory są dodatkowym mechanizmem SQL, który umożliwia połączenie języka podstawowego i SQL. a stosuje się je w połączeniu ze zmiennymi dzielonymi, do których zapisuje się wartości z krotki, wskazywanej w danej chwili przez kursor.
♦ Dynamiczny SQL {dynamie SQL): Zamiast wstaw iać fragmenty SQL do programu podstawowego może on generować teksty, które są interpretowane jako instrukcje SQL i wykonywane przez system SQL.
♦ Sterowanie współbieżnością (concicrrency control): W systemie SQL istnieją dwa mechanizmy, które pozwalają unikać konfliktów związanych z jednoczesnym przetwarzaniem: transakcje oraz ograniczenia w stosowaniu kursorów. Ograniczenia kursorów polegają na deklarowaniu kursora jako „niewrażliwego”, co oznacza, że zmiany dokonywane w relacji nie są widoczne.
♦ Transakcje. (transactions): Programista może grupować instrukcje w jednostki zwane transakcjami, które się zatw ierdza lub cofa (unieważnia). W tym drugim przypadku cofa się wszystkie zmiany powstałe w bazie danych.
♦ Poziomy izolacji (isolation levels)\ Transakcje w systemie SQL można określać na jednym z czterech poziomów' izolacji, które w kolejności od najbardziej do najmniej restrykcyjnego określa się jako: „sekwencyjny” (transakcja musi się wykonać zawsze w całości, zanim inna transakcja się zacznie lub po kompletnym zakończeniu innej transakcji), „odczyt powtarzalny” (każda krotka, która pojawiła się w wyniku zapytania, będzie pojawiała się w kolejnych odpowiedziach), „odczyt zatwierdzony” (tylko krotki powstałe w wyniku zatwierdzenia transakcji są dostępne dla innych transakcji) oraz „odczyt niczatwicrdzo-ny” (nie ma żadnych ograniczeń na dostęp do danych).
♦ Kursory i transakcje tyjko do odczytu (read-only cursors and transactions): Zarówno kursory, jak i transakcje można zadeklarować jako tylko do odczytu. Dzięki temu można uzyskać pewność, że kursor lub transakcja nie zmienią stanu bazy danych, a jednocześnie stanowi to informację dla systemu SQL o tym, że ten obiekt nie spowoduje naru-