Transaksjoner er grunnleggende operasjoner som lar oss endre og hente data. For å sikre integriteten til en database er det imidlertid viktig at disse transaksjonene utføres på en måte som opprettholder konsistens korrekthet og pålitelighet selv i tilfelle feil/feil. Det er her ACID-egenskapene kommer inn i bildet.
ACID står for Atomicity Consistency Isolation and Durability.
Egenskaper til SYRE:
Det er fire egenskaper til ACID
1. Atomitet
Atomitet betyr at en transaksjon er alt-eller-ingenting enten alle operasjonene lykkes eller ingen blir utført. Hvis noen del mislykkes, rulles hele transaksjonen tilbake for å holde databasen konsistent.
- Begå : Hvis transaksjonen er vellykket, blir endringene permanent brukt.
- Avbryt/Rull tilbake : Hvis transaksjonen mislykkes, forkastes endringer som er gjort under transaksjonen.
Eksempel : Vurder følgende transaksjon T bestående av T1 og T2 : Overføring av 0 fra konto X til konto OG .
AtomitetHvis transaksjonen mislykkes etter fullføring av T1, men før fullføring av T2, vil databasen bli stående i en inkonsekvent tilstand. Med Atomicity, hvis noen del av transaksjonen mislykkes, rulles hele prosessen tilbake til sin opprinnelige tilstand og ingen delvise endringer blir gjort.
Konsistens i transaksjoner betyr at databasen må forbli i en gyldig tilstand før og etter en transaksjon.
størrelsen på python
- En gyldig tilstand følger alle definerte regelbegrensninger og relasjoner (som primærnøkler fremmednøkler osv.).
- Hvis en transaksjon bryter noen av disse reglene, rulles den tilbake for å forhindre korrupte eller ugyldige data.
- Hvis en transaksjon trekker penger fra én konto, men ikke legger dem til en annen (i en overføring), bryter det med konsistensen.
Eksempel : Anta at summen av alle saldoer i et banksystem alltid skal være konstant. Før en overføring er den totale saldoen 0. Etter transaksjonen skal den totale saldoen forbli 0. Hvis transaksjonen mislykkes i midten (som å oppdatere en konto, men ikke den andre), bør systemet opprettholde sin konsistens ved å rulle tilbake transaksjonen.
Totalt før T oppstår = 500 + 200 = 700 .
Totalt etter at T oppstår
Konsistens3. Isolasjon
Isolering sikrer at transaksjoner kjøres uavhengig uten å påvirke hverandre. Endringer gjort av én transaksjon er ikke synlige for andre før de er forpliktet.
Det sikrer at resultatet av samtidige transaksjoner er det samme som om de ble kjørt etter hverandre, og forhindrer problemer som:
- Dirty leser: lese uforpliktende data
- Ikke-repeterbare lyder: dataendringer mellom to avlesninger
- Fantomet leser: nye rader vises under en transaksjon
Eksempel : Tenk på to transaksjoner T og T''.
- X = 500 Y = 500
IsoleringForklaring:
1. Transaksjon T:
- T ønsker å overføre fra X til Y.
- OG (verdi: 500) trekker fra X (ny X = 450) og legger til Y (ny Y = 550).
2. Transaksjon T'':
- T' ' starter og leser X (500) og Y (500).
- Den beregner summen: 500 + 500 = 1000.
- I mellomtiden endres verdiene for X og Y til henholdsvis 450 og 550.
- Så den riktige summen bør være 450 + 550 = 1000.
- Isolering sikrer at T'' ikke leser utdaterte verdier mens en annen transaksjon (T) fortsatt pågår.
- Transaksjoner skal være uavhengige, og T'' bør få tilgang til de endelige verdiene først etter at T har forpliktet seg.
- Dette unngår inkonsistente resultater som feil sum beregnet av T''.
4. Holdbarhet:
Holdbarhet sikrer at når en transaksjon er forpliktet, lagres endringene permanent selv om systemet svikter. Dataene lagres i ikke-flyktig minne, slik at databasen kan gjenopprette til sin siste forpliktede tilstand uten å miste data.
Eksempel : Etter vellykket overføring av penger fra konto A til konto B lagres endringene på disk. Selv om det er en krasj rett etter forpliktelsen, vil overføringsdetaljene fortsatt være intakt når systemet gjenoppretter seg, noe som sikrer holdbarhet.
struct array c programmering
Hvordan ACID-egenskaper påvirker DBMS-design og drift
De ACID-egenskaper i sin helhet gir en mekanisme for å sikre korrektheten og konsistensen til en database på en måte slik at hver transaksjon er en gruppe operasjoner som fungerer som en enkelt enhet produserer konsistente resultater, fungerer isolert fra andre operasjoner og oppdateringer som den gjør er varig lagret.
ACID-egenskaper beskytter dataintegriteten til et DBMS ved å sikre at transaksjoner enten fullføres eller ikke etterlater spor hvis de blir avbrutt. De forhindrer at delvise oppdateringer ødelegger dataene og sikrer at databasen bare går mellom gyldige tilstander.
2. Samtidighetskontroll
ACID-egenskaper gir et solid rammeverk for å håndtere samtidige transaksjoner. Isolering sikrer at transaksjoner ikke forstyrrer hverandre og forhindrer dataavvik som tapte oppdateringer, midlertidig inkonsistens og uforpliktende data.
3. Gjenoppretting og feiltoleranse
Holdbarhet sikrer at selv om et system krasjer, kan databasen gjenopprettes til en konsistent tilstand. Takket være egenskapene Atomicity og Durability hvis en transaksjon mislykkes midtveis, forblir databasen i en konsistent tilstand.
| Eiendom | Ansvar for vedlikehold av eiendommer |
|---|---|
| Atomitet | Transaksjonsleder |
| Konsistens | Applikasjonsprogrammerer |
| Isolering | Manager for samtidighetskontroll |
| Varighet | Bedring |
Kritiske brukstilfeller for ACID i databaser
I moderne applikasjoner er det avgjørende å sikre påliteligheten og konsistensen til data. ACID-egenskaper er grunnleggende i sektorer som:
- Bankvirksomhet : Transaksjoner som involverer pengeoverføringer innskudd eller uttak må opprettholde streng konsistens og holdbarhet for å forhindre feil og svindel.
- E-handel : Å sikre at beholdningen teller bestillinger og kundedetaljer håndteres riktig og konsekvent selv under høy trafikk krever ACID-samsvar.
- Helsevesen : Pasientjournaler testresultater og resepter må overholde strenge konsistensintegritets- og sikkerhetsstandarder.