ACID (рачунарство)

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

ACID (енгл. Atomicity, Consistency, Isolation, Durability; атомичност, конзистентност, изолованост, издржљивост) у рачунарству представља скуп својстава трансакције у базама података намењених да гарантују валидност чак и у случају грешака, нестанка струје, итд. У контексту база података, низ операција са базама података које задовољавају ACID својства (а могу се сматрати као јединствена логичка операција над подацима) назива се трансакција. На пример, , пренос средстава са једног банковног рачуна на други, чак и са вишеструким променама као што су задуживање једног рачуна и кредитирање другог, представља једну трансакцију.

Андреас Ројтер и Тио Хердер су 1983. године[1] исковали акроним ACID као скраћеницу за атомичност, конзистентност, изолованост и издржљивост (енгл. Atomicity, Consistency, Isolation, Durability), на основу ранијег рада[2] Џима Греја који је набројао атомичност, конзистентност и издржљивост али је изоставио изолованост када је карактерисао концепт трансакције. Ове четири особине описују главне гаранције за парадигму трансакције, која је утицала на многе аспекте развоја у системима база података.

Према Греју и Ројтеру, ИМС је подржао ACID трансакције већ 1973. године (иако је термин ACID дошао касније).[3]

Карактеристике[уреди]

Атомичност[уреди]

Трансакције се често састоје од више изјава. Атомичност гарантује да се свака трансакција третира као јединствена "јединица" која успева потпуно или не успева у потпуности: ако било који од извештаја који чине трансакцију не успе завршити, целокупна трансакција не успе и база података остане непромењена. Атомски систем мора гарантовати атомичност у свакој ситуацији, укључујући и нестанке струје, грешке и падове.

Конзистентност[уреди]

Конзистентност осигурава да трансакција може превести базу података само из једног важећег стања у друго, одржавајући инваријанте базе података: сви подаци уписани у базу података морају бити важећи у складу са свим дефинисаним правилима, укључујући ограничења, каскаде, окидаче и сваку њихову комбинацију. Ово спречава корупцију базе података незаконитим трансакцијама, али не гарантује да је трансакција тачна.

Изолованост[уреди]

Трансакције се често извршавају истовремено (нпр. читање и писање у више табела истовремено). Изолованост осигурава да истовремено извршење трансакција оставља базу података у истом стању које би се добило уколико су трансакције извршене секвенцијално. Изолованост је главни циљ контроле конкуренције; у зависности од коришћеног метода, ефекти непотпуне трансакције можда неће бити видљиви ни за друге трансакције.

Издржљивост[уреди]

Издржљивост гарантује да ће, након што се трансакција заврши, остати сигурна чак и у случају отказивања система (нпр. нестанка струје или пада система). Ово обично значи да су извршене трансакције (или њихови елементи) записани у непроменљивој меморији.

Референце[уреди]

  1. ^ Haerder, T.; Reuter, A. (1983). „Principles of transaction-oriented database recovery”. ACM Computing Surveys. 15 (4): 287. doi:10.1145/289.291. 
  2. ^ Gray, Jim (септембар 1981). „The Transaction Concept: Virtues and Limitations” (PDF). Proceedings of the 7th International Conference on Very Large Databases. Cupertino, CA: Tandem Computers. стр. 144—154. Приступљено 27. 03. 2015. 
  3. ^ Gray, Jim & Andreas Reuter. Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann. 1993. ISBN 978-1-55860-190-1.