2.1 Poziomy współbieżności (Transaction Isolation Levels)
Anomalie które zostały zdefiniowane w SQL-92:
Brudny odczyt Transakcja czyta niezatwierdzone dane. Stracą one ważność nim bieżąca transakcja zostanie zatwierdzona.
Niepowtarzalny odczyt Ponowne odczyty danych w ramach jednej transakcji produkują różne wyniki w miarę jak inne transkacje ulegają zatwierdzeniu.
Fantomy ( Phantom Read) Widoczne zmiany wykonane przez inne transakcje |>oprzez rekordy spełniające warunek filtrujący zapytania.
Ilustruje to przykład: transakcja wyszukuje rachunki o saldzie |>owyżej lO.OOOzł. W ramach jednej transakcji wykonujemy dwa razy odczyt. Między pierwszym a drugim inna transakcja dodaje nowy rachunek o saldzie 20.000zł. Spełnia on warunek zapytania rekord pojawi się w wyniku jako fantom.
Brudny odczyt/Brudnopis (Read Uncommittcd) - transakcja nie może modyfikować danych zmienionych przez inne transakcje ale może je odczytać.
SET TRANSACTIOB READ WRITE isolation level read uncommitted;
Dane odczytane mogą stać się nieważne, lub były niespójne w trakcie odczytu. Wszystkie możliwe anomalie.
odczyt zatwierdzony (Read Cominitted) - transakcja może odczytać dane tylko zatwierdzone. Możliwy niepowtarzalny odczyt i fantomy.
odczyt powtarzalny (Repeatable Read) - transakcja nie widzi zmian w danych mimo zatwierdzenia współbieżnych transakcji. Możliwe fantomy.
szeregowalność (Serializable Transactions) - transakcje zachowują się tak jakby zostały wykonane sekwencyjnie. Żadne anomalie nie mogą wystąpić.
Zadanie domowe 2.1 Przeczytaj o sterowaniu transakcjami na stronic p. Pankowskiego:
http://www.put.poznan.pl/ 'pankowsk/trans-l.pdf Rozwiąż zadania z książki dotyczące transakcji.
2.2 Punkty zachowania
Wycofaiue transakcji może nastąpić do wskazanego punktu zachowania: na ogół by ponowić fragment skomplikowanej transakcji.
insert into PC ...
savepoint a;
insert into produkty ...
savepoint b;
rollback to a;
commit;
2.3 Blokady na przykładzie Oracle’a
Istnieją trzy mechanizmy blokad:
2