logo

ACID tulajdonságok a DBMS-ben

A tranzakciók olyan alapvető műveletek, amelyek lehetővé teszik számunkra az adatok módosítását és visszakeresését. Az adatbázis integritásának biztosítása érdekében azonban fontos, hogy ezeket a tranzakciókat úgy hajtsák végre, hogy a konzisztencia helyessége és megbízhatósága még meghibásodások/hibák esetén is megmaradjon. Itt lépnek életbe az ACID tulajdonságok.

Az ACID az Atomicity Consistency Isolation and Durability rövidítése.



A sav tulajdonságai:

sav_tulajdonságok' title=

A SAV-nak négy tulajdonsága van

1. Atomosság

Az atomitás azt jelenti, hogy a tranzakció „mindent vagy semmit” vagy minden művelete sikeres, vagy egyiket sem alkalmazzák. Ha valamelyik rész meghibásodik, a teljes tranzakció visszaállításra kerül, hogy az adatbázis konzisztens maradjon.

  • Elkötelezett : Ha a tranzakció sikeres, a változtatások véglegesen érvényesülnek.
  • Megszakítás/visszaállítás : Ha a tranzakció meghiúsul, a tranzakció során végrehajtott változtatások törlésre kerülnek.

Példa : Fontolja meg a következő tranzakciót T amelyből áll T1 és T2 : 0 átutalása a számláról X elszámolni ÉS .

atomos állapot' loading='lazy' title=Atomos állapot

Ha a tranzakció a T1 befejezése után, de a T2 befejezése előtt meghiúsul, az adatbázis inkonzisztens állapotban marad. Az Atomicity segítségével, ha a tranzakció bármely része meghiúsul, a teljes folyamat visszaáll az eredeti állapotba, és nem történik részleges módosítás.



A tranzakciók konzisztenciája azt jelenti, hogy az adatbázisnak érvényes állapotban kell maradnia a tranzakció előtt és után.

python maradék operátor
  • Az érvényes állapot követi az összes meghatározott szabály megkötését és kapcsolatát (például elsődleges kulcsok idegen kulcsai stb.).
  • Ha egy tranzakció megsérti e szabályok bármelyikét, akkor a rendszer visszaállítja a sérült vagy érvénytelen adatok megelőzése érdekében.
  • Ha egy tranzakció pénzt von le az egyik számláról, de nem adja hozzá a másikhoz (átutalás során), az sérti a következetességet.

Példa : Tegyük fel, hogy egy bankrendszerben az összes egyenleg összegének mindig állandónak kell lennie. Átutalás előtt a teljes egyenleg 0. A tranzakció után a teljes egyenleg 0 maradjon. Ha a tranzakció középen meghiúsul (például az egyik számla frissítése, de a másik nem), a rendszernek meg kell őriznie konzisztenciáját a tranzakció visszagörgetésével.

Összesen a T előfordulása előtt = 500 + 200 = 700 .
Összesen a T előfordulása után 



elkülönítés' loading='lazy' title=Következetesség

3. Elszigetelődés

Az elkülönítés biztosítja, hogy a tranzakciók egymástól függetlenül, egymásra gyakorolt ​​hatás nélkül fussanak. Az egyik tranzakció által végrehajtott változtatások nem láthatók mások számára mindaddig, amíg el nem készülnek.

Biztosítja, hogy az egyidejű tranzakciók eredménye ugyanaz legyen, mintha egymás után futnának, megelőzve az olyan problémákat, mint:

hogyan kell újra csinálni a Photoshopban
  • Piszkos olvasmányok: nem véglegesített adatok olvasása
  • Nem megismételhető olvasmányok: az adatok két leolvasás között változnak
  • A Phantom ezt írja: új sorok jelennek meg a tranzakció során

Példa : Tekintsünk két T és T'' tranzakciót.

  • X = 500 Y = 500
elkülönítés' loading='lazy' title=Elkülönítés

Magyarázat:

1. T tranzakció:

  • T át akar lépni X-ből Y-be.
  • T olvas ÉS (érték: 500) levon X-ből (új X = 450), és hozzáadja Y-hoz (új Y = 550).

2. T" tranzakció:

  • T' ' elindul, és beolvassa az X (500) és az Y (500) feliratot.
  • Kiszámítja az összeget: 500 + 500 = 1000.
  • Eközben X és Y értéke 450-re, illetve 550-re változik.
  • Tehát a helyes összeg 450 + 550 = 1000 legyen.
  • Az elkülönítés biztosítja, hogy T'' ne olvassa ki az elavult értékeket, miközben egy másik tranzakció (T) még folyamatban van.
  • A tranzakcióknak függetleneknek kell lenniük, és T'' csak T véglegesítése után érheti el a végső értékeket.
  • Ezzel elkerülhető az inkonzisztens eredmények, például a T''-vel kiszámított helytelen összeg.

4. Tartósság:

A tartósság biztosítja, hogy a tranzakció véglegesítése után a változtatások véglegesen mentésre kerülnek, még akkor is, ha a rendszer meghibásodik. Az adatokat a nem felejtő memóriában tárolják, így az adatbázis vissza tud állni utolsó végleges állapotába adatvesztés nélkül.

Példa : A pénz sikeres átutalása után az A számláról a B számlára a módosítások a lemezen tárolódnak. Még akkor is, ha a véglegesítés után azonnal összeomlik, az átvitel részletei továbbra is érintetlenek maradnak, amikor a rendszer helyreáll, biztosítva a tartósságot.

Hogyan befolyásolják az ACID tulajdonságai a DBMS tervezését és működését

A Az ACID tulajdonságok összességében olyan mechanizmust biztosítanak, amely biztosítja az adatbázis helyességét és konzisztenciáját oly módon, hogy minden tranzakció műveletek csoportja, amely egyetlen egységként működik, konzisztens eredményeket hoz létre, a többi művelettől elszigetelten működik, és az általa végzett frissítések tartósan tárolódnak.

Az ACID tulajdonságok védik a DBMS adatintegritását azáltal, hogy a tranzakciók sikeresen befejeződnek, vagy megszakítás esetén ne hagyjanak nyomot. Megakadályozzák, hogy a részleges frissítések megsértsék az adatokat, és biztosítják, hogy az adatbázis csak az érvényes állapotok között váltson át.

2. Egyidejűség ellenőrzése

Az ACID tulajdonságok szilárd keretet biztosítanak az egyidejű tranzakciók kezelésére. Az elkülönítés biztosítja, hogy a tranzakciók ne zavarják egymást, megelőzve az adatok anomáliáit, például az elveszett frissítések átmeneti inkonzisztenciáját és a nem véglegesített adatokat.

3. Helyreállítás és hibatűrés

A tartósság biztosítja, hogy még a rendszer összeomlása esetén is az adatbázis konzisztens állapotba tudjon állni. Az Atomicity és Durability tulajdonságoknak köszönhetően, ha egy tranzakció félúton meghiúsul, az adatbázis konzisztens állapotban marad.

Ingatlan Felelősség az ingatlanok karbantartásáért
Atomos állapotTranzakciókezelő
KövetkezetességAlkalmazás programozó
ElkülönítésKonkurencia-ellenőrzési menedzser
TartósságHelyreállítás

Az ACID kritikus felhasználási esetei az adatbázisokban

A modern alkalmazásokban kulcsfontosságú az adatok megbízhatóságának és konzisztenciájának biztosítása. Az ACID tulajdonságok alapvetőek az alábbi ágazatokban:

  • Banki tevékenység : A pénzátutalással, befizetésekkel vagy kifizetésekkel járó tranzakcióknak szigorú következetességnek és tartósnak kell lenniük a hibák és csalások megelőzése érdekében.
  • E-kereskedelem : Annak biztosítása, hogy a készletek számlálják a rendeléseket és az ügyfelek adatait, még nagy forgalom esetén is helyesen és következetesen kezeljék, ACID-megfelelés szükséges.
  • Egészségügy : A vizsgálati eredményeknek és az előírásoknak meg kell felelniük a szigorú egységességi és biztonsági szabványoknak.