Skip to main content

ACID-modellen för databashanteringssystem

Anonim

ACID-modellen för databasdesign är ett av de äldsta och viktigaste begreppen databasteori. Det ställer fram fyra mål som varje databashanteringssystem måste sträva efter att uppnå: atomicitet, konsistens, isolering och hållbarhet. En relationell databas som inte uppfyller något av dessa fyra mål kan inte anses vara tillförlitligt. En databas som har dessa egenskaper anses vara ACID-kompatibel.

Syra definierad

Låt oss ta en stund att granska alla dessa egenskaper i detalj:

  • Atomicity säger att databasändringar måste följa en "all eller ingenting" regel. Varje transaktion sägs vara "atomisk". Om en del av transaktionen misslyckas misslyckas hela transaktionen. Det är kritiskt att databashanteringssystemet upprätthåller transaktionernas atomkaraktär trots att det finns några DBMS, operativsystem eller maskinvarufel.
  • Konsistens säger att endast giltiga data kommer att skrivas till databasen. Om en transaktion av någon anledning exekveras som bryter mot databasens konsistensregler, kommer hela transaktionen att rullas tillbaka, och databasen kommer att återställas till ett tillstånd som överensstämmer med dessa regler. Å andra sidan, om en transaktion framgångsrikt körs, kommer den att ta databasen från ett tillstånd som överensstämmer med reglerna till ett annat tillstånd som också överensstämmer med reglerna.
  • Isolering kräver att flera transaktioner som inträffar samtidigt inte påverkar varandras utförande. Till exempel, om Joe utfärdar en transaktion mot en databas samtidigt som Mary utfärdar en annan transaktion, ska båda transaktionerna fungera på databasen på ett isolerat sätt. Databasen ska antingen utföra Joes hela transaktionen innan den kör Marys eller vice versa. Detta förhindrar att Joes transaktion läser mellandata som produceras som en bieffekt av en del av Marias transaktion som inte så småningom kommer att vara förbunden med databasen. Observera att isoleringsegenskapen inte säkerställer vilken transaktion som ska utföras först - bara att transaktionerna inte kommer att störa varandra
  • Hållbarhet säkerställer att alla transaktioner som är förbundna med databasen inte kommer att gå vilse. Hållbarhet säkerställs genom användning av databasbackupar och transaktionsloggar som underlättar återställandet av begåvade transaktioner trots alla efterföljande programvaru- eller maskinvarufel.

Hur syra fungerar i praktiken

Databasadministratörer använder flera strategier för att genomföra ACID.

En som används för att genomdriva atomicitet och hållbarhet är skrivskyddat loggning (WAL), där någon transaktionsdetalj först skrivs till en logg som innehåller både redo och ångra information. Detta säkerställer att databasen, med tanke på ett databasfel av något slag, kan kontrollera loggen och jämföra innehållet till databasens tillstånd.

En annan metod som används för att hantera atomicitet och hållbarhet är skugga-personsökning, där en skuggsida skapas när data ska ändras. Frågans uppdateringar skrivs till skuggsidan i stället för den verkliga data i databasen. Databasen i sig ändras endast när redigeringen är klar.

En annan strategi kallas tvåfas commit protokoll, särskilt användbart i distribuerade databassystem. Detta protokoll skiljer en begäran om att modifiera data i två faser: en commit-request-fas och en commit-fas. I begäranfasen måste alla DBMS på ett nätverk som påverkas av transaktionen bekräfta att de har mottagit det och har kapacitet att utföra transaktionen. När en bekräftelse har mottagits från alla relevanta DBMS-filer, slutfördes commitfasen där data faktiskt ändras.