ACID chráni údaje vašej databázy
Model ACID databázového dizajnu je jedným z najstarších a najdôležitejších konceptov databázovej teórie. Stanovuje štyri ciele, ktoré musí každý systém riadenia databázy usilovať dosiahnuť: atómovú, konzistentnú, izolovanú a trvácnosť. Relačná databáza, ktorá nespĺňa niektorý z týchto štyroch cieľov, nemožno považovať za spoľahlivú. Databáza, ktorá má tieto vlastnosti, sa považuje za vyhovujúcu požiadavkám ACID.
Definovaná ACID
Poďme chvíľu podrobne preskúmať každú z týchto charakteristík:
- Atomicita uvádza, že modifikácia databázy musí nasledovať podľa pravidla "všetko alebo nič". Každá transakcia sa hovorí ako "atómová". Ak zlyhá jedna časť transakcie, celá transakcia zlyhá. Je dôležité, aby systém správy databázy zachovával atómovú povahu transakcií napriek akémukoľvek zlyhaniu databázového systému, operačného systému alebo hardvéru.
- Konzistencia uvádza, že do databázy budú zapísané iba platné údaje. Ak sa z nejakého dôvodu uskutoční transakcia, ktorá porušuje pravidlá konzistencie databázy, celá transakcia bude vrátená späť a databáza bude obnovená do stavu v súlade s týmito pravidlami. Na druhej strane, ak sa transakcia úspešne vykoná, databáza bude preberať z jedného štátu, ktorý je v súlade s pravidlami s iným štátom, ktorý je tiež v súlade s pravidlami.
- Izolácia vyžaduje, aby viaceré transakcie, ktoré sa vyskytli v tom istom čase, neovplyvňovali výkon druhej strany. Napríklad, ak Joe vydal transakciu proti databáze v tom istom čase, keď Mary vydáva inú transakciu, obidva transakcie by mali fungovať v databáze izolovane. Databáza by mala vykonať celú transakciu Joe pred uskutočnením Maryovej, alebo naopak. Toto zabraňuje transakcii od spoločnosti Joe čítať prechodné údaje vytvorené ako vedľajší účinok časti transakcie spoločnosti Mary, ktorá sa neskutočne nebude viazať na databázu. Všimnite si, že vlastnosť izolácie nezabezpečuje, ktorá transakcia sa vykoná ako prvá - len to, že transakcie nebudú navzájom rušiť
- Trvanlivosť zabezpečuje, že akákoľvek transakcia súvisiaca s databázou sa nestratí. Trvanlivosť je zabezpečená pomocou záloh databázy a protokolov transakcií, ktoré uľahčujú obnovenie viazaných transakcií napriek akýmkoľvek následným poruchám softvéru alebo hardvéru.
Ako funguje ACID v praxi
Správcovia databázy používajú niekoľko stratégií na presadzovanie ACID.
Jeden, ktorý sa používa na presadzovanie jadra a trvanlivosti, je zapisovanie zápisu dopredu (WAL), v ktorom sa prvýkrát zapisuje každý detail transakcie do denníka, ktorý zahŕňa aj redo a vrátenie informácií. To zaisťuje, že vzhľadom na zlyhanie databázy akéhokoľvek druhu môže databáza skontrolovať protokol a porovnať jeho obsah so stavom databázy.
Ďalšou metódou používanou na riešenie atómovej a trvanlivosti je stínové stránkovanie, pri ktorom sa vytvorí tieňová stránka, keď sa majú údaje meniť. Aktualizácie dotazu sú zapísané na tieňovú stránku a nie na skutočné dáta v databáze. Samotná databáza sa upravuje až po dokončení úpravy.
Ďalšia stratégia sa nazýva protokol dvojfázového viazania , obzvlášť užitočný v distribuovaných databázových systémoch. Tento protokol rozdeľuje požiadavku na úpravu údajov do dvoch fáz: fázu žiadosti o vyžiadanie a fázu odovzdania. Vo fáze vyžiadania všetky DBMS v sieti, ktoré sú ovplyvnené transakciou, musia potvrdiť, že ich prijali a mali kapacitu na vykonanie transakcie. Po prijatí potvrdenia zo všetkých príslušných DBMS sa dokončí fáza odovzdávania, v ktorej sú údaje skutočne upravené.