Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.03
  4. Transakcja w SQL

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 TRANSACTION lub BEGIN - 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.