Transakcja w SQL
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Czym jest transakcja w SQL?
Transakcja to zestaw operacji na bazie danych traktowany jako jedna logiczna całość. Oznacza to, że wszystkie operacje w transakcji powinny zostać wykonane poprawnie albo żadna z nich nie powinna trwale zmienić danych.
Transakcje są szczególnie ważne przy operacjach finansowych, magazynowych i wszędzie tam, gdzie dane muszą pozostać spójne mimo błędów, awarii lub równoczesnej pracy wielu użytkowników.
Podstawowe polecenia
Najczęściej używane polecenia transakcyjne to:
START TRANSACTIONlubBEGIN- rozpoczęcie transakcji,COMMIT- zatwierdzenie zmian,ROLLBACK- wycofanie zmian.
Przykład
START TRANSACTION;
UPDATE konta SET saldo = saldo - 100 WHERE id = 1;
UPDATE konta SET saldo = saldo + 100 WHERE id = 2;
COMMIT;
W przykładzie przelew składa się z dwóch operacji: odjęcia środków z jednego konta i dodania ich do drugiego. Jeśli jedna z operacji się nie powiedzie, należy wykonać ROLLBACK, aby nie doprowadzić do niespójności danych.
Związek z ACID
Transakcje powinny spełniać zasady ACID:
- Atomicity - niepodzielność,
- Consistency - spójność,
- Isolation - izolacja,
- Durability - trwałość.
Wymóg trwałości oznacza, że po wykonaniu COMMIT zatwierdzone dane powinny być zachowane nawet w przypadku późniejszej awarii systemu.