ACID ščiti podatke vaše baze podatkov
ACID model oblikovanja baz podatkov je eden najstarejših in najpomembnejših konceptov teorije baz podatkov. Določa štiri cilje, ki jih mora vsak sistem upravljanja baz podatkov prizadevati doseči: atomičnost, doslednost, izoliranost in vzdržljivost. Relacijska podatkovna baza, ki ne izpolnjuje katerega od teh štirih ciljev, ni mogoče šteti za zanesljivo. Podatkovna baza, ki ima te značilnosti, velja za ACID-compliant.
ACID Defined
Vzemimo si trenutek, da podrobno preučimo vsako od teh značilnosti:
- Atomicity navaja, da morajo spremembe baze podatkov slediti pravilu "vse ali nič". Vsaka transakcija naj bi bila "atomska". Če en del transakcije ne uspe, celotna transakcija ne uspe. Bistveno je, da sistem vodenja baz podatkov vzdržuje atomsko naravo transakcij kljub kakršnemu koli pomanjkanju sistema, operacijskega sistema ali strojne opreme.
- Usklajenost navaja, da bodo v bazo podatkov zapisani samo veljavni podatki. Če se iz nekega razloga izvede transakcija, ki krši pravila skladnosti baze podatkov, bo celotna transakcija vrnjena nazaj in baza podatkov bo obnovljena v stanje, ki je skladno s temi pravili. Po drugi strani pa, če se transakcija uspešno izvede, bo zbirko podatkov vzela iz ene države, ki je skladna s pravili, v drugo državo, ki je tudi v skladu s pravili.
- Izolacija zahteva, da več transakcij, ki se zgodijo hkrati, ne vplivajo na izvršitev drugega. Če na primer Joe izda transakcijo proti bazi podatkov ob istem času, ko Mary izda drugačno transakcijo, morata obe transakciji delovati v bazi podatkov na izoliran način. Baza podatkov bi morala bodisi opraviti Joejevo celotno transakcijo pred izvršitvijo Mary's, ali obratno. To preprečuje, da bi Joeova transakcija bral vmesnih podatkov, ki so nastali kot stranski učinek dela transakcije Mary, ki se sčasoma ne bo zavezala k bazi podatkov. Upoštevajte, da izolacijska lastnost ne zagotavlja, katere transakcije bodo izvedle najprej - zgolj, da se transakcije ne bodo vmešavale med seboj
- Trajnost zagotavlja, da nobena transakcija, ki je namenjena bazi podatkov, ne bo izgubljena. Trajnost je zagotovljena z uporabo varnostnih kopij baze podatkov in dnevnikov transakcij, ki olajšajo obnovitev storjenih transakcij kljub kakršnim koli naknadnim napakam programske opreme ali strojne opreme.
Kako ACID deluje v praksi
Skrbniki baz podatkov uporabljajo več strategij za uveljavljanje ACID.
Ena, ki se uporablja za uveljavljanje atomičnosti in trajnosti, je dnevnik zapisovanja vnaprej (WAL), v katerem so podrobnosti o transakcijah najprej zapisane v dnevnik, ki vključuje tako podatke o ponovnem ponovnem vklopu in razveljavitvi. To zagotavlja, da lahko baza podatkov zaradi morebitne napake v bazo podatkov preveri log in primerjati njeno vsebino s stanjem baze podatkov.
Druga metoda, ki se uporablja za obravnavo atomičnosti in trajnosti je senčenje, v katerem se spremeni senčna stran, ko je treba podatke spremeniti. Posodobitve poizvedbe so zapisane na strani s senci in ne na dejanske podatke v bazi podatkov. Sama baza podatkov se spremeni samo, ko je urejanje končano.
Druga strategija se imenuje protokol dvofazne obveznosti , ki je še posebej uporaben v sistemih porazdeljenih baz podatkov. Ta protokol ločuje zahtevo za spreminjanje podatkov v dve fazi: faza zahteve za prevzem in faza obveščanja. V fazi zahtevka morajo vsi DBMS v omrežju, na katere vpliva transakcija, potrditi, da so ga prejeli in imeti zmogljivost za izvedbo transakcije. Ko je potrditev prejeta iz vseh ustreznih DBMS, se zaključi faza obveščanja, v kateri so podatki dejansko spremenjeni.