Abandonarea ACID în favoarea BASE în ingineria bazelor de date

Bazele de date relaționale sunt proiectate cu fiabilitate și consecvență în centrul lor. Inginerii care le-au dezvoltat s-au concentrat pe un model tranzacțional care asigură că cele patru principii ale modelului ACID vor fi întotdeauna conservate. Cu toate acestea, apariția unui nou model de bază de date nestructurată transformă ACID pe cap. Modelul bazei de date NoSQL evită modelul relațional foarte bine structurat în favoarea unei abordări flexibile a magazinului cheie / valoare. Această abordare nestructurată a datelor necesită o alternativă la modelul ACID: modelul BASE.

Bazele fundamentale ale modelului ACID

Există patru principii de bază ale modelului ACID:

Atomicitatea tranzacțiilor asigură că fiecare tranzacție de bază de date este o singură unitate care adoptă o abordare "totală sau totală" a execuției. Dacă orice declarație din tranzacție nu reușește, întreaga tranzacție este reintrodusă.

Bazele de date relaționale asigură, de asemenea, coerența fiecărei tranzacții cu regulile de afaceri ale bazei de date. Dacă orice element al unei tranzacții atomice ar perturba coerența bazei de date, întreaga tranzacție nu reușește.

Motorul bazei de date impune izolarea între mai multe tranzacții care au loc la sau în același timp. Fiecare tranzacție are loc înainte sau după fiecare altă tranzacție, iar vizualizarea bazei de date pe care o tranzacție o vede la începutul acesteia este modificată numai de tranzacția în sine înainte de încheierea acesteia. Nici o tranzacție nu ar trebui să vadă produsul intermediar al unei alte tranzacții.

Principiul final al ACID-ului, durabilitatea , asigură că, odată ce o tranzacție este angajată în baza de date, ea se păstrează permanent prin utilizarea copiilor de rezervă și a jurnalelor de tranzacții. În caz de eșec, aceste mecanisme pot fi utilizate pentru a restabili tranzacțiile angajate.

Principiile fundamentale ale BASE

Bazele de date NoSQL, pe de altă parte, cuprind situațiile în care modelul ACID este depășit sau, de fapt, ar împiedica funcționarea bazei de date. În schimb, NoSQL se bazează pe un model mai moale cunoscut, în mod corespunzător, ca modelul BASE. Acest model găzduiește flexibilitatea oferită de NoSQL și abordări similare pentru gestionarea și tratarea datelor nestructurate. BASE constă din trei principii:

Disponibilitatea de bază . Abordarea bazei de date NoSQL se concentrează pe disponibilitatea datelor chiar și în prezența unor eșecuri multiple. Acest lucru se realizează prin utilizarea unei abordări extrem de distribuite a gestionării bazelor de date. În loc să mențină un singur magazin mare de date și să se concentreze asupra toleranței la erori a acelui magazin, bazele de date NoSQL răspândesc date în multe sisteme de stocare cu un grad ridicat de replicare. În cazul puțin probabil ca o eroare să perturbe accesul la un segment de date, acest lucru nu duce neapărat la o întrerupere completă a bazei de date.

Starea soft . Baze de date BASE abandonează cerințele de coerență ale modelului ACID destul de complet. Unul dintre conceptele de bază din spatele BASE este că coerența datelor este problema dezvoltatorului și nu ar trebui tratată de baza de date.

Eventuala consistență . Singura cerință pe care bazele de date NoSQL o are în ceea ce privește coerența este aceea de a solicita ca într-un anumit punct al viitorului, datele să se converge la o stare consecventă. Cu toate acestea, nu se fac garanții cu privire la momentul când acest lucru se va întâmpla. Aceasta este o îndepărtare completă de cerința de consecvență imediată a ACID care interzice executarea unei tranzacții până când tranzacția anterioară a fost finalizată și baza de date a convertit într-o stare consecventă.

Modelul BASE nu este adecvat pentru fiecare situație, dar este cu siguranță o alternativă flexibilă la modelul ACID pentru bazele de date care nu necesită respectarea strictă a unui model relațional.