Skip to main content

ACID modelis datu bāzu pārvaldības sistēmām

Anonim

Datubāzes dizaina ACID modelis ir viens no vecākajiem un svarīgākajiem datubāzes teorijas jēdzieniem. Tajā izvirzīti četri mērķi, kas jācenšas panākt katrai datu bāzes pārvaldības sistēmai: atomicitāte, konsekvence, izolācija un izturība. Relāciju datubāzi, kas neatbilst nevienam no šiem četriem mērķiem, nevar uzskatīt par ticamu. Datu bāze, kurai piemīt šīs īpašības, tiek uzskatīta par ACID.

ACID definēts

Pielāgojiet brīdi, lai detalizēti pārbaudītu katru no šīm īpašībām:

  • Atomitāte norāda, ka datu bāzu modifikācijām ir jāievēro "visu vai neko" noteikums. Katrs darījums tiek uzskatīts par "atomu". Ja viena darījuma daļa neizdodas, viss darījums neizdodas. Ir būtiski, lai datubāzu pārvaldības sistēma saglabātu darījumu atomu raksturu neatkarīgi no DBVS, operētājsistēmas vai aparatūras kļūmes.
  • Konsekvence norāda, ka datubāzē tiks ierakstīti tikai derīgi dati. Ja kāda iemesla dēļ tiek izpildīts darījums, kas pārkāpj datubāzes konsekvences noteikumus, viss darījums tiks atgriezts atpakaļ, un datubāze tiks atjaunota stāvoklī, kas atbilst šiem noteikumiem. No otras puses, ja darījums veiksmīgi izpilda, tā ņems datubāzi no vienas valsts, kas atbilst noteikumiem, uz citu valsti, kas arī atbilst noteikumiem.
  • Izolācija pieprasa, lai vienlaicīgi notikušie vairāki darījumi neietekmē viens otra izpildi. Piemēram, ja Džo izdod darījumu pret datubāzi, tajā pašā laikā, kad Marija izdod citu darījumu, abiem darījumiem ir jāizmanto izolētā veidā. Pirms Marijas izpildīšanas datubāzei ir vai nu jāizpilda Džo viss darījums, vai arī otrādi. Tas neļauj Joe darījumam nolasīt starpposma datus, kas iegūti kā Marijas darījuma daļas blakusparādība, kas galu galā nebūs saistīta ar datu bāzi. Ievērojiet, ka izolācijas īpašums nenodrošina, kurš darījums vispirms tiks izpildīts - vienīgi šie darījumi netraucē viens otru
  • Izturība nodrošina, ka visi darījumi, kas veikti datu bāzē, netiks zaudēti. Izturība tiek nodrošināta, izmantojot datubāzes dublējumkopijas un darījumu žurnālus, kas atvieglo izdarīto darījumu atjaunošanu, neskatoties uz jebkādām vēlākām programmatūras vai aparatūras kļūmēm.

Kā ACID darbojas praksē

Datu bāzes administratori izmanto vairākas stratēģijas ACID ieviešanai.

Viens, kas izmantots, lai panāktu atomu un izturību, ir rakstīšana uz priekšu mežizstrāde (WAL), kurā visi darījumu dati vispirms tiek ierakstīti logā, kurā ietverta gan atkārtota, gan atcelta informācija. Tas nodrošina to, ka, ņemot vērā datu bāzu neveiksmi, datu bāze var pārbaudīt žurnālu un salīdzināt tā saturu ar datubāzes stāvokli.

Vēl viena metode, ko izmanto, lai risinātu atomicitāti un izturību, ir ēnu izsaukšana kurā ir izveidota ēnas lapa, kad dati ir jāmaina. Vaicājuma atjauninājumi tiek ierakstīti ēnas lapā, nevis reālajos datu bāzē. Pati datu bāze tiek modificēta tikai tad, kad rediģēšana ir pabeigta.

Cita stratēģija tiek saukta par divfāžu saistības protokols, kas ir īpaši noderīgs izplatītajās datu bāzu sistēmās. Šis protokols atdala pieprasījumu mainīt datus divos posmos: saistību pieprasījuma fāze un nodibināšanas fāze. Pieprasījuma fāzē visiem DBVS tīklā, kurus ietekmē darījums, ir jāapstiprina, ka tie ir saņēmuši to un ir spējīgi veikt darījumu. Tiklīdz apstiprinājums ir saņemts no visām attiecīgajām DBVS, tiek pabeigta saistību izpildes fāze, kurā datus faktiski groza.