ACID

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă sunteți în căutarea pentru pagina de test pentru web browsere , a se vedea Acid1 , Acid2 sau Acid3 .

În cadrul bazei de date , ACID provine din „ acronimul englez Atomicity, Consistency, Isolation, and Durability (A tomicità, C coherence, I nsulation urabilità și D) și indică proprietățile logice care trebuie să aibă tranzacția .

Descriere

Pentru ca tranzacțiile să funcționeze corect pe date, mecanismele care le implementează trebuie să îndeplinească aceste patru proprietăți:

  • atomicitate sau elementaritate : procesul trebuie să fie divizibil într-un număr finit de unități indivizibile, numite tranzacții . Prin urmare, executarea unei tranzacții trebuie, prin definiție, să fie totală sau nulă, iar execuțiile parțiale nu sunt permise; un proces, chiar parțial, pe de altă parte, întrucât un set de tranzacții poate să nu fie elementar.
  • coerență : baza de date respectă constrângerile de integritate , atât la începutul, cât și la sfârșitul tranzacției. Nu trebuie să existe contradicții ( neconcordanță a datelor ) între datele stocate în DB;
  • izolare : fiecare tranzacție trebuie efectuată izolat și independent de alte tranzacții, eventualul eșec al unei tranzacții nu trebuie să interfereze cu alte tranzacții în execuție;
  • durabilitate : denumită și persistență , se referă la faptul că odată ce o tranzacție a solicitat o lucrare de comitere , modificările făcute nu mai trebuie pierdute. Pentru a evita pierderea datelor din cauza defecțiunilor care apar în intervalul de timp dintre momentul în care baza de date se angajează să scrie modificările și momentul în care le scrie efectiv, se păstrează registre de jurnal acolo unde sunt notate toate operațiunile.

În sistemele SGBD , tranzacțiile sunt procesate prin procesarea tranzacțiilor . O interogare (adică o interogare către baza de date) și alte acțiuni sunt grupate într-o tranzacție care trebuie efectuată atomic , izolat de celelalte și care implică eventual o modificare permanentă a bazei de date. Acest comportament este asigurat de

  • Manager de control al concurenței sau spațiu de lucru privat care garantează atomicitatea și izolarea
  • Manager de logare / recuperare care asigură durabilitate și consistență.

Izolare

Există patru niveluri de izolare:

  1. citiți fără angajament :
    • permite tranzacții numai în citire, fără a bloca citirea datelor
    • o tranzacție poate citi date murdare , deoarece ar putea dispărea dacă tranzacția care a generat-o se întrerupe
    Exemple:
    T1 actualizează un rând r1
    * T2 accesează r1
    * T1 se încheie cu o revenire
    * T2 a accesat date care nu au existat niciodată
  2. citiți angajat:
    • prevede eliberarea imediată a datelor în lectură, întârzierea celor în scris
    • citiri nerepetabile în cadrul aceleiași tranzacții
  3. citire repetabilă:
    • atât datele de citire, cât și cele de scriere sunt blocate, dar numai pe tuplele tabelului implicat
    • generează fenomenul fantomelor (fantomelor)
  4. serializabil:
    Ar putea garanta serializarea reală a codului prin blocarea acceselor la tabelele puse în joc, cu toate acestea acestea sunt soluții prea ineficiente pentru a fi utilizate în aplicații critice, în realitate modul serializat se limitează la evitarea fenomenelor examinate pentru cele mai scăzute niveluri de izolare.

Manager de control al concurenței sau spațiu de lucru privat

Tranzacția face modificări pe o copie a resursei bazei de date. Dacă nu se termină cu succes, copia este distrusă, în caz contrar modificările făcute pe copie sunt făcute permanente prin operația de confirmare. Sistemul garantează astfel atomicitatea sa. Tranzacțiile trebuie efectuate izolat unul de celălalt, dar adesea multe tranzacții sunt efectuate simultan pe același sistem. Managerul de control al concurenței se asigură că acțiunile individuale ale diferitelor tranzacții sunt efectuate într-o ordine care nu interferează între ele ( izolare ). Managerul de control al concurenței este realizat prin două instrucțiuni primitive:

  • blocare , instrucțiune prin care se afirmă că o resursă este blocată de o anumită tranzacție;
  • deblocare , instrucțiune prin care se afirmă că o resursă a fost eliberată printr-o anumită tranzacție.

Seria de blocări este stocată în tabelul de blocare (secțiunea specifică a SGBD). Managerul de control al concurenței are, de asemenea, sarcina de a rezolva blocaje cauzate de blocări prin întreruperea uneia sau mai multor tranzacții. Pentru a preveni blocările și a gestiona mai bine tranzacțiile, este introdus conceptul de planificator. Planificatorul are sarcina de a garanta izolarea, de a accepta o tranzacție și de a-i atribui un identificator unic, cerând managerului tampon DBMS să citească / scrie în baza de date în conformitate cu o anumită secvență.

Manager logare / recuperare

Pentru a asigura persistența datelor bazei de date, chiar și în cazul unui accident (de exemplu, se blochează accesul tranzacției la resursă), fiecare modificare a bazei de date este înregistrată separat pe disc. Managerul de jurnal înregistrează aceste modificări pentru a permite managerului de recuperare să restaureze baza de date la o stare consecventă în orice moment (în urma unui blocaj). Managerul de jurnal își scrie datele prin Buffer Manager, dar înainte de a continua se asigură că au fost scrise pe disc. Timestamping asociază o marcă de timp cu care să permită și să controleze accesul tranzacțiilor la resursele bazei de date la fiecare tranzacție și fiecare resursă.

Bibliografie

  • (EN) ACID (Atomicitate, consistență, izolare și durabilitate.), În Dicționarul de afaceri electronice, Hoboken, Wiley, 2003.
  • ( EN ) ACID (Atomicitate, coerență, izolare și durabilitate) , în Dicționar de aplicații multimedia și Internet: Ghid pentru dezvoltatori și utilizatori , Hoboken, Wiley, 1999.

Alte proiecte

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT