BASE Model vývoje databáze

Obsah:

BASE Model vývoje databáze
BASE Model vývoje databáze
Anonim

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ý zajišťuje, že čtyři principy modelu ACID budou vždy zachovány. Nástup nového modelu nestrukturované databáze však staví ACID na hlavu. Databázový model NoSQL se 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 ACID modelu: BASE model.

Image
Image

Základní principy modelu ACID

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

  • atomicita transakcí zajišťuje, že každá databázová transakce je jedinou jednotkou, která přijímá přístup „vše nebo nic“. Pokud některý výpis v transakci selže, celá transakce bude vrácena zpět.
  • Relační databáze také zajišťují konzistenci každé transakce s obchodními pravidly databáze. Pokud by jakýkoli prvek atomické transakce narušil konzistenci databáze, celá transakce selže.
  • Databázový stroj vynucuje izolaci mezi více transakcemi probíhajícími ve stejnou dobu nebo téměř ve stejnou dobu. Každá transakce probíhá buď před, nebo po každé další transakci a pohled na databázi, který transakce vidí na jejím začátku, je měněn 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, durability, zajišťuje, že jakmile je transakce zapsána do databáze, je trvale uchována pomocí záloh a transakčních protokolů. V případě selhání lze tyto mechanismy použít k obnovení potvrzených transakcí.

Základní principy BASE

Na druhé straně databáze NoSQL zahrnují situace, kdy je ACID model přehnaný nebo by ve skutečnosti bránil provozu databáze. Namísto toho se NoSQL spoléhá na měkčí model známý jako BASE model. Tento model vyhovuje flexibilitě, kterou nabízí NoSQL a podobné přístupy ke správě a správě nestrukturovaných dat. BASE se skládá ze tří principů:

  • Základní dostupnost Přístup k databázi NoSQL se zaměřuje na dostupnost dat i v případě vícenásobných selhání. Dosahuje toho pomocí vysoce distribuovaného přístupu ke správě databází. Namísto udržování jednoho velkého úložiště dat a zaměření na odolnost tohoto úložiště proti chybám, databáze NoSQL šíří data napříč mnoha úložnými systémy s vysokým stupněm replikace. V nepravděpodobném případě, že selhání naruší přístup k segmentu dat, nemusí to nutně vést k úplnému výpadku databáze.
  • Měkký stav. Databáze BASE téměř úplně opouštějí požadavky na konzistenci modelu ACID. Jedním ze základních konceptů BASE je, že konzistence dat je problémem vývojáře a neměla by být řešena databází.
  • Případná konzistence Jediným požadavkem, který mají databáze NoSQL ohledně konzistence, je požadavek, aby v určitém okamžiku v budoucnu data konvergovala do konzistentního stavu. Neexistují však žádné záruky ohledně toho, kdy k tomu dojde. To je úplný odklon od požadavku na okamžitou konzistenci ACID, který zakazuje provedení transakce, dokud není dokončena předchozí transakce a databáze nekonverguje do konzistentního stavu.

V BASE může základní dostupnost znamenat, že nemáte pod kontrolou ani zdroje dat. V rámci svého úsilí můžete například odkazovat na veřejné datové sady.

Případy relativního použití

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

Optimální případy použití pro databáze využívající ACID závisí na vysoce strukturovaných datech s předvídatelnými vstupy a výstupy. Databáze lidských zdrojů, maloobchodní databáze a elektronické lékařské záznamy tak těží z robustní kontroly vnitřní konzistence, kterou ACID nabízí.

Řešení BASE jsou však lepší pro nejasná témata, jako je analýza sentimentu. Projekt se strukturou BASE by mohl například prohledat zdroj Twitteru a hledat slova, která na základě konkrétního hashtagu implikují emoce. Zdroj Twitteru není dobře strukturovaný ani lokálně vytvořený, ale datový proud nabízí informace, které jsou naprogramovány do dotazů, i když rozsah a povaha těchto dat nejsou čistě ohraničeny.

Doporučuje: