Skip to main content

ACID-modellen for databasebehandlingssystemer

Anonim

ACID-modellen av databasedesign er en av de eldste og viktigste begrepene i database teori. Det fastsetter fire mål som hvert databasebehandlingssystem må streve for å oppnå: atomicitet, konsistens, isolasjon og holdbarhet. En relasjonsdatabase som ikke oppfyller noen av disse fire målene, kan ikke anses pålitelig. En database som besitter disse egenskapene, anses som ACID-kompatibel.

Syre definert

La oss ta et øyeblikk for å undersøke hver av disse egenskapene i detalj:

  • atomicity sier at databasen modifikasjoner må følge en "alt eller ingenting" regel. Hver transaksjon sies å være "atomisk." Hvis en del av transaksjonen mislykkes, mislykkes hele transaksjonen. Det er kritisk at databasebehandlingssystemet opprettholder den atomeniske karakteren til transaksjoner til tross for eventuelle DBMS, operativsystem eller maskinvarefeil.
  • Konsistens sier at bare gyldige data vil bli skrevet til databasen. Hvis en transaksjon av en eller annen grunn utføres som bryter databasens konsistrasjonsregler, vil hele transaksjonen bli rullet tilbake, og databasen vil bli gjenopprettet til en tilstand som er i samsvar med disse reglene. På den annen side, hvis en transaksjon vellykket utføres, vil den ta databasen fra en stat som er i samsvar med reglene til en annen stat som også er i samsvar med reglene.
  • Isolasjon krever at flere transaksjoner som oppstår samtidig ikke påvirker hverandres utførelse. For eksempel, hvis Joe utsteder en transaksjon mot en database samtidig som Mary utsteder en annen transaksjon, bør begge transaksjonene fungere på databasen på en isolert måte. Databasen bør enten utføre Joes hele transaksjonen før du utfører Marias, eller omvendt. Dette forhindrer at Joe's transaksjon leser mellomdata som er produsert som en bivirkning av en del av Marias transaksjon som ikke til slutt vil bli forpliktet til databasen. Merk at isolasjonsegenskapen ikke sikrer hvilken transaksjon som skal utføres først - bare at transaksjonene ikke vil forstyrre hverandre
  • Varighet sikrer at enhver transaksjon forpliktet til databasen ikke vil gå tapt. Holdbarheten sikres gjennom bruk av databasekoblinger og transaksjonslogger som letter gjenopprettelsen av forpliktede transaksjoner til tross for eventuelle senere programvare eller maskinvarefeil.

Hvordan syre fungerer i praksis

Databaseadministratorer bruker flere strategier for å håndheve ACID.

En som brukes til å håndheve atomkraft og holdbarhet er skrive-ahead logging (WAL), der en transaksjonsdetalj først skrives til en logg som inneholder både omform og tilbakestill informasjon. Dette sikrer at databasen kan kontrollere loggen og sammenligne innholdet til databasenes tilstand, gitt en databasesvikt av noe slag.

En annen metode som brukes til å adressere atomkraft og holdbarhet er shadow-personsøker, der en skyggeside opprettes når data skal endres. Forespørselsoppdateringene er skrevet til skyggesiden i stedet for de ekte dataene i databasen. Databasen selv er endret bare når redigeringen er fullført.

En annen strategi kalles tofase-forpliktelse protokoll, spesielt nyttig i distribuerte databasesystemer. Denne protokollen skiller en forespørsel om å modifisere data i to faser: en commit-request fase og en commit fase. I anmodningsfasen må alle DBMSer på et nettverk som påvirkes av transaksjonen, bekrefte at de har mottatt den og har kapasitet til å utføre transaksjonen. Når bekreftelsen er mottatt fra alle relevante DBMSer, fullføres commitfasen der dataene faktisk endres.