Model databáze ACID

ACID model návrh databáze je důležitým konceptem teorie databází. Stanovuje čtyři cíle, kterých musí systém správy databází dosáhnout: atomicita, konzistence, izolace a trvanlivost. Relační databázi, která nesplňuje žádný z těchto čtyř cílů, nelze považovat za spolehlivou. Naopak databáze, která má tyto vlastnosti, je považována za vyhovující ACID.

ACID, Definováno

Každý ze čtyř atributů ACID se řídí dobře definovanými standardy:

  • Atomicity uvádí, že úpravy databáze se musí řídit pravidlem vše nebo nic. Každá transakce je prý atomový. Pokud jedna část transakce selže, celá transakce selže. Je důležité, aby systém správy databází zachoval atomickou povahu transakcí navzdory jakémukoli selhání DBMS, operačního systému nebo hardwaru.
  • Konzistence uvádí, že do databáze budou zapsána pouze platná data. Pokud je provedena transakce, která porušuje pravidla konzistence databáze, celá transakce je odvolána a databáze je obnovena do stavu konzistentního s těmito pravidly. Na druhou stranu, pokud se transakce úspěšně provede, přenese databázi z jednoho stavu, který je v souladu s pravidly, do jiného stavu, který je rovněž v souladu s pravidly.
  • Izolace vyžaduje, aby více transakcí probíhajících ve stejnou dobu nemělo vzájemný dopad na provádění ostatních. Pokud například Joe zadá transakci proti databázi ve stejnou dobu, kdy Mary zadá jinou transakci, obě transakce by měly fungovat v databázi izolovaným způsobem. Databáze by měla buď provést Joeovu transakci před provedením Mary's nebo naopak. To zabrání Joeově transakci ve čtení mezilehlých dat vytvořených jako vedlejší efekt části Maryiny transakce, která nakonec nebude uložena do databáze. Vlastnost izolace nezaručuje, která transakce se provede jako první – pouze to, že se transakce nebudou vzájemně ovlivňovat.
  • Trvanlivost zajišťuje, že se žádná transakce zapsaná do databáze neztratí. Trvanlivost je zajištěna pomocí zálohování databáze a protokolů transakcí, které usnadňují obnovu potvrzených transakcí i přes jakékoli následné selhání softwaru nebo hardwaru.

Jak ACID funguje v praxi

Správci databáze používají několik strategií k vynucení ACID.

Jedna strategie používaná k prosazení atomicity a odolnosti je protokolování napřed, ve kterém jsou všechny podrobnosti o transakci nejprve zapsány do protokolu, který obsahuje informace o opakování a vrácení. Tento přístup zajišťuje, že v případě selhání databáze může databáze zkontrolovat protokol a porovnat jeho obsah se stavem databáze.

Další metodou používanou k řešení atomicity a trvanlivosti je stínové stránkování, ve kterém se vytvoří stínová stránka, když se mají data upravit. Aktualizace dotazu se zapisují na stínovou stránku, nikoli do skutečných dat v databázi. Databáze se upraví až po dokončení úprav.

Další strategie se nazývá dvoufázové potvrzení protokol, zvláště užitečný v distribuovaných databázových systémech. Tento protokol rozděluje požadavek na úpravu dat do dvou fází: fáze potvrzení-požadavek a fáze potvrzení. Ve fázi žádosti všechny DBMS v síti, která je ovlivněna transakcí, musí potvrdit, že ji přijala a má kapacitu k provedení transakce. Jakmile obdrží potvrzení od všech příslušných DBMS, dokončí se fáze potvrzení, ve které se upraví data.

Model ACID není jediným přístupem ke správě dat. The ZÁKLADNÍ model funguje dobře s nestrukturovanými daty.