ACID-modellen af database design er et af de ældste og vigtigste begreber i database teori. Det fastsætter fire mål, som hvert databasestyringssystem skal stræbe efter at opnå: atomicitet, konsistens, isolation og holdbarhed. En relationsdatabase, der ikke opfylder nogen af disse fire mål, kan ikke betragtes som pålidelig. En database, der besidder disse egenskaber, anses for at være ACID-kompatibel.
Syre defineret
Lad os tage et øjeblik for at undersøge hvert af disse egenskaber i detaljer:
- Atomicity fastslår, at databaseændringer skal følge en "alt eller ingenting" regel. Hver transaktion siges at være "atomisk." Hvis en del af transaktionen fejler, fejler hele transaktionen. Det er kritisk, at databasestyringssystemet vedligeholder atomernes karakter af transaktioner på trods af DBMS, operativsystem eller hardwarefejl.
- Konsistens at kun gyldige data vil blive skrevet til databasen. Hvis en transaktion af en eller anden grund udføres, der overtræder databasens konsistensregler, vil hele transaktionen blive rullet tilbage, og databasen vil blive genoprettet til en stat, der er i overensstemmelse med disse regler. Hvis en transaktion med succes udføres, vil den dog tage databasen fra en stat, der er i overensstemmelse med reglerne til en anden stat, der også er i overensstemmelse med reglerne.
- Isolation kræver, at flere transaktioner forekommer på samme tid ikke påvirker hinandens udførelse. For eksempel, hvis Joe udsteder en transaktion mod en database samtidig med at Mary udsteder en anden transaktion, skal begge transaktioner fungere på databasen på en isoleret måde. Databasen skal enten udføre Joes hele transaktionen, før den udføres Mary's, eller vice versa. Dette forhindrer Joe's transaktion i at læse mellemliggende data produceret som en bivirkning fra en del af Marys transaktion, der ikke i sidste ende vil blive forpligtet til databasen. Bemærk, at isolationsegenskaben ikke sikrer, hvilken transaktion der udføres først - kun transaktionerne vil ikke forstyrre hinanden
- Holdbarhed sikrer, at enhver transaktion, der er forpligtet til databasen, ikke går tabt. Holdbarhed sikres ved brug af database backups og transaktionslogs, der letter genoprettelsen af begåede transaktioner på trods af eventuelle efterfølgende software- eller hardwarefejl.
Hvordan syre virker i praksis
Databaseadministratorer bruger flere strategier til at håndhæve ACID.
En bruges til at håndhæve atomicitet og holdbarhed er skrive-ahead logging (WAL), hvor enhver transaktionsdetalje først skrives til en logfil, der indeholder både omdøb og fortryd information. Dette sikrer, at databasen kan kontrollere loggen og sammenligne indholdet med databasen i databasen under hensyntagen til en databasefejl af enhver art.
En anden metode, der bruges til at adressere atomicitet og holdbarhed er skygge-personsøgning, hvor en skyggeside oprettes, når data skal ændres. Spørgsmålens opdateringer er skrevet til skyggesiden i stedet for de rigtige data i databasen. Databasen selv ændres kun, når redigeringen er færdig.
En anden strategi hedder to-fases commit protokollen, især nyttig i distribuerede databasesystemer. Denne protokol adskiller en anmodning om at ændre data i to faser: en commit-request fase og en commit fase. I anmodningsfasen skal alle DBMS'er på et netværk, der påvirkes af transaktionen, bekræfte, at de har modtaget det og har kapacitet til at udføre transaktionen. Når bekræftelsen er modtaget fra alle relevante DBMS'er, fuldføres commitfasen, hvor dataene faktisk ændres.




