Skip to main content

ACID modelis duomenų bazių valdymo sistemoms

Anonim

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ų:

  • Atomiškumas 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 įrangos gedimo.
  • Nuoseklumas teigia, 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.
  • Izoliavimas reikalauja, kad tuo pačiu metu įvykę kelis 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šyti į priekį medienos ruoša (WAL), kuriame bet kokia sandorio informacija pirmiausia įrašoma į žurnalą, apimantį ir naujo, ir anuliuoti informaciją. Tai užtikrina, kad, atsižvelgiant į duomenų bazės nesklandumą, duomenų bazė gali patikrinti žurnalą ir palyginti jo turinį su duomenų bazės būkle.

Kitas metodas, naudojamas atomiškumui ir patvarumui spręsti, yra šešėlinė paieška kuriame yra keičiamas šešėlinis puslapis. 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ų įsipareigojimas protokolas, ypač naudingas platintose duomenų bazių sistemose. Š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.