logo

ACID-egenskaper i DBMS

Transaktioner är grundläggande operationer som gör att vi kan modifiera och hämta data. För att säkerställa integriteten hos en databas är det dock viktigt att dessa transaktioner utförs på ett sätt som upprätthåller konsistens korrekthet och tillförlitlighet även vid fel/fel. Det är här ACID-egenskaperna kommer in i bilden.

ACID står för Atomicity Consistency Isolation and Durability.



Egenskaper för SYRA:

acid_properties' title=

Det finns fyra egenskaper hos SYRA

1. Atomicitet

Atomicitet betyder att en transaktion är allt-eller-inget, antingen alla dess operationer lyckas eller så tillämpas ingen. Om någon del misslyckas rullas hela transaktionen tillbaka för att hålla databasen konsekvent.

  • Begå : Om transaktionen lyckas tillämpas ändringarna permanent.
  • Avbryt/återställ : Om transaktionen misslyckas kasseras alla ändringar som gjorts under transaktionen.

Exempel : Tänk på följande transaktion T bestående av T1 och T2 : Överföring av 0 från konto X till konto OCH .

atomicitet' loading='lazy' title=Atomicitet

Om transaktionen misslyckas efter slutförandet av T1 men innan slutförandet av T2 skulle databasen lämnas i ett inkonsekvent tillstånd. Med Atomicity om någon del av transaktionen misslyckas rullas hela processen tillbaka till sitt ursprungliga tillstånd och inga partiella ändringar görs.



Konsistens i transaktioner innebär att databasen måste förbli i ett giltigt tillstånd före och efter en transaktion.

hadoop handledning
  • Ett giltigt tillstånd följer alla definierade regelbegränsningar och relationer (som primärnycklar främmande nycklar etc.).
  • Om en transaktion bryter mot någon av dessa regler rullas den tillbaka för att förhindra korrupta eller ogiltiga data.
  • Om en transaktion drar pengar från ett konto men inte lägger till dem på ett annat (i en överföring) bryter det mot konsistensen.

Exempel : Antag att summan av alla saldon i ett banksystem alltid ska vara konstant. Före en överföring är det totala saldot 0. Efter transaktionen bör det totala saldot förbli 0. Om transaktionen misslyckas i mitten (som att uppdatera ett konto men inte det andra) bör systemet behålla sin konsistens genom att rulla tillbaka transaktionen.

Totalt innan T inträffar = 500 + 200 = 700 .
Totalt efter T inträffar  = 400 + 300 = 700 .



isolering' loading='lazy' title=Konsistens

3. Isolering

Isolering säkerställer att transaktioner körs oberoende utan att påverka varandra. Ändringar gjorda av en transaktion är inte synliga för andra förrän de har genomförts.

Det säkerställer att resultatet av samtidiga transaktioner är detsamma som om de kördes en efter en och förhindrar problem som:

  • Dirty lyder: läsa oengagerad data
  • Ej repeterbara läsningar: data ändras mellan två läsningar
  • Phantom lyder: nya rader visas under en transaktion

Exempel : Betrakta två transaktioner T och T''.

lambda funktion java
  • X = 500 Y = 500
isolering' loading='lazy' title=Isolering

Förklaring:

1. Transaktion T:

  • T vill gå över från X till Y.
  • T läser OCH (värde: 500) drar av från X (nytt X = 450) och lägger till Y (nytt Y = 550).

2. Transaktion T'':

  • T' ' startar och läser X (500) och Y (500).
  • Den beräknar summan: 500 + 500 = 1000.
  • Samtidigt ändras värdena för X och Y till 450 respektive 550.
  • Så den korrekta summan bör vara 450 + 550 = 1000.
  • Isolering säkerställer att T'' inte läser inaktuella värden medan en annan transaktion (T) fortfarande pågår.
  • Transaktioner bör vara oberoende och T'' bör komma åt de slutliga värdena först efter att T commits.
  • Detta undviker inkonsekventa resultat som den felaktiga summan beräknad av T''.

4. Hållbarhet:

Hållbarhet säkerställer att när en transaktion väl är genomförd sparas dess ändringar permanent även om systemet misslyckas. Data lagras i ett icke-flyktigt minne så att databasen kan återhämta sig till sitt senast engagerade tillstånd utan att förlora data.

Exempel : Efter framgångsrik överföring av pengar från konto A till konto B lagras ändringarna på disken. Även om det inträffar en krasch omedelbart efter bekräftelsen kommer överföringsdetaljerna fortfarande att vara intakta när systemet återställs, vilket säkerställer hållbarhet.

Hur ACID-egenskaper påverkar DBMS-design och drift

De ACID-egenskaper i sin helhet tillhandahåller en mekanism för att säkerställa korrektheten och konsistensen av en databas på ett sätt så att varje transaktion är en grupp av operationer som fungerar som en enda enhet producerar konsekventa resultat som agerar isolerat från andra operationer och uppdateringar som den gör lagras varaktigt.

ACID-egenskaper skyddar dataintegriteten hos ett DBMS genom att säkerställa att transaktioner antingen slutförs framgångsrikt eller inte lämnar några spår om de avbryts. De förhindrar att partiella uppdateringar korrumperar data och säkerställer att databasen endast övergår mellan giltiga tillstånd.

2. Samtidighetskontroll

ACID-egenskaper ger en solid ram för att hantera samtidiga transaktioner. Isolering säkerställer att transaktioner inte stör varandra och förhindrar dataavvikelser såsom förlorade uppdateringar, tillfällig inkonsekvens och oengagerad data.

3. Återställning och feltolerans

Hållbarhet säkerställer att databasen kan återställas till ett konsekvent tillstånd även om ett system kraschar. Tack vare egenskaperna Atomicity och Durability om en transaktion misslyckas halvvägs förblir databasen i ett konsekvent tillstånd.

Egendom Ansvar för underhåll av fastigheter
AtomicitetTransaktionsansvarig
KonsistensApplikationsprogrammerare
IsoleringConcurrency Control Manager
VaraktighetÅterhämtning

Kritiska användningsfall för ACID i databaser

I moderna applikationer är det avgörande att säkerställa tillförlitlighet och konsistens hos data. SYRA-egenskaper är grundläggande i sektorer som:

  • Bankverksamhet : Transaktioner som involverar pengaöverföringar insättningar eller uttag måste upprätthålla strikt konsekvens och hållbarhet för att förhindra fel och bedrägerier.
  • E-handel : För att säkerställa att lagret räknar beställningar och kundinformation hanteras korrekt och konsekvent även under hög trafik krävs ACID-efterlevnad.
  • Healthcare : Patientjournaler testresultat och recept måste följa strikta konsistensintegritets- och säkerhetsstandarder.