Atteikšanās no ACID labā BASE datu bāzu inženierijā

Relāciju datubāzes ir izstrādātas, balstoties uz uzticamību un konsekvenci. Inženieri, kuri tos izstrādāja, koncentrējās uz darījumu modeli, kas nodrošina, ka vienmēr tiks saglabāti četri ACID modeļa principi. Tomēr jaunas nestrukturētas datu bāzes modeļa parādīšanās sākas ar ACID. NoSQL datubāzes modelis izvairās no ļoti strukturēta relāciju modeļa par labu elastīgai atslēgas / vērtību veikala pieejai. Šī nestrukturētā pieeja datiem prasa alternatīvu ACID modelim: BASE modelim.

ACID modeļa pamatjēdzieni

Ir četri ACID modeļa pamatjēdzieni:

Darījumu atomiskums nodrošina to, ka katrs datubāzes darījums ir viena vienība, kas izpildei izmanto "visu vai neko" pieeju. Ja kāds paziņojums darījumā neizdodas, viss darījums tiek atgriezts atpakaļ.

Relāciju datu bāzes nodrošina arī katra darījuma konsekvenci ar datubāzes uzņēmējdarbības noteikumiem. Ja kāds no atomu darījuma elementiem traucētu datu bāzes konsekvenci, viss darījums neizdodas.

Datubāzes dzinējs nodrošina izolāciju starp vairākiem darījumiem, kas notiek tajā pašā laikā vai tuvu tai. Katrs darījums notiek vai nu pirms vai pēc katra cita darījuma, un datubāzes skats, ko darījums saskata tā sākumā, ir tikai mainīts pats darījums pirms tā noslēgšanas. Nekāds darījums nekad nedrīkstētu redzēt cita darījuma starpproduktu.

Galīgais ACID princips, izturība nodrošina to, ka pēc tam, kad darījums ir saistīts ar datu bāzi, tas tiek pastāvīgi saglabāts, izmantojot rezerves kopijas un darījumu žurnālus. Neveiksmes gadījumā šos mehānismus var izmantot, lai atjaunotu izdarītos darījumus.

Bāzes pamatprincipi

NoSQL datu bāzes, no otras puses, aptver situācijas, kad ACID modelis ir pārslogots vai faktiski traucētu datu bāzes darbību. Tā vietā NoSQL paļaujas uz mīkstāku modeli, kas pienācīgi ir zināms kā BASE modelis. Šis modelis ietver elastību, ko piedāvā NoSQL, un līdzīgas pieejas nestrukturēto datu pārvaldībai un apstrādei. BASE sastāv no trim principiem:

Pamata pieejamība . NoSQL datu bāzes pieeja koncentrējas uz datu pieejamību pat vairāku kļūdu gadījumā. Tas to panāk, izmantojot ļoti izplatītu pieeju datu bāzu pārvaldībai. Tā vietā, lai saglabātu vienotu lielu datu veikalu un koncentrētos uz šī veikala kļūdu toleranci, NoSQL datubāzes izplata datus daudzās uzglabāšanas sistēmās ar augstu replikācijas pakāpi. Maz ticamā gadījumā, ja traucējums traucē piekļuvi datu segmentam, tas nenozīmē, ka datu bāzē pilnībā tiks pārtraukta darbība.

Mīksta valsts . BASE datu bāzēs gandrīz pilnīgi atteikties no ACID modeļa atbilstības prasībām. Viens no BASE pamatprincipiem ir tas, ka datu konsekvence ir izstrādātāja problēma, un to nedrīkst apstrādāt ar datu bāzi.

Nejauša konsekvence . Vienīgā prasība, ka NoSQL datubāzēm ir konsekvence, ir prasīt, lai kādā nākotnē dati tiktu saskanēti ar konsekventu stāvokli. Netiek sniegtas nekādas garantijas par to, kad tas notiks. Tas ir pilnīgs izņēmums no tūlītējas atbilstības prasības attiecībā uz ACID, kas aizliedz darījumu izpildīt, līdz iepriekšējais darījums ir pabeigts, un datubāze ir saplūdusi uz konsekventu stāvokli.

BASE modelis nav piemērots katrai situācijai, bet tas noteikti ir elastīga alternatīva ACID modelim datu bāzēm, kurās nav nepieciešams stingri ievērot relāciju modeli.