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.