ACID w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co oznacza ACID w SQL?

ACID to zestaw czterech właściwości, które powinny spełniać poprawnie obsługiwane transakcje w bazie danych. Akronim ACID oznacza:

  • A — Atomicity — atomowość,
  • C — Consistency — spójność,
  • I — Isolation — izolacja,
  • D — Durability — trwałość.

W pytaniach egzaminacyjnych poprawna angielska forma to: atomic, consistent, isolated, durable.

Atomicity — atomowość

Transakcja jest traktowana jako jedna całość. Oznacza to, że albo wykonają się wszystkie operacje w transakcji, albo żadna z nich.

Przykład: jeśli przelew bankowy składa się z odjęcia pieniędzy z jednego konta i dodania ich na drugie, to nie może wykonać się tylko jedna z tych operacji.

Consistency — spójność

Po zakończeniu transakcji baza danych musi pozostać w poprawnym stanie. Muszą być zachowane reguły integralności, np. klucze główne, klucze obce, ograniczenia NOT NULL czy UNIQUE.

Isolation — izolacja

Równocześnie wykonywane transakcje nie powinny sobie wzajemnie przeszkadzać. Każda transakcja powinna działać tak, jakby była wykonywana niezależnie od innych.

Durability — trwałość

Po zatwierdzeniu transakcji jej skutki są trwałe. Dane nie powinny zniknąć po awarii programu czy ponownym uruchomieniu systemu bazy danych.

Przykład transakcji SQL

START TRANSACTION;

UPDATE konta SET saldo = saldo - 100 WHERE id = 1;
UPDATE konta SET saldo = saldo + 100 WHERE id = 2;

COMMIT;

Jeśli wystąpi błąd, można użyć:

ROLLBACK;

aby wycofać operacje wykonane w ramach transakcji.