===== Definicja transakcji cd. =====


Transakcja jest fragmentem programu, w którym dokonuje się dostępu do rozmaitych
obiektów danych przechowywanych w różnych plikach na dysku. Z naszego punktu
widzenia transakcja jest po prostu ciągiem operacji czytania (ang. read) i
pisania (ang. write), zakończonym operacją zatwierdzenia (ang. commit) lub
zaniechania (ang. abort). Operacja zatwierdzenia oznacza, że transakcja
zakończyła się pomyślnie, natomiast operacja zaniechania oznacza, że wykonanie
transakcji nie dobiegło do końca z powodu jakiegoś błędu logicznego.  Pomyślnie
zakończona transakcja nazywa się zatwierdzoną (ang. committed); w przeciwnym
razie mówimy, że transakcja została zaniechana (ang. aborted).  Skutków
transakcji zatwierdzonej nie można cofnąć przez zaniechanie transakcji.


Transakcja może również nie dobiec do końca z powodu awarii systemu. W każdym
przypadku stan danych dostępnych w transakcji może nie być wówczas taki jak po
niepodzielnym jej wykonaniu, ponieważ zaniechana transakcja mogła już zdążyć
pozmieniać niektóre dane. Zapewnienie niepodzielności transakcji wymaga, aby
transakcja zaniechana nie pozostawiała śladów w danych, które zdążyła już
zmienić. Należy wobec tego dane zmienione przez zaniechaną transakcję odtworzyć
do stanu, jaki miały bezpośrednio przed rozpoczęciem wykonywania transakcji.
Mówimy o takiej transakcji, że została wycofana (ang. rolled back). Jednym z
obowiązków systemu jest zapewnianie tej właściwości.  

