Opustenie ACID v prospech BASE v databázovom inžinierstve

Relačné databázy sú navrhnuté so spoľahlivosťou a konzistenciou. Inžinieri, ktorí ich vyvinuli, sa zamerali na transakčný model, ktorý zabezpečuje zachovanie štyroch princípov modelu ACID . Avšak príchod nového neštruktúrovaného databázového modelu premenil ACID na hlavu. Model databázy NoSQL vyhýba vysoko štruktúrovanému relačnému modelu v prospech flexibilného prístupu k ukladaniu kľúčov a hodnôt. Tento neštruktúrovaný prístup k údajom si vyžaduje alternatívu k modelu ACID: model BASE.

Základné vlastnosti modelu ACID

Existujú štyri základné myšlienky modelu ACID:

Atomicita transakcií zabezpečuje, že každá databázová transakcia je jednotná jednotka, ktorá prijíma prístup "celkom alebo nič" k vykonaniu. Ak niektoré vyhlásenie v transakcii zlyhá, celá transakcia sa vráti späť.

Relačné databázy tiež zabezpečujú konzistenciu každej transakcie s obchodnými pravidlami databázy. Ak by nejaký prvok atómovej transakcie narušil konzistenciu databázy, celá transakcia zlyhá.

Databázový nástroj presadzuje izoláciu medzi viacerými transakciami, ktoré sa vyskytnú v rovnakom čase alebo v jeho blízkosti. Každá transakcia prebieha buď pred alebo po každej ďalšej transakcii a pohľad na databázu, ktorú transakcia vidí na jej začiatku, je zmenená iba samotnou transakciou pred jej uzatvorením. Žiadna transakcia by nikdy nemala vidieť medziprodukt inej transakcie.

Konečný princíp ACID, trvanlivosť , zabezpečuje, že akonáhle sa transakcia zaväzuje k databáze, je trvalo zachovaná pomocou záloh a protokolov transakcií. V prípade zlyhania môžu byť tieto mechanizmy použité na obnovenie viazaných transakcií.

Základné zásady BASE

NoSQL databázy na druhej strane zahŕňajú situácie, v ktorých je model ACID nadmerný, alebo by v skutočnosti bránili prevádzke databázy. Namiesto toho sa spoločnosť NoSQL spolieha na mäkší model známy vhodne ako model BASE. Tento model zohľadňuje flexibilitu ponúkanú spoločnosťou NoSQL a podobné prístupy k riadeniu a spracovávaniu neštruktúrovaných údajov. Základ sa skladá z troch zásad:

Základná dostupnosť . Databázový prístup NoSQL sa zameriava na dostupnosť údajov aj v prípade viacerých zlyhaní. Dosiahne to pomocou vysoko distribuovaného prístupu k riadeniu databázy. Namiesto zachovania jediného veľkého úložiska údajov a zamerania sa na toleranciu porúch tohto úložiska databázy NoSQL šíria dáta v mnohých systémoch ukladania dát s vysokým stupňom replikácie. V nepravdepodobnom prípade, že zlyhanie narušuje prístup k segmentu dát, nemusí to nutne viesť k úplnému výpadku databázy.

Soft stav . Databázy BASE opúšťajú požiadavky konzistencie modelu ACID celkom úplne. Jedným zo základných pojmov za základom je, že konzistencia údajov je problémom vývojára a databáza by sa s ním nemala riadiť.

Prípadná konzistencia . Jediná požiadavka, ktorú majú databázy NoSQL o konzistenciu, je vyžadovať, aby sa údaje v určitom čase v budúcnosti zhromažďovali do konzistentného stavu. Neposkytujú sa však žiadne záruky, kedy k tomu dôjde. To je úplný odklon od požiadavky bezprostrednej konzistencie ACID, ktorá zakazuje vykonanie transakcie, kým sa nedosiahne predchádzajúca transakcia a databáza konverguje do konzistentného stavu.

Model BASE nie je vhodný pre každú situáciu, ale je určite flexibilnou alternatívou k modelu ACID pre databázy, ktoré nevyžadujú prísne dodržiavanie relatívneho modelu.