ACID apsaugo jūsų duomenų bazės duomenis
ACID modelio duomenų bazių projektavimas yra viena iš seniausių ir svarbiausių duomenų bazių teorijos koncepcijų. Jame pateikiami keturi tikslai, kuriuos kiekviena duomenų bazių valdymo sistema turi siekti: atomiškumas, nuoseklumas, izoliacija ir ilgaamžiškumas. Reliacinė duomenų bazė, kuri neatitinka bet kurio iš šių keturių tikslų, negali būti laikoma patikima. Duomenų bazė, turinti šias savybes, laikoma atitinkančia ACID reikalavimus.
ACID apibrėžta
Paimkime laiko išsamiai išnagrinėti kiekvieną iš šių ypatybių:
- "Atomicity" teigia, kad duomenų bazės pakeitimai turi atitikti "viską ar nieko" taisyklę. Kiekvienas sandoris laikomas "atominiu". Jei viena sandorio dalis nepavyksta, visas sandoris nepavyksta. Labai svarbu, kad duomenų bazių valdymo sistema išlaikytų atomų pobūdį sandorius, nepaisant bet kokios DBVS, operacinės sistemos ar aparatinės įrangos gedimo.
- Nuoseklumas nurodo, kad į duomenų bazę bus įrašyti tik galiojantys duomenys. Jei dėl kokios nors priežasties įvykdomas sandoris, kuris pažeidžia duomenų bazės nuoseklumo taisykles, visas sandoris bus grąžintas atgal, o duomenų bazė bus atkurta į tą valstybę, kuri atitinka šias taisykles. Kita vertus, jei sandoris sėkmingai įvykdomas, jis perims duomenų bazę iš vienos valstybės, kuri atitiktų taisykles, kitai valstybei, kuri taip pat atitinka taisykles.
- Atskyrimas reikalauja, kad tuo pačiu metu įvykę keli sandoriai neturėtų įtakos vieni kitų vykdymui. Pavyzdžiui, jei "Joe" išduoda sandorį prieš duomenų bazę tuo pačiu metu, kai "Mary" išduoda kitą sandorį, abu sandoriai turėtų veikti atskirai. Prieš vykdydami Mariją ar atvirkščiai, duomenų bazė turėtų atlikti visus Joe sandorius. Tai neleidžia "Joe" sandoriui skaityti tarpinių duomenų, kurie yra šalutiniai Marijos sandorio elementai, kurie vėliau nebus įtraukti į duomenų bazę. Atkreipkite dėmesį, kad izoliacijos nuosavybė neužtikrina, kuris pirmasis veiksmas bus įvykdytas - tik, kad sandoriai netrukdys vieni kitiems
- Ilgaamžiškumas užtikrina, kad bet koks duomenų bazei priklausantis sandoris nebus prarastas. Ilgaamžiškumas užtikrinamas naudojantis duomenų bazių atsarginėmis kopijomis ir operacijų žurnalais, kurie palengvina įvykdytų operacijų atkūrimą, nepaisant bet kokių vėlesnių programinės ar techninės įrangos gedimų.
Kaip ACID veikia praktikoje
Duomenų bazių administratoriai naudoja keletą strategijų, skirtų ACID vykdymui.
Viena, naudojama siekiant užtikrinti atomiškumą ir ilgaamžiškumą, yra rašymo į priekį registravimas (WAL), kuriame bet kokia sandorio informacija pirmiausia įrašoma į žurnalą, apimantį tiek naujo, tiek anuliavimo informaciją. Tai užtikrina, kad, atsižvelgiant į bet kokios rūšies duomenų bazės nesėkmę, duomenų bazė gali patikrinti žurnalą ir palyginkite jo turinį su duomenų bazės būkle.
Kitas metodas, naudojamas atomiškumui ir ilgaamžiškumui spręsti, yra šešėlinis peidžingas , kuriame kuriamas šešėlinis puslapis, kai duomenis reikia keisti. Užklausos naujinimai yra įrašomi į šešėlį, o ne tikruosius duomenų bazės duomenis. Pati duomenų bazė yra pakeista tik tada, kai redagavimas baigtas.
Kita strategija vadinama dviejų etapų įsipareigojimo protokolu, ypač naudingu paskirstytų duomenų bazių sistemomis. Šis protokolas atskiria prašymą keisti duomenis dviem etapais: įsipareigojimo prašymo etapu ir įsipareigojimo etapu. Prašymo etape visi sandorio veikiami tinklo DBVS turi patvirtinti, kad jie jį gavę ir turi galimybę atlikti sandorį. Kai patvirtinimas gaunamas iš visų atitinkamų DBVS, užbaigimo įsipareigojimo etapas baigiasi, kai duomenys iš tikrųjų yra modifikuoti.