ACID

W tym artykule poruszymy temat ACID, który stał się dziś bardzo istotny. Od samego początku ACID przyciąga uwagę ekspertów i ogółu społeczeństwa, wywołując debaty i refleksje na temat jego znaczenia i wpływu w różnych obszarach. Przez lata ACID ewoluował i dopasowywał się do zmian zachodzących w społeczeństwie, stając się tematem stałego zainteresowania. W tym sensie istotne jest dogłębne przeanalizowanie różnych aspektów związanych z ACID, od jego historycznego pochodzenia po dzisiejszy wpływ, aby zrozumieć jego wpływ i zasięg w społeczeństwie.

ACID – zbiór właściwości gwarantujących poprawne przetwarzanie transakcji w bazach danych. ACID jest skrótowcem od angielskich słów atomicity, consistency, isolation, durability, czyli niepodzielność[a], spójność, izolacja, trwałość[1].

  • Niepodzielność transakcji oznacza, że każda transakcja albo zostanie wykonana w całości, albo w ogóle – na przykład jeśli w ramach jednej transakcji odbywać się ma przelew bankowy (zmniejszenie wartości jednego konta i powiększenie innego o tę samą kwotę), to nie może dojść do sytuacji, że z jednego konta ubędzie pieniędzy, a kwota na koncie docelowym będzie bez zmian.
  • Spójność transakcji oznacza, że po wykonaniu transakcji system będzie spójny, czyli nie zostaną naruszone zasady integralności.
  • Izolacja transakcji oznacza, że jeśli dwie transakcje wykonują się współbieżnie, to zwykle (w zależności od poziomu izolacji) nie widzą wprowadzanych przez siebie zmian. Poziom izolacji w bazach danych jest zazwyczaj konfigurowalny i określa, jakich anomalii możemy się spodziewać przy wykonywaniu transakcji. Przykładowe typy izolacji to (model ANSI)[2]:
  1. read uncommitted – jedna transakcja może odczytywać wiersze, na których działają inne transakcje (najniższy poziom izolacji)
  2. read committed – transakcja może odczytywać tylko wiersze zapisane
  3. repeatable read – transakcja nie może czytać ani zapisywać na wierszach odczytywanych lub zapisywanych w innej transakcji
  4. serializable (szeregowalne) – wyniki współbieżnie realizowanych zapytań muszą być identyczne z wynikami tych samych zapytań realizowanych szeregowo (pełna izolacja).

Nie zawsze wszystkie poziomy są implementowane przez producentów; czasami producent wprowadza własne rozwiązania. Na przykład silnik Oracle wspiera tylko izolacje read commited i serializable, a w IDS istnieje poziom izolacji cursor stability, którego nie ma w modelu ANSI.

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

Zobacz też

Uwagi

  1. Niekiedy spotyka się kalkowe tłumaczenie z języka angielskiego: „atomowość” (rzadziej: „atomiczność”).

Przypisy