logo

ACID-egenskaber i DBMS

Transaktioner er grundlæggende operationer, der giver os mulighed for at ændre og hente data. Men for at sikre en databases integritet er det vigtigt, at disse transaktioner udføres på en måde, der bevarer konsistens, korrekthed og pålidelighed, selv i tilfælde af fejl/fejl. Det er her ACID-egenskaberne kommer i spil.

ACID står for Atomicity Consistency Isolation and Durability.



Egenskaber af SYRE:

syreegenskaber' title=

Der er fire egenskaber ved ACID

1. Atomicitet

Atomicitet betyder, at en transaktion er alt-eller-intet, enten alle dens operationer lykkes, eller ingen bliver anvendt. Hvis en del mislykkes, rulles hele transaktionen tilbage for at holde databasen konsistent.

  • Begå : Hvis transaktionen lykkes, anvendes ændringerne permanent.
  • Afbryd/tilbageføring : Hvis transaktionen mislykkes, kasseres ændringer foretaget under transaktionen.

Eksempel : Overvej følgende transaktion T bestående af T1 og T2 : Overførsel af 0 fra konto X til regnskab OG .

atomicitet' loading='lazy' title=Atomicitet

Hvis transaktionen mislykkes efter afslutning af T1, men før afslutning af T2, vil databasen efterlades i en inkonsekvent tilstand. Med Atomicity, hvis en del af transaktionen mislykkes, rulles hele processen tilbage til sin oprindelige tilstand, og der foretages ingen delvise ændringer.



Konsistens i transaktioner betyder, at databasen skal forblive i en gyldig tilstand før og efter en transaktion.

js multiline streng
  • En gyldig tilstand følger alle definerede regelbegrænsninger og relationer (såsom primærnøglers fremmednøgler osv.).
  • Hvis en transaktion overtræder nogen af ​​disse regler, rulles den tilbage for at forhindre korrupte eller ugyldige data.
  • Hvis en transaktion trækker penge fra én konto, men ikke tilføjer dem til en anden (i en overførsel), krænker det konsistensen.

Eksempel : Antag, at summen af ​​alle saldi i et banksystem altid skal være konstant. Før en overførsel er den samlede saldo 0. Efter transaktionen bør den samlede saldo forblive 0. Hvis transaktionen mislykkes i midten (som at opdatere den ene konto, men ikke den anden), bør systemet bevare sin konsistens ved at rulle transaktionen tilbage.

Samlet før T opstår = 500 + 200 = 700 .
Total efter T forekommer  = 400 + 300 = 700 .



isolation' loading='lazy' title=Konsistens

3. Isolation

Isolation sikrer, at transaktioner kører uafhængigt uden at påvirke hinanden. Ændringer foretaget af én transaktion er ikke synlige for andre, før de er begået.

Det sikrer, at resultatet af samtidige transaktioner er det samme, som hvis de blev kørt efter hinanden, hvilket forhindrer problemer som:

  • Dirty lyder: læse uforpligtende data
  • Ikke-gentagelige læsninger: dataændringer mellem to aflæsninger
  • Phantom lyder: nye rækker vises under en transaktion

Eksempel : Overvej to transaktioner T og T''.

  • X = 500 Y = 500
isolation' loading='lazy' title=Isolation

Forklaring:

1. Transaktion T:

  • T ønsker at flytte fra X til Y.
  • T læser OG (værdi: 500) trækker fra X (nyt X = 450) og lægger til Y (nyt Y = 550).

2. Transaktion T'':

  • T' ' starter og læser X (500) og Y (500).
  • Den beregner summen: 500 + 500 = 1000.
  • I mellemtiden ændres værdierne af X og Y til henholdsvis 450 og 550.
  • Så den korrekte sum skal være 450 + 550 = 1000.
  • Isolering sikrer, at T'' ikke læser forældede værdier, mens en anden transaktion (T) stadig er i gang.
  • Transaktioner skal være uafhængige, og T'' bør først få adgang til de endelige værdier, efter at T har forpligtet sig.
  • Dette undgår inkonsistente resultater som den forkerte sum beregnet af T''.

4. Holdbarhed:

Holdbarhed sikrer, at når en transaktion er begået, gemmes dens ændringer permanent, selvom systemet svigter. Dataene er gemt i ikke-flygtig hukommelse, så databasen kan genoprette til sin sidste forpligtede tilstand uden at miste data.

Eksempel : Efter vellykket overførsel af penge fra konto A til konto B gemmes ændringerne på disken. Selvom der er et nedbrud umiddelbart efter commit, vil overførselsdetaljerne stadig være intakte, når systemet genoprettes, hvilket sikrer holdbarhed.

datatyper i java

Hvordan ACID-egenskaber påvirker DBMS-design og -drift

De ACID-egenskaber i sin helhed giver en mekanisme til at sikre korrektheden og konsistensen af ​​en database på en sådan måde, at hver transaktion er en gruppe af operationer, der fungerer som en enkelt enhed producerer konsistente resultater, handlinger isoleret fra andre operationer, og opdateringer, som den foretager, lagres varigt.

ACID-egenskaber beskytter dataintegriteten af ​​et DBMS ved at sikre, at transaktioner enten gennemføres med succes eller ikke efterlader spor, hvis de afbrydes. De forhindrer delvise opdateringer i at ødelægge dataene og sikrer, at databasen kun skifter mellem gyldige tilstande.

2. Samtidighedskontrol

ACID-egenskaber giver en solid ramme for styring af samtidige transaktioner. Isolering sikrer, at transaktioner ikke forstyrrer hinanden, hvilket forhindrer dataanomalier, såsom tabte opdateringer, midlertidig inkonsistens og ikke-forpligtede data.

3. Retablering og fejltolerance

Holdbarhed sikrer, at selv hvis et system går ned, kan databasen genoprettes til en konsistent tilstand. Takket være egenskaberne Atomicity og Durability, hvis en transaktion mislykkes midtvejs, forbliver databasen i en konsistent tilstand.

Ejendom Ansvar for vedligeholdelse af ejendomme
AtomicitetTransaktionsleder
KonsistensApplikationsprogrammør
IsolationConcurrency Control Manager
HoldbarhedGenopretning

Kritiske anvendelsessager for ACID i databaser

I moderne applikationer er det afgørende at sikre pålideligheden og konsistensen af ​​data. ACID-egenskaber er fundamentale i sektorer som:

  • Bankvirksomhed : Transaktioner, der involverer pengeoverførsler indskud eller udbetalinger, skal opretholde streng konsistens og holdbarhed for at forhindre fejl og svindel.
  • E-handel : At sikre, at beholdningen tæller ordrer og kundeoplysninger håndteres korrekt og konsekvent, selv under høj trafik, kræver ACID-overholdelse.
  • Sundhedspleje : Patientjournaler testresultater og recepter skal overholde strenge konsistensintegritets- og sikkerhedsstandarder.