INFO
Sylabus
Transakcje w bazach danych
1. Po co transakcje? - Współbieżność
2. Po co transakcje? - Przeciwdziałanie awariom
3. Transakcja: jednostka działalności systemu
4. Przykładowa transakcja
5. Kryterium poprawności transakcji
6. Implementacja szeregowalności poprzez zamki
7. Zakleszczenie
8. Walka z zakleszczeniem
9. Metody bez zakleszczeń oparte na stemplach czasowych
10. Metody optymistyczne
11. Ziarnistość mechanizmu transakcji
12. Zmienna ziarnistość
13. Typy awarii i reakcje na awarie
14. Odtwarzanie po awarii - środki, terminy
15. Odtwarzanie po zerwaniu
16. Podstawowe algorytmy z zamkami
17. Komendy w SQL do przetwarzania transakcji
18. Zagnieżdżone transakcje
19. Przykład zagnieżdżonej transakcji
20. 2PC w systemach rozproszonych
21. Długie transakcje (transakcje projektowe)
22. Podsumowanie
Skorowidz
Wyście:
Wyklad VI. Wprowadzenie do transakcji w bazach danych (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

3. Transakcja: jednostka działalności systemu

Nie mylić z procedurą! Transakcje i procedury są pojęciami ortogonalnymi. Transakcja angażuje bieżące zasoby systemu takie jak czas i dane. Wywołanie procedury może być transakcją, ale może ona też składać się z wielu wywołań procedur i jedno wywołanie może generować wiele transakcji. Transakcje mogą obejść się w ogóle bez procedur.

Własności transakcji: ACID

A

Atomowość (atomicity) - w ramach jednej transakcji wykonują się albo wszystkie operacje, albo żadna
C

Spójność (consistency) - o ile transakcja zastała bazę danych w spójnym stanie, po jej zakończeniu stan jest również spójny. (W międzyczasie stan może być chwilowo niespójny)
I

Izolacja (isolation) - transakcja nie wie nic o innych transakcjach i nie musi uwzględniać ich działania. Czynności wykonane przez daną transakcję są niewidoczne dla innych transakcji aż do jej zakończenia
D

Trwałość (durability) - po zakończeniu transakcji jej skutki są na trwale zapamiętane (na dysku) i nie mogą być odwrócone przez zdarzenia losowe (np. wyłączenie prądu)

4. Przykładowa transakcja

Zacznij transakcję (begin transaction); 
  Zidentyfikuj klienta; 
  Jeżeli nie da się zidentyfikować to zerwij(abort);
  Wczytaj zlecenie wypłaty; 
  Sprawdź konto klienta; 
  Jeżeli konto < zlecenia to 
             komunikat o przekroczeniu konta; 
             zerwij (abort); 
  Wyślij zlecenie do kasy; 
  Jeżeli upłynął czas większy od 5 minut to 
             cofnij zlecenie do kasy; 
             zerwij transakcję (abort); 
 Jeżeli kasjer  potwierdził dokonanie wypłaty to
           potwierdź transakcję (commit)
 a inaczej 
             cofnij zlecenie do kasy; 
             zerwij (abort);
 

Transakcja, która zaczęła się w systemie jest identyfikowana jako specjalny byt; jest jej nadawany unikalny numer (identyfikator).
abort - kasowanie transakcji i wszelkich skutków które ona poczyniła
commit - wprowadzenie skutków transakcji na dysk i skasowanie transakcji

Takie programy mogą być proste lub dowolnie skomplikowane. Z tego względu miara liczba transakcji/sekundę jest często mało wiarygodna.


« poprzedni punkt   następny punkt »