ACID Protejează datele bazei dvs. de date
Modelul ACID al designului bazei de date este unul dintre cele mai vechi și mai importante concepte ale teoriei bazelor de date. Acesta propune patru obiective pe care fiecare sistem de gestionare a bazelor de date trebuie să le depună: atomicitate, consistență, izolare și durabilitate. O bază de date relațională care nu reușește să îndeplinească oricare dintre aceste patru obiective nu poate fi considerată fiabilă. O bază de date care posedă aceste caracteristici este considerată ca fiind compatibilă cu ACID.
ACID Definit
Să luăm o clipă pentru a examina detaliile fiecăruia dintre aceste caracteristici:
- Atomicitatea afirmă că modificările bazei de date trebuie să respecte o regulă "totală sau nimic". Fiecare tranzacție se spune că este "atomică". Dacă o parte din tranzacție nu reușește, întreaga tranzacție nu reușește. Este esențial ca sistemul de gestionare a bazelor de date să mențină caracterul atomic al tranzacțiilor, în ciuda oricăror datorii, sisteme de operare sau defecțiuni hardware.
- Consistența afirmă că numai date valide vor fi scrise în baza de date. Dacă din anumite motive este executată o tranzacție care încalcă regulile de consecvență ale bazei de date, întreaga tranzacție va fi reintrodusă și baza de date va fi restabilită la o stare compatibilă cu acele reguli. Pe de altă parte, dacă o tranzacție se execută cu succes, aceasta va duce baza de date dintr-o stare care este în concordanță cu regulile cu o altă stare care este, de asemenea, conformă cu regulile.
- Izolarea necesită ca mai multe tranzacții care apar în același timp să nu influențeze executarea celeilalte. De exemplu, dacă Joe emite o tranzacție împotriva unei baze de date în același timp în care Mary emite o tranzacție diferită, ambele tranzacții ar trebui să funcționeze pe baza de date într-o manieră izolată. Baza de date ar trebui să efectueze întreaga tranzacție a lui Joe înainte de a executa Mary's sau vice-versa. Aceasta împiedică tranzacția lui Joe să citească date intermediare produse ca efect secundar al unei părți din tranzacția lui Mary, care nu va fi în cele din urmă angajată în baza de date. Rețineți că proprietatea de izolare nu vă asigură care tranzacție se va executa mai întâi - doar că tranzacțiile nu vor interfera una cu cealaltă
- Durabilitatea asigură că orice tranzacție angajată în baza de date nu va fi pierdută. Durabilitatea este asigurată prin utilizarea copiilor de siguranță ale bazei de date și a jurnalelor de tranzacții care facilitează restaurarea tranzacțiilor angajate, în ciuda oricăror defecțiuni software sau hardware ulterioare.
Cum acționează ACID în practică
Administratorii de baze de date folosesc mai multe strategii pentru a aplica ACID.
Unul folosit pentru a impune atomicitatea și durabilitatea este înregistrarea în scriere înainte (WAL) în care orice detaliu al tranzacției este scris mai întâi într-un jurnal care include atât informații de redo, cât și de anulare a informațiilor.Acest lucru asigură că, având în vedere o eroare a bazei de date de orice fel, jurnalul și să compare conținutul acestuia cu starea bazei de date.
O altă metodă folosită pentru a aborda atomicitatea și durabilitatea este paginile de tip shadow în care este creată o pagină de umbră atunci când datele trebuie modificate. Actualizările interogării sunt scrise mai degrabă în pagina de umbră decât în datele reale din baza de date. Baza de date însăși este modificată numai atunci când editarea este finalizată.
O altă strategie se numește protocolul de comitere în două faze , folositor în special în sistemele de baze de date distribuite. Acest protocol separă o cerere de modificare a datelor în două faze: o fază de solicitare de comitere și o fază de angajare. În faza de solicitare, toate DBMS-urile dintr-o rețea afectate de tranzacție trebuie să confirme că au primit-o și au capacitatea de a efectua tranzacția. După ce se primește confirmarea din toate DBMS-urile relevante, se completează faza de angajament în care datele sunt efectiv modificate.