Opuštění ACID ve prospěch BASE v databázovém inženýrství

Relační databáze jsou navrženy s důrazem na spolehlivost a konzistenci. Inženýři, kteří je vyvinuli, se zaměřili na transakční model, který zajistí zachování čtyř zásad modelu ACID . Nicméně příchod nového nestrukturovaného modelu databáze přeměňuje ACID na hlavu. Databázový model NoSQL vyhýbá vysoce strukturovanému relačnímu modelu ve prospěch flexibilního přístupu k ukládání klíčů a hodnot. Tento nestrukturovaný přístup k datům vyžaduje alternativu k modelu ACID: model BASE.

Základní principy modelu ACID

Existují čtyři základní principy modelu ACID:

Atomicita transakcí zajišťuje, že každá databázová transakce je jednotkou, která přijímá přístup "vše nebo nic" k provádění. Pokud dojde k selhání nějakého příkazu v transakci, celá transakce se vrátí zpět.

Relační databáze také zajišťují konzistenci každé transakce s obchodními pravidly databáze. Pokud nějaký prvek atomové transakce naruší konzistenci databáze, celá transakce selže.

Databázový stroj vynucuje izolaci mezi více transakcemi, ke kterým dochází v nebo v témže čase. Každá transakce nastane buď před nebo po každé jiné transakci a pohled na databázi, který transakce vidí na svém začátku, je změněna pouze samotnou transakcí před jejím uzavřením. Žádná transakce by nikdy neměla vidět meziprodukt jiné transakce.

Konečný princip ACID, trvanlivost , zajišťuje, že jakmile je transakce přidělena do databáze, je trvale zachována pomocí záloh a protokolů transakcí. V případě selhání mohou být tyto mechanismy použity k obnovení závazných transakcí.

Základní principy BASE

Databáze NoSQL na druhé straně zahrnují situace, kdy je model ACID nadměrný, nebo by ve skutečnosti bránil provozování databáze. Místo toho se společnost NoSQL spoléhá na měkčí model známý vhodně jako model BASE. Tento model přizpůsobuje flexibilitu, kterou nabízí NoSQL a podobné přístupy k řízení a vylepšování nestrukturovaných dat. BASE se skládá ze tří principů:

Základní dostupnost . Databázový přístup systému NoSQL se zaměřuje na dostupnost dat i v případě několika výpadků. Dosahuje to pomocí vysoce distribuovaného přístupu k správě databází. Namísto zachování jednoho velkého úložiště dat a zaměřením na toleranci poruch tohoto úložiště, databáze NoSQL rozšiřují data v mnoha úložných systémech s vysokým stupněm replikace. V nepravděpodobném případě, že selhání narušuje přístup k segmentu dat, nemusí to nutně vést k úplnému výpadku databáze.

Soft stav . Databáze BASE zcela zanechávají požadavky na konzistenci modelu ACID. Jedním ze základních pojmů za základem je, že konzistence dat je problémem vývojáře a databáze by se s ním neměl řídit.

Možná konzistence . Jediným požadavkem, který mají databáze NoSQL ohledně konzistence, je požadovat, aby se v určitém okamžiku budou data shromažďovat do konzistentního stavu. Nicméně není zaručeno, kdy k tomu dojde. To je úplný odklon od požadavku okamžité konzistence ACID, který zakazuje provedení transakce, dokud nebude dokončena předchozí transakce a databáze se konverguje do konzistentního stavu.

Model BASE není vhodný pro každou situaci, ale je jistě flexibilní alternativou k modelu ACID pro databáze, které nevyžadují přísné dodržování relačního modelu.