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 »

1. Po co transakcje? - Współbieżność

Spójność bazy danych, spójność procesów działających na bazie danych.

Jeżeli wiele procesów działa jednocześnie na bazie danych:

Czas Proces A Proces B Wartość XA Wartość XB
1 Czyta X   5  
2   Czyta X 5 5
3 X :=X+1   6 5
4   X :=X+1 6 6
5 Zapisuje X   6 6
6   Zapisuje X 6 6

Jeżeli te dwa procesy działałyby niezależnie, wynik byłby 7.
Działając równolegle i nie synchronizując swoich akcji jedna aktualizacja została zgubiona.

Inny przykład: mamy 4-ch autorów, którzy równolegle aktualizują pewien tekst. Jeżeli nie umówią się, który z nich aktualnie ma prawo wprowadzać poprawki, to część poprawek może zostać zgubiona.

Transakcje:
umożliwienie zachowania spójności w takiej sytuacji bez potrzeby umawiania się.


2. Po co transakcje? - Przeciwdziałanie awariom

Załóżmy, że mamy system bankowy, w którym następują operacje na kontach klientów w sposób następujący:

  1. Klient wczytuje kartę magnetyczną i jest rozpoznawany
  2. Klient określa sumę wypłaty
  3. Konto klienta jest sprawdzane
  4. Konto jest zmniejszane o sumę wypłaty
  5. Wysyłane jest zlecenie do kasy
  6. Kasjerka odlicza sumę wypłaty od stanu kasy
  7. Kasjerka wypłaca klientowi pieniądze
Normalnie, aby klient dostał swoje pieniądze, tego rodzaju operacji wykonuje się kilkadziesiąt. Prawdopodobieństwo różnych awarii jest spore.

(1kB)

Pytanie: co się stanie, jeżeli pomiędzy operacją 4 i 5 wyłączą światło?
(Konto zostało zmniejszone, klient nie dostał pieniędzy, zaczyna się awantura, dyrekcja tłumaczy, że nie odpowiada za elektrownię, klient ripostuje, że guzik go to obchodzi,...)

Transakcje: umożliwiają uniknięcie tego rodzaju nieprzyjemnych sytuacji związanych z dowolnymi awariami sprzętu, błędów w oprogramowaniu, a nawet tego, że kasjerka poczuła się niedobrze i musiała wyjść.