ACID aizsargā jūsu datu bāzes datus
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: atomiskums, 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:
- Atomicitāte norāda, ka datu bāzu modifikācijām 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, neraugoties uz DBVS, operētājsistēmas vai aparatūras kļūdu.
- Konsekvence nosaka, 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ēšana prasa, 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 to, 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 tiek izmantots, lai nodrošinātu atomu un ilgmūžību, ir ievadīšana uz priekšu (WAL), kurā viss darījuma detaļas vispirms tiek ierakstīts logā, kurā ietverti gan atkārtota, gan atcelšanas informācija. Tas nodrošina, ka, ņemot vērā datubāzes kļūdu jebkura veida, datubāze var pārbaudīt žurnālu un salīdziniet tā saturu ar datubāzes stāvokli.
Vēl viena metode, ko izmanto, lai risinātu atomicitāti un izturību, ir ēnu izsekošana , kurā tiek izveidota ēnas lapa, kad datus ir nepieciešams mainīt. 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.
Vēl vienu stratēģiju sauc par divfāžu saistību protokolu, kas ir īpaši noderīgs sadalīto 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.