ACID (računarstvo)

S Vikipedije, slobodne enciklopedije

ACID (engl. Atomicity, Consistency, Isolation, Durability; atomičnost, konzistentnost, izolovanost, izdržljivost) u računarstvu predstavlja skup svojstava transakcije u bazama podataka namenjenih da garantuju validnost čak i u slučaju grešaka, nestanka struje, itd. U kontekstu baza podataka, niz operacija sa bazama podataka koje zadovoljavaju ACID svojstva (a mogu se smatrati kao jedinstvena logička operacija nad podacima) naziva se transakcija. Na primer, , prenos sredstava sa jednog bankovnog računa na drugi, čak i sa višestrukim promenama kao što su zaduživanje jednog računa i kreditiranje drugog, predstavlja jednu transakciju.

Andreas Rojter i Tio Herder su 1983. godine[1] iskovali akronim ACID kao skraćenicu za atomičnost, konzistentnost, izolovanost i izdržljivost (engl. Atomicity, Consistency, Isolation, Durability), na osnovu ranijeg rada[2] Džima Greja koji je nabrojao atomičnost, konzistentnost i izdržljivost ali je izostavio izolovanost kada je karakterisao koncept transakcije. Ove četiri osobine opisuju glavne garancije za paradigmu transakcije, koja je uticala na mnoge aspekte razvoja u sistemima baza podataka.

Prema Greju i Rojteru, IMS je podržao ACID transakcije već 1973. godine (iako je termin ACID došao kasnije).[3]

Karakteristike[uredi | uredi izvor]

Atomičnost[uredi | uredi izvor]

Transakcije se često sastoje od više izjava. Atomičnost garantuje da se svaka transakcija tretira kao jedinstvena "jedinica" koja uspeva potpuno ili ne uspeva u potpunosti: ako bilo koji od izveštaja koji čine transakciju ne uspe završiti, celokupna transakcija ne uspe i baza podataka ostane nepromenjena. Atomski sistem mora garantovati atomičnost u svakoj situaciji, uključujući i nestanke struje, greške i padove.

Konzistentnost[uredi | uredi izvor]

Konzistentnost osigurava da transakcija može prevesti bazu podataka samo iz jednog važećeg stanja u drugo, održavajući invarijante baze podataka: svi podaci upisani u bazu podataka moraju biti važeći u skladu sa svim definisanim pravilima, uključujući ograničenja, kaskade, okidače i svaku njihovu kombinaciju. Ovo sprečava korupciju baze podataka nezakonitim transakcijama, ali ne garantuje da je transakcija tačna.

Izolovanost[uredi | uredi izvor]

Transakcije se često izvršavaju istovremeno (npr. čitanje i pisanje u više tabela istovremeno). Izolovanost osigurava da istovremeno izvršenje transakcija ostavlja bazu podataka u istom stanju koje bi se dobilo ukoliko su transakcije izvršene sekvencijalno. Izolovanost je glavni cilj kontrole konkurencije; u zavisnosti od korišćenog metoda, efekti nepotpune transakcije možda neće biti vidljivi ni za druge transakcije.

Izdržljivost[uredi | uredi izvor]

Izdržljivost garantuje da će, nakon što se transakcija završi, ostati sigurna čak i u slučaju otkazivanja sistema (npr. nestanka struje ili pada sistema). Ovo obično znači da su izvršene transakcije (ili njihovi elementi) zapisani u nepromenljivoj memoriji.

Reference[uredi | uredi izvor]

  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 (septembar 1981). „The Transaction Concept: Virtues and Limitations” (PDF). Proceedings of the 7th International Conference on Very Large Databases. Cupertino, CA: Tandem Computers. str. 144—154. Pristupljeno 27. 3. 2015. 
  3. ^ Gray, Jim & Andreas Reuter. Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann. 1993. ISBN 978-1-55860-190-1.