ACID štiti podatke vaše baze podataka
ACID model dizajna baze podataka je jedan od najstarijih i najvažnijih koncepata teorije baza podataka. Ona postavlja četiri cilja kojima svaki sistem upravljanja bazama podataka mora postići: atomičnost, konzistentnost, izolaciju i izdržljivost. Relativna baza podataka koja ne ispunjava bilo koji od ovih ciljeva ne može se smatrati pouzdanim. Baza podataka koja poseduje ove karakteristike se smatra ACID-kompatibilnom.
ACID Defined
Uzmimo trenutak da detaljno ispitamo svaku od ovih karakteristika:
- Atomicitet navodi da modifikacije baze podataka moraju da poštuju pravilo "sve ili ništa". Za svaku transakciju se kaže da je "atomski". Ako jedan deo transakcije ne uspe, cela transakcija ne uspije. Od ključnog je značaja da sistem upravljanja bazom podataka održava atomsku prirodu transakcija uprkos svakom DBMS-u, operativnom sistemu ili otkazu hardvera.
- Konzistencija navodi da će u bazu podataka upisati samo važeće podatke. Ako se iz nekog razloga izvrši transakcija koja krši pravila konzistentnosti baze podataka, cela transakcija će se vratiti nazad, a baza podataka će se vratiti u državu koja je u skladu sa tim pravilima. S druge strane, ako se transakcija uspješno izvrši, uzimaće se baza podataka iz jedne države koja je u skladu sa pravilima u drugoj državi koja je također u skladu s pravilima.
- Izolacija zahteva da više transakcija koje se istovremeno dešavaju ne utiču na izvršenje jedne od drugih. Na primjer, ako Joe izda transakciju protiv baze podataka u isto vrijeme kada Mary izda drugu transakciju, obe transakcije treba da rade na bazi podataka na izolovan način. Baza podataka bi trebalo da izvrši cjelokupnu transakciju Joe prije izvršenja Mary's, ili obrnuto. Ovo sprečava Joeovu transakciju da očitava posredne podatke proizvedene kao sporedni efekat dela Marijine transakcije koja na kraju neće biti posvećena bazi podataka. Imajte u vidu da imovina izolacije ne obezbeđuje koja će transakcija izvršiti prvo - samo da se transakcije neće mešati jedno sa drugim
- Trajnost osigurava da se svaka transakcija posvećena bazi podataka neće izgubiti. Dugotrajnost je osigurana korištenjem rezervnih kopija baze podataka i evidencija transakcija koji omogućavaju restauraciju izvršenih transakcija uprkos svim naknadnim neuspjeđenjima softvera ili hardvera.
Kako ACID radi u praksi
Administratori baze podataka koriste nekoliko strategija za primenu ACID-a.
Jedna koja se koristi za sprovođenje atomičnosti i izdržljivosti je zapisivanje naprijed (WAL) u kojem se svaki detalj o transakciji prvi put upisuje u dnevnik koji uključuje i obnavljanje i poništavanje informacija. To osigurava da, s obzirom na grešku baze podataka bilo koje vrste, baza podataka može proveriti logirajte i uporedite njegov sadržaj sa statusom baze podataka.
Druga metoda koja se koristi za adresiranje atomičnosti i izdržljivosti je sage -paging u kojem se kreira sjena stranica kada se podaci mijenjaju. Ažuriranja upita su upisana na stranicu u senci, a ne na stvarne podatke u bazi podataka. Sama baza podataka se menja samo kada je editiranje završeno.
Druga strategija se zove dvofazni protokol za izvršenje , naročito koristan u sistemima distribuiranih baza podataka. Ovaj protokol razdvaja zahtev za modifikovanje podataka u dve faze: faza zahtjeva za izvršenjem i faza urezivanja. U fazi zahtjeva, svi DBMS-ovi na mreži na koje je transakcija pogođena moraju potvrditi da su ih primili i da imaju kapacitet da izvrše transakciju. Kada se potvrda dobije iz svih relevantnih DBMS-ova, završava se faza urezivanja u kojoj su podaci u stvari izmenjeni.