Skip to main content

Model ACID pro systémy správy databáze

Al-Bakarah-1 of the World's Best Quran Recitation in 50+ Languages-Open the subtitle- al shatri (Červen 2026)

Al-Bakarah-1 of the World's Best Quran Recitation in 50+ Languages-Open the subtitle- al shatri (Červen 2026)
Anonim

Model ACID návrhu databáze je jedním z nejstarších a nejdůležitějších pojmů databázové teorie. Stanovuje čtyři cíle, které musí každý systém řízení databáze usilovat o dosažení: atomicity, konzistence, izolace a trvanlivosti. Relační databáze, která nesplňuje některý z těchto čtyř cílů, nemůže být považována za spolehlivá. Databáze, která má tyto vlastnosti, se považuje za vyhovující požadavkům ACID.

ACID Definováno

Pojďme si chvíli podrobně prozkoumat každou z těchto charakteristik:

  • Atomicita uvádí, že modifikace databáze musí splňovat pravidlo "vše nebo nic". Každá transakce je údajně "atomická". Pokud selže jedna část transakce, celá transakce selže. Je zásadní, aby systém správy databáze udržoval atomovou povahu transakcí navzdory jakémukoli DBMS, operačnímu systému nebo selhání hardwaru.
  • Konzistence uvádí, že do databáze budou zapsány pouze platné údaje. Pokud je z nějakého důvodu provedena transakce, která porušuje pravidla konzistence databáze, celá transakce bude vrácena zpět a databáze bude obnovena do stavu, který je v souladu s těmito pravidly. Na druhou stranu, pokud transakce úspěšně provede, bude mít databázi z jednoho státu, který je v souladu s pravidly, s jiným stavem, který je také v souladu s pravidly.
  • Izolace vyžaduje, aby několik transakcí, které se vyskytly současně, neovlivnilo vzájemné provádění. Například pokud Joe vydává transakci proti databázi současně s Mary vydává jinou transakci, oba transakce by měly operovat v databázi izolovaně. Databáze by měla provádět celou transakci Joe před provedením Maryovy ​​práce nebo naopak. Toto zabraňuje transakci Joe při čtení přechodných dat vytvořených jako vedlejší účinek části transakce společnosti Mary, která se nakonec nebude vztahovat k databázi. Všimněte si, že vlastnost izolace nezaručuje, která operace bude provedena nejprve - pouze to, že transakce nebudou vzájemně ovlivňovat
  • Trvanlivost zajišťuje, že veškeré transakce, které jsou vázány na databázi, nebudou ztraceny. Trvanlivost je zajištěna pomocí záloh databází a protokolů transakcí, které usnadňují obnovení oddaných transakcí navzdory následným selháním softwaru nebo hardwaru.

Jak funguje ACID v praxi

Správci databází používají několik strategií k prosazování ACID.

Jeden zvyklý na prosazování atomicity a trvanlivosti je zapisování před zápisem (WAL), ve kterém jsou nejprve zapsány všechny podrobnosti o transakci do protokolu, který obsahuje jak informace o zpětném přehledu, tak zpětné informace. Tím je zajištěno, že vzhledem k selhání databáze libovolného druhu může databáze zkontrolovat protokol a porovnat jeho obsah se stavem databáze.

Další metodou používanou pro řešení atomicity a trvanlivosti je stínování, ve kterém je stínová stránka vytvořena, když mají být data upraveny. Aktualizace dotazu jsou zapsána na stínovou stránku spíše než na skutečná data v databázi. Databáze samotná je upravena pouze po dokončení úpravy.

Další strategie se nazývá dvoufázové potvrzení protokol, zvláště užitečný v distribuovaných databázových systémech. Tento protokol odděluje požadavek na úpravu dat do dvou fází: fázi žádosti o potvrzení a fázi odběru. Ve fázi žádostí musí všechny DBMS v síti ovlivněné transakcí potvrdit, že je přijaly a mají schopnost provést transakci. Po obdržení potvrzení ze všech příslušných DBMS se dokončí fáze odběru, ve které jsou data skutečně změněna.