GNU/Linux >> Znalost Linux >  >> Cent OS

ACID vs. BASE:Srovnání databázových transakčních modelů

Úvod

Rozhodování o správném systému správy databází (DBMS) může být obtížný úkol. Počet dostupných možností je obrovský. Než začnete hledat adekvátní databázové řešení, zvažte své požadavky.

Doporučeným prvním krokem v tomto procesu je výběr databázového transakčního modelu. Toto je sada pravidel, která určují, jak databáze organizuje, ukládá a manipuluje s daty.

V tomto článku sedozvíte o dvou nejoblíbenějších databázových transakčních modelech:ACID a BASE.

ACID vs. BASE:Jaké jsou rozdíly?

Teorém CAP říká, že je nemožné dosáhnout jak konzistence, tak dostupnosti v distribuovaném systému tolerantním k oddílům (tj. v systému, který nadále funguje v případech dočasných výpadků komunikace).

Zásadním rozdílem mezi ACID a BASE databázovými modely je způsob, jakým se s tímto omezením vypořádávají.

  • Model ACID poskytuje konzistentní systém.
  • Model BASE poskytuje vysokou dostupnost.

Abychom poskytli další informace, probereme každý z modelů samostatně a poté je porovnáme.

Model ACID

Databázový transakční model ACID zajišťuje, že provedená transakce je vždy konzistentní. Díky tomu je vhodný pro podniky, které se zabývají online zpracováním transakcí (např. finanční instituce) nebo online analytickým zpracováním (např. datové sklady). Tyto organizace potřebují databázové systémy, které dokážou zpracovat mnoho malých simultánních transakcí. Pro neplatné stavy musí být nulová tolerance.

Pro vysvětlení ACID modelu je nejlepší začít tím, že rozebereme zkratku v jejím názvu.

ACID znamená:

  • Atomový – Každá transakce je buď správně provedena, nebo se proces zastaví a databáze se vrátí zpět do stavu před zahájením transakce. Tím je zajištěno, že všechna data v databázi jsou platná.
  • Konzistentní – Zpracovaná transakce nikdy neohrozí strukturální integritu databáze.
  • Izolovaný – Transakce nemohou ohrozit integritu jiných transakcí tím, že s nimi budou interagovat, dokud ještě probíhají.
  • Trvalá – Údaje o provedené transakci zůstanou zachovány i v případě výpadku sítě nebo napájení. Pokud se transakce nezdaří, nebude to mít vliv na zmanipulovaná data.

Příklad použití kyseliny

Finanční instituce budou téměř výhradně využívat databáze ACID. Převody peněz závisí na atomární povaze ACID.

Přerušená transakce, která není okamžitě odstraněna z databáze, může způsobit mnoho problémů. Peníze mohly být odepsány z jednoho účtu a kvůli chybě nikdy připsány na jiný.

Které databáze jsou kompatibilní s ACID?

Jedním z bezpečných způsobů, jak zajistit, aby vaše databáze vyhovovala ACID, je zvolit systém správy relačních databází. Patří mezi ně MySQL, PostgreSQL, Oracle, SQLite a Microsoft SQL Server.

Některé NoSQL DBMS, jako je Apache's CouchDB nebo IBM's Db2, mají také určitý stupeň shody s ACID. Filozofie přístupu NoSQL ke správě databází však jde proti přísným pravidlům ACID. Databáze NoSQL proto nejsou doporučenou volbou pro ty, kteří potřebují přísná prostředí.

Základní model

Vzestup databází NoSQL poskytl flexibilní a plynulý způsob manipulace s daty. V důsledku toho byl navržen nový databázový model odrážející tyto vlastnosti.

Zkratka BASE je o něco více matoucí než ACID. Slova za ním však naznačují způsoby, jakými se BASE model liší.

BASE znamená:

  • Základně dostupné – Spíše než vynucování okamžité konzistence zajistí databáze NoSQL modelované BASE dostupnost dat jejich šířením a replikací napříč uzly databázového clusteru.
  • Měkký stav – Kvůli nedostatku okamžité konzistence se hodnoty dat mohou v průběhu času měnit. Model BASE končí s konceptem databáze, která prosazuje svou vlastní konzistenci a deleguje tuto odpovědnost na vývojáře.
  • Nakonec konzistentní – Skutečnost, že BASE neprosazuje okamžitou konzistenci, neznamená, že jí nikdy nedosáhne. Dokud se to však nestane, čtení dat je stále možné (i když nemusí odrážet realitu).

BASE Příklad použití

Marketingové společnosti a společnosti poskytující služby zákazníkům, které se zabývají analýzou sentimentu, upřednostní elasticitu BASE při provádění průzkumu sociálních sítí. Zdroje sociálních sítí nejsou dobře strukturované, ale obsahují obrovské množství dat, která může databáze modelovaná BASE snadno uložit.

Které databáze používají BASE model?

Stejně jako databáze SQL jsou téměř jednotně kompatibilní s ACID, databáze NoSQL mají tendenci odpovídat zásadám BASE. MongoDB, Cassandra a Redis patří spolu s Amazon DynamoDB a Couchbase mezi nejoblíbenější řešení NoSQL.

ACID vs. BASE:Která je pro vás dobrá?

Na otázku, který databázový model je lepší, nelze jednoznačně odpovědět. Proto je třeba učinit rozhodnutí zvážením všech aspektů projektu.

Vzhledem ke své vysoce strukturované povaze budou databáze kompatibilní s ACID vhodnější pro ty, kteří vyžadují konzistenci, předvídatelnost a spolehlivost.

Ti, kteří považují růst za svou prioritu, budou pravděpodobně chtít zvolit model BASE, protože umožňuje snazší škálování a poskytuje větší flexibilitu. BASE však také vyžaduje vývojáře, kteří budou vědět, jak se vypořádat s omezeními modelu.


Cent OS
  1. Jak nainstalovat wordpress na CentOS 6

  2. Nejčastější dotazy k nasazení MySQL

  3. Modely obnovy databáze SQL Server

  1. MyISAM vs. InnoDB:Srovnání

  2. Co je distribuovaná databáze?

  3. Obnovení poškozené databáze RPM

  1. Co je vícemodelová databáze?

  2. 12 nejlepších cloudových databází

  3. Co je to databáze dokumentů?