ACID

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Ujednoznacznienie Ten artykuł dotyczy baz danych. Zobacz też: test Acid1, test Acid2, test Acid3.

ACID – zbiór właściwości, które gwarantują poprawne przetwarzanie transakcji w bazach danych. ACID jest skrótem od angielskich słów: atomicityatomowość, consistencyspójność, isolationizolacja, durabilitytrwałość.

  • atomowość transakcji oznacza, iż każda transakcja albo wykona się w całości, albo w ogóle, czyli np. jeżeli w ramach jednej transakcji odbywać ma się przelew bankowy (zmniejszenie wartości jednego konta i powiększenie innego o tę samą kwotę), to nie może zajść sytuacja, że z jednego konta ubędzie pieniędzy a kwota na docelowym będzie bez zmian: albo przelew zostanie wykonany w całości, albo w ogóle.
  • spójność transakcji oznacza, że po wykonaniu transakcji system będzie spójny, czyli nie zostaną naruszone żadne zasady integralności.
  • izolacja transakcji oznacza, iż jeżeli dwie transakcje wykonują się współbieżnie, to zazwyczaj (zależnie od poziomu izolacji) nie widzą zmian przez siebie wprowadzanych. 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):
  1. read uncommitted – najniższy poziom izolacji, jedna transakcja może odczytywać wiersze, na których działają inne transakcje,
  2. read committed – transakcja może odczytywać tylko wiersze zapisane,
  3. repeatable read – transakcja nie może czytać, ani zapisywać, na wierszach odczytywanych, bądź zapisywanych w innej transakcji,
  4. serializable – pełna izolacja, wyniki współbieżnie realizowanych zapytań muszą być identyczne z wynikami tych samych zapytań realizowanych szeregowo (ang. nazwa oznacza szeregowalne)

Nie zawsze wszystkie poziomy są implementowane przez producentów, czasami producent wprowadza własne rozwiązania. Np. silnik Oracle wspiera tylko izolację Read Commited i Serializable, 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ż[edytuj | edytuj kod]