Napuštanje ACID-a u korist BASE-a u inženjerstvu baza podataka

Relacijske baze podataka su dizajnirane sa pouzdanošću i konzistentnošću u svom jezgru. Inženjeri koji su ih razvili fokusirali su se na transakcioni model koji osigurava da se sva četiri principa ACID modela uvek čuvaju. Međutim, pojavljivanje novog nestruktuiranog modela baze podataka pretvara ACID na svoju glavu. Model NoSQL baze podataka izbjegava visoko strukturirani relacijski model u korist fleksibilnog pristupa pristupu ključu / vrijednosti. Ovaj nestrukturirani pristup podacima zahteva alternativu ACID modelu: BASE modelu.

Osnovni principi ACID modela

Postoje četiri osnovna načela ACID modela:

Atomičnost transakcija osigurava da svaka transakcija baze podataka predstavlja jedinstvenu jedinicu koja usvaja "sve ili ništa" pristup izvršenju. Ako bilo koja izjava u transakciji ne uspije, cela transakcija se vraća nazad.

Relacijske baze podataka takođe obezbeđuju konzistentnost svake transakcije sa poslovnim pravilima baze podataka. Ako bilo koji element atomske transakcije naruši konzistentnost baze podataka, cela transakcija ne uspije.

Motor baze podataka primjenjuje izolaciju između više transakcija koje se javljaju u isto vrijeme ili u isto vrijeme. Svaka transakcija se dešava bilo pre ili nakon svake druge transakcije, a pogled na bazu podataka koju transakcija vidi na početku samo je izmenjena samom transakcijom pre njegovog zaključka. Nijedna transakcija nikada ne bi trebala videti srednji proizvod druge transakcije.

Konačni princip ACID-a, izdržljivost , osigurava da nakon što se transakcija posveti bazi podataka, trajno je sačuvana korištenjem rezervnih kopija i dnevnika transakcija. U slučaju neuspjeha, ovi mehanizmi se mogu koristiti za obnavljanje izvršenih transakcija.

Osnovni principi BASE

NoSQL baze podataka, s druge strane, obuhvataju situacije u kojima je model ACID prekomeran ili bi u stvari otežao rad baze podataka. Umesto toga, NoSQL se oslanja na mekši model poznat, na odgovarajući način, kao BASE model. Ovaj model odgovara fleksibilnosti koju nudi NoSQL i sličnim pristupima u upravljanju i curiranju nestrukturiranih podataka. BASE se sastoji od tri principa:

Osnovna dostupnost . Pristup NoSQL baze podataka fokusira se na dostupnost podataka čak iu prisustvu višestrukih kvarova. To postiže korišćenjem visoko distribuiranog pristupa upravljanju bazama podataka. Umjesto da održavaju jedinstvenu veliku trgovinu podataka i fokusirajući se na toleranciju greške te trgovine, NoSQL baze podataka šire podatke u mnogim sistemima za skladištenje sa visokim stepenom replikacije. U slučaju da neuspeh ometa pristup segmentu podataka, to ne mora nužno dovesti do potpunog otkaza baze podataka.

Meko stanje . Bazne baze podataka u potpunosti napuštaju zahteve konzistentnosti modela ACID. Jedan od osnovnih koncepata iza BASE-a jeste da je konzistentnost podataka problem developera i ne bi trebalo da ga upravlja bazom podataka.

Eventualna konzistentnost . Jedini uslov da se bazne baze podataka NoSQL-a odnose na konzistentnost je zahtevati da će u nekom trenutku u budućnosti podaci konvergirati u dosledno stanje. Međutim, ne postoje nikakve garancije o tome kada će se to dogoditi. To je kompletno odstupanje od trenutnog zahteva konzistentnosti ACID-a koja zabranjuje izvršenje transakcije sve dok prethodna transakcija nije završena i baza podataka je konvergentna u doslednom stanju.

BASE model nije prikladan za svaku situaciju, ali svakako je fleksibilna alternativa ACID modelu za baze podataka koji ne zahtijevaju strogo pridržavanje relacionom modelu.