SYRE
I forbindelse med databaser stammer ACID fra det engelske akronymet Atomicity , Consistency , Isolation og Durability ( A tomicity, Consistency, I solamento og D urability ) og indikerer de logiske egenskapene transaksjoner må ha .
Beskrivelse
For at transaksjoner skal fungere korrekt på data, må mekanismene som implementerer dem tilfredsstille disse fire egenskapene:
- Atomisk : prosessen må være delbar i et begrenset antall udelelige enheter, kalt transaksjoner . Gjennomføringen av en transaksjon må derfor per definisjon være enten total eller null, og delvis utførelser er ikke tillatt; en prosess, selv delvis, på den annen side, da et sett med transaksjoner kanskje ikke er elementært.
- Konsistent : Databasen respekterer integritetsbegrensningene , både i begynnelsen og på slutten av transaksjonen. Det må ikke være noen motsetninger ( datainkonsistens ) mellom dataene som er lagret i DB;
- Isolert : hver transaksjon må utføres på en isolert og uavhengig måte fra de andre transaksjonene, den eventuelle feilen i en transaksjon må ikke forstyrre de andre transaksjonene som pågår;
- Holdbar : også kalt utholdenhet , det refererer til det faktum at når en transaksjon har bedt om en forpliktelse , må endringene som er gjort aldri gå tapt. For å unngå tap av data på grunn av funksjonsfeil i tiden mellom det øyeblikket databasen forplikter seg til å skrive endringene og det øyeblikket den faktisk skriver dem, føres loggposter der alle operasjonene er notert på DB.
I DBMS- systemer behandles transaksjoner ved transaksjonsbehandling . En spørring (dvs. en spørring til databasen) og andre handlinger er gruppert i en transaksjon som må utføres atomisk , isolert fra de andre og muligens involverer en permanent modifikasjon av databasen. Denne oppførselen er sikret av
- Concurrency Control Manager eller Private WorkSpace som garanterer atomitet og isolasjon
- Logging / Recovery Manager som sikrer holdbarhet og konsistens.
Isolasjon
Det er fire nivåer av isolasjon:
- les uforpliktet :
- den tillater skrivebeskyttede transaksjoner, uten å blokkere dataene for lesing
- en transaksjon kan lese skitne data , fordi de kan forsvinne hvis transaksjonen som genererte den avbrytes
- Eksempler:
- T1 oppdaterer en rad r1
- * T2 får tilgang til r1
- * T1 avsluttes med en tilbakerulling
- * T2 fikk tilgang til data som aldri har eksistert
- les forpliktet:
- sørger for umiddelbar utgivelse av data i lesing, noe som forsinker de skriftlige
- ikke-repeterbare avlesninger innenfor samme transaksjon
- repeterbar lesning:
- både lesing og skriving av data er blokkert, men bare på tuplene på bordet som er involvert
- genererer fenomenet spøkelser (fantomer)
- serialiserbar:
- Det kan garantere den faktiske serialiserbarheten til koden ved å blokkere tilganger til tabellene som står på spill, men disse er for ineffektive løsninger til å brukes i kritiske applikasjoner, i virkeligheten er den serialiserte modusen begrenset til å unngå fenomenene som er undersøkt for de laveste nivåene av isolasjon.
Concurrency Control Manager eller Private WorkSpace
Transaksjonen gjør endringer på en kopi av databaseressursen. Hvis den ikke avsluttes vellykket, blir kopien ødelagt, ellers blir endringene som er gjort på kopien permanent gjennom commit-operasjonen. Systemet garanterer dermed sin atomitet . Transaksjoner må utføres isolert fra hverandre, men ofte utføres mange transaksjoner samtidig på samme system. Samtidskontrollansvarlig sørger for at de enkelte handlingene til de ulike transaksjonene utføres i en rekkefølge som ikke forstyrrer hverandre ( isolasjon ). Concurrency Control Manager er realisert gjennom to primitive instruksjoner:
- lås , instruksjon der det er oppgitt at en ressurs er blokkert av en viss transaksjon;
- unlock , instruksjon der det står at en ressurs har blitt frigitt av en bestemt transaksjon.
Serien med låser lagres i låstabellen (spesifikk del av DBMS). Concurrency control manager har også som oppgave å løse vranglåser forårsaket av låser ved å avbryte en eller flere transaksjoner. For å forhindre låsinger og bedre administrere transaksjoner, introduseres konseptet planlegger. Planleggeren har som oppgave å garantere isolasjon, akseptere en transaksjon og tildele den en unik identifikator, og be DBMS-bufferbehandleren lese/skrive til databasen i henhold til en bestemt sekvens.
Logging / Recovery Manager
For å sikre utholdenhet av databasedata selv i tilfelle krasj (f.eks. stopp i transaksjonstilgang til ressursen), registreres hver endring av databasen separat på disk. Loggbehandlingen registrerer disse endringene for å tillate gjenopprettingsbehandlingen å gjenopprette databasen til en konsistent tilstand når som helst (etter et krasj). Loggbehandlingen skriver dataene sine gjennom Buffer Manager , men før du fortsetter, kontrollerer den at de faktisk er skrevet til disken. Tidsstempling assosierer hver transaksjon og hver ressurs med et tidsstempel for å tillate og kontrollere tilgangen til transaksjoner til databaseressurser.
Bibliografi
- ACID ( Atomicity , Consistency, Isolation, and Durability.) , In Dictionary of E-Business , Hoboken, Wiley, 2003.
- ( EN ) ACID (Atomicity, Consistency, Isolation, and Durability) , i Dictionary of Multimedia and Internet Applications: A Guide for Developers and Users , Hoboken, Wiley, 1999.
Andre prosjekter
Wikiversity inneholder ressurser om ACID