ACID

ACID – Kluczowe Właściwości Transakcji w Bazach Danych

ACID to zbiór cech, które zapewniają prawidłowe przetwarzanie transakcji w bazach danych. Skrót ten pochodzi od angielskich terminów: atomicity (niepodzielność), consistency (spójność), isolation (izolacja) oraz durability (trwałość).

Niepodzielność transakcji oznacza, że każda transakcja musi być wykonana w całości lub wcale. Na przykład, w przypadku przelewu bankowego, gdzie kwota jest odejmowana z jednego konta, a dodawana do innego, nie może zdarzyć się sytuacja, w której pieniądze zostaną odjęte z jednego konta, a na koncie docelowym nie nastąpi żadna zmiana.

Spójność transakcji wskazuje, że po jej zakończeniu system powinien pozostać spójny, co oznacza, że zasady integralności nie mogą być naruszone.

Izolacja transakcji oznacza, że jeśli dwie transakcje są wykonywane jednocześnie, to zwykle (w zależności od poziomu izolacji) nie widzą wzajemnie swoich zmian. Poziom izolacji w bazach danych można zazwyczaj skonfigurować, co określa, jakie anomalie mogą wystąpić podczas realizacji transakcji. Przykładowe typy izolacji to (zgodnie z modelem ANSI):

  • read uncommitted – jedna transakcja może odczytywać wiersze, na których operują inne transakcje (najniższy poziom izolacji)
  • read committed – transakcja może odczytywać tylko wiersze, które zostały już zapisane
  • repeatable read – transakcja nie może ani czytać, ani zapisywać wierszy, które są odczytywane lub zapisywane w innej transakcji
  • serializable – wyniki współbieżnych zapytań muszą być zgodne z wynikami tych samych zapytań realizowanych w sposób szeregowy (pełna izolacja).

Nie wszystkie poziomy izolacji są implementowane przez producentów; czasami wprowadzają oni własne rozwiązania. Na przykład, silnik Oracle wspiera jedynie izolacje read committed oraz serializable, a w IDS istnieje poziom izolacji cursor stability, który nie jest częścią modelu ANSI.

Trwałość danych oznacza, że system jest w stanie uruchomić się i udostępnić spójne, nienaruszone oraz aktualne dane, które zostały zapisane w ramach zatwierdzonych transakcji, na przykład po nagłej awarii zasilania.

Zobacz też

model relacyjny

Uwagi

Przypisy