logo

Lastnosti ACID v DBMS

Transakcije so temeljne operacije, ki nam omogočajo spreminjanje in pridobivanje podatkov. Vendar pa je za zagotovitev celovitosti baze podatkov pomembno, da se te transakcije izvajajo na način, ki ohranja pravilnost doslednosti in zanesljivost tudi v primeru okvar/napak. Tukaj pridejo v poštev lastnosti ACID.

ACID pomeni Atomicity Consistency Isolation and Durability.



Lastnosti kisline:

kislinske_lastnosti' title=

Obstajajo štiri lastnosti kisline

1. Atomičnost

Atomičnost pomeni, da je transakcija vse ali nič, bodisi so vse njene operacije uspešne bodisi nobena ni uporabljena. Če kateri koli del odpove, se celotna transakcija povrne nazaj, da ostane baza podatkov konsistentna.

  • Zaveži se : Če je transakcija uspešna, se spremembe trajno uporabijo.
  • Prekinitev/Povrnitev : Če transakcija ne uspe, se vse spremembe, narejene med transakcijo, zavržejo.

Primer : Razmislite o naslednji transakciji T sestavljen iz T1 in T2 : Prenos 0 z računa X na račun IN .

atomičnost' loading='lazy' title=Atomičnost

Če transakcija ne uspe po zaključku T1, vendar pred zaključkom T2, bo baza podatkov ostala v nedoslednem stanju. Pri Atomicity, če kateri koli del transakcije ne uspe, se celoten postopek vrne v prvotno stanje in se ne izvedejo delne spremembe.



Konsistentnost v transakcijah pomeni, da mora baza podatkov ostati v veljavnem stanju pred in po transakciji.

krožni razpored
  • Veljavno stanje sledi vsem definiranim omejitvam pravil in razmerjem (kot so primarni ključi tuji ključi itd.).
  • Če transakcija krši katero od teh pravil, se povrne, da se preprečijo poškodovani ali neveljavni podatki.
  • Če transakcija odšteje denar z enega računa, vendar ga ne doda drugemu (pri nakazilu), to krši doslednost.

Primer : Recimo, da mora biti vsota vseh stanj v bančnem sistemu vedno konstantna. Pred prenosom je skupno stanje 0. Po transakciji mora skupno stanje ostati 0. Če transakcija na sredini ne uspe (na primer posodobitev enega računa, drugega pa ne), mora sistem ohraniti svojo doslednost tako, da transakcijo vrne nazaj.

Skupaj, preden se pojavi T = 500 + 200 = 700.
Skupaj po nastopu T  = 400 + 300 = 700.



izolacija' loading='lazy' title=Doslednost

3. Izolacija

Izolacija zagotavlja, da transakcije potekajo neodvisno, ne da bi vplivale druga na drugo. Spremembe, ki jih izvede ena transakcija, niso vidne drugim, dokler niso potrjene.

Zagotavlja, da je rezultat sočasnih transakcij enak, kot če bi bile izvedene ena za drugo, kar preprečuje težave, kot so:

  • Dirty se glasi: branje nedodeljenih podatkov
  • Neponovljivo branje: spremembe podatkov med dvema branjima
  • Fantom se glasi: med transakcijo se pojavijo nove vrstice

Primer : Razmislite o dveh transakcijah T in T''.

  • X = 500 Y = 500
izolacija' loading='lazy' title=Izolacija

Pojasnilo:

1. Transakcija T:

  • T želi prestopiti iz X v Y.
  • T se bere IN (vrednost: 500) odšteje od X (novo X = 450) in doda Y (novo Y = 550).

2. Transakcija T'':

  • T' ' se začne in bere X (500) in Y (500).
  • Izračuna vsoto: 500 + 500 = 1000.
  • Medtem se vrednosti X in Y spremenita na 450 oziroma 550.
  • Torej bi morala biti pravilna vsota 450 + 550 = 1000.
  • Izolacija zagotavlja, da T'' ne bere zastarelih vrednosti, medtem ko druga transakcija (T) še vedno poteka.
  • Transakcije bi morale biti neodvisne in T'' bi moral dostopati do končnih vrednosti šele, ko se T zaveže.
  • S tem se izognete nedoslednim rezultatom, kot je nepravilna vsota, izračunana s T''.

4. Trajnost:

Trajnost zagotavlja, da se po enkratni transakciji njene spremembe trajno shranijo, tudi če sistem odpove. Podatki so shranjeni v obstojnem pomnilniku, tako da se baza podatkov lahko povrne v svoje zadnje odobreno stanje brez izgube podatkov.

Primer : Po uspešnem prenosu denarja z računa A na račun B se spremembe shranijo na disk. Tudi če takoj po potrditvi pride do zrušitve, bodo podrobnosti prenosa še vedno nedotaknjene, ko se sistem obnovi, kar zagotavlja vzdržljivost.

Kako lastnosti ACID vplivajo na načrtovanje in delovanje DBMS

The Lastnosti ACID v celoti zagotavljajo mehanizem za zagotavljanje pravilnosti in doslednosti baze podatkov na način, da je vsaka transakcija skupina operacij, ki delujejo kot ena enota, proizvaja dosledne rezultate, deluje ločeno od drugih operacij in posodobitve, ki jih naredi, so trajno shranjene.

Lastnosti ACID ščitijo celovitost podatkov DBMS tako, da zagotovijo, da se transakcije bodisi uspešno zaključijo bodisi ne pustijo sledi, če so prekinjene. Preprečujejo, da bi delne posodobitve poškodovale podatke, in zagotavljajo, da baza podatkov prehaja samo med veljavnimi stanji.

jlist

2. Nadzor sočasnosti

Lastnosti ACID zagotavljajo trden okvir za upravljanje sočasnih transakcij. Izolacija zagotavlja, da se transakcije medsebojno ne motijo, kar preprečuje anomalije podatkov, kot so izgubljene posodobitve, začasna nedoslednost in nedodeljeni podatki.

3. Obnovitev in toleranca napak

Trajnost zagotavlja, da se baza podatkov lahko povrne v dosledno stanje, tudi če se sistem zruši. Zahvaljujoč lastnostim Atomicity in Durability, če transakcija na sredini ne uspe, baza podatkov ostane v konsistentnem stanju.

Lastnina Odgovornost za vzdrževanje nepremičnin
AtomičnostUpravitelj transakcij
DoslednostProgramer aplikacij
IzolacijaUpravitelj nadzora sočasnosti
VzdržljivostOkrevanje

Kritični primeri uporabe za ACID v zbirkah podatkov

V sodobnih aplikacijah je zagotavljanje zanesljivosti in konsistentnosti podatkov ključnega pomena. Lastnosti ACID so temeljne v sektorjih, kot so:

  • Bančništvo : Transakcije, ki vključujejo denarna nakazila, vloge ali dvige, morajo ohranjati strogo doslednost in trajnost, da se preprečijo napake in goljufije.
  • E-poslovanje : Zagotavljanje, da se naročila in podatki o strankah obravnavajo pravilno in dosledno tudi med velikim prometom, zahteva skladnost z ACID.
  • Zdravstveno varstvo : Rezultati testov in predpisi bolnikovih zapisov morajo biti v skladu s strogimi standardi integritete in varnosti.