ACID (енгл. Atomicity, Consistency, Isolation, Durability; атомичност, конзистентност, изолованост, издржљивост) у рачунарству представља скуп својстава трансакције у базама података намењених да гарантују валидност чак и у случају грешака, нестанка струје, итд. У контексту база података, низ операција са базама података које задовољавају ACID својства (а могу се сматрати као јединствена логичка операција над подацима) назива се трансакција. На пример, , пренос средстава са једног банковног рачуна на други, чак и са вишеструким променама као што су задуживање једног рачуна и кредитирање другог, представља једну трансакцију.
Андреас Ројтер и Тио Хердер су 1983. године[1] исковали акроним ACID као скраћеницу за атомичност, конзистентност, изолованост и издржљивост (енгл. Atomicity, Consistency, Isolation, Durability), на основу ранијег рада[2] Џима Греја који је набројао атомичност, конзистентност и издржљивост али је изоставио изолованост када је карактерисао концепт трансакције. Ове четири особине описују главне гаранције за парадигму трансакције, која је утицала на многе аспекте развоја у системима база података.
Према Греју и Ројтеру, ИМС је подржао ACID трансакције већ 1973. године (иако је термин ACID дошао касније).[3]
Карактеристике
Атомичност
Трансакције се често састоје од више изјава. Атомичност гарантује да се свака трансакција третира као јединствена "јединица" која успева потпуно или не успева у потпуности: ако било који од извештаја који чине трансакцију не успе завршити, целокупна трансакција не успе и база података остане непромењена. Атомски систем мора гарантовати атомичност у свакој ситуацији, укључујући и нестанке струје, грешке и падове.
Конзистентност
Конзистентност осигурава да трансакција може превести базу података само из једног важећег стања у друго, одржавајући инваријанте базе података: сви подаци уписани у базу података морају бити важећи у складу са свим дефинисаним правилима, укључујући ограничења, каскаде, окидаче и сваку њихову комбинацију. Ово спречава корупцију базе података незаконитим трансакцијама, али не гарантује да је трансакција тачна.
Изолованост
Трансакције се често извршавају истовремено (нпр. читање и писање у више табела истовремено). Изолованост осигурава да истовремено извршење трансакција оставља базу података у истом стању које би се добило уколико су трансакције извршене секвенцијално. Изолованост је главни циљ контроле конкуренције; у зависности од коришћеног метода, ефекти непотпуне трансакције можда неће бити видљиви ни за друге трансакције.
Издржљивост
Издржљивост гарантује да ће, након што се трансакција заврши, остати сигурна чак и у случају отказивања система (нпр. нестанка струје или пада система). Ово обично значи да су извршене трансакције (или њихови елементи) записани у непроменљивој меморији.
Референце