ACID kaitseb teie andmebaasi andmeid
Andmebaasi disainide ACID mudel on üks vanemaid ja olulisemaid andmebaasi teooria kontseptsioone. Selles esitatakse neli eesmärki, mida iga andmebaasi haldussüsteem peab püüdma saavutada: aatomikkus, järjepidevus, isolatsioon ja vastupidavus. Relatsioonandmebaasi, mis ei vasta ühelegi neljast eesmärgist, ei saa pidada usaldusväärseks. Andmebaasi, millel on need omadused, peetakse ACID-ga ühilduvaks.
ACID on määratletud
Andke hetk, et üksikasjalikult uurida kõiki neid omadusi:
- Aatomiabi ütleb, et andmebaasi muudatused peavad järgima reeglit "kõik või mitte midagi". Iga tehing on öeldes olevat "aatmiline". Kui üks tehingu osa ebaõnnestub, ei toimi kogu tehing. On äärmiselt oluline, et andmebaasihaldussüsteem säilitaks tehingute aatomiumi hoolimata mis tahes DBMSi, operatsioonisüsteemi või riistvaratõrge.
- Järjepidevus näitab, et andmebaasi kirjutatakse ainult kehtivad andmed. Kui mingil põhjusel teostatakse tehing, mis rikub andmebaasi järjepidevuse reegleid, kogu tehing tagastatakse ja andmebaas taastatakse nende eeskirjadega kooskõlas olevasse olekusse. Teisest küljest, kui tehing sooritatakse edukalt, võtab see andmebaas ühestki riigist, mis on eeskirjadega kooskõlas, teisele riigile, mis on kooskõlas ka eeskirjadega.
- Eraldamine eeldab, et samaaegselt toimuvad mitu tehingut ei mõjuta üksteise täitmist. Näiteks kui Joe väljastab tehingu andmebaasi samaaegselt, kui Mary teostab teistsugust tehingut, peaks mõlemad tehingud tegutsema andmebaasis isoleeritud viisil. Andmebaas peaks enne Maryni sooritamist või vastupidi tegema Joe kogu tehingu. See takistab Joe tehingul lugeda vaheandmeid, mis on toodetud Mary-tehingu osa kõrvalmõjuna, mis lõpuks ei kuulu andmebaasi. Pange tähele, et isoleeriv vara ei taga, milline tehing esmalt toimib - vaid need tehingud ei häiri üksteist
- Vastupidavus tagab, et kõik andmebaasi tehtud tehingud ei lähe kaduma. Vastupidavus on tagatud andmebaasi varukoopiate ja tehingute registrite abil, mis hõlbustavad tehingute taastamist hoolimata mis tahes järgnevast tarkvarast või riistvararibast.
Kuidas ACID toimib praktikas
Andmebaasi administraatorid kasutavad ACID jõustamise mitut strateegiat.
Aatomiautode ja vastupidavuse tagamiseks kasutatavaks rakenduseks on kirjutusjärgne metsaraie (WAL), milles kõik tehinguandmed kirjutatakse kõigepealt logi, mis sisaldab nii andmete redoneerimist kui ka tühistamist. See tagab, et andmebaaside rikete korral võib andmebaas kontrollida logi ja võrdle selle sisu andmebaasi olekuga.
Teine atomiaalsuse ja vastupidavuse käsitlemiseks kasutatav meetod on varjuotsing, mille käigus andmete muutmiseks luuakse variaplaan. Päringu värskendused kirjutatakse varje lehele, mitte andmebaasi tegelikele andmetele. Andmebaasi ise muudetakse ainult siis, kui redigeerimine on lõpule jõudnud.
Teist strateegiat nimetatakse kahefaasilise sidumisprotokollina , mis on eriti kasulik hajutatud andmebaasi süsteemides. See protokoll eraldab taotluse andmete muutmiseks kahel etapil: kohustus-päringu etapp ja sidumissagedus. Taotlusfaasis peavad kõik tehingu mõjutatavad võrgud DBMSid kinnitama, et nad on seda kätte saanud ja neil on võime tehingu sooritada. Kui kõikidelt asjakohastelt DBMSidest saab kinnitust, lõpetatakse kohustuste täitmise etapp, kus andmeid tegelikult muudetakse.