Skip to main content

Az adatbázis-kezelő rendszerek ACID-modellje

Azelaic acid for acne, rosacea, melasma, hyperpigmentation| Dr Dray (Június 2026)

Azelaic acid for acne, rosacea, melasma, hyperpigmentation| Dr Dray (Június 2026)
Anonim

Az adatbázis-tervezés ACID-modellje az adatbázis-elmélet egyik legrégebbi és legfontosabb fogalma. Négy olyan célt tűztek ki, amelyeket minden adatbázis-kezelő rendszernek törekednie kell: atomizmus, konzisztencia, elszigeteltség és tartósság. Az a relációs adatbázis, amely nem felel meg a négy cél közül bármelyiknek, nem tekinthető megbízhatónak. Az ilyen tulajdonságokkal rendelkező adatbázis ACID-kompatibilisnek tekinthető.

ACID meghatározva

Vessünk egy pillanatot, hogy részletesen megvizsgáljuk az egyes jellemzőket:

  • Atomos állapot kijelenti, hogy az adatbázis-módosításoknak "minden vagy semmi" szabályt kell követniük. Minden tranzakció azt mondják, hogy atomos. Ha a tranzakció egy része nem sikerül, az egész tranzakció sikertelen. Rendkívül fontos, hogy az adatbázis-kezelő rendszer minden egyes DBMS, operációs rendszer vagy hardverhiba ellenére fenntartja az ügyletek atom jellegét.
  • Következetesség kijelenti, hogy csak az érvényes adatok írhatók az adatbázisba. Ha valamilyen oknál fogva végrehajt egy tranzakció, amely megsérti az adatbázis következetességi szabályait, akkor az egész tranzakció visszahúzódik, és az adatbázis visszaállítható egy olyan állapotba, amely összhangban áll ezekkel a szabályokkal. Másrészt, ha egy tranzakció sikeresen végrehajtásra kerül, akkor az adatbázisból egy olyan állapotba kerül, amely megfelel a szabályoknak egy másik államba, amely szintén összhangban van a szabályokkal.
  • Szigetelés azt követeli meg, hogy a többszörös tranzakciók, amelyek egyidejűleg előfordulnak, nem befolyásolják egymás végrehajtását. Például, ha Joe egy ügyféllel egy adott ügyféllel egyidejűleg kiad egy tranzakciót, miközben Mary más tranzakciót bocsát ki, mindkét ügyletnek az adatbázisban elszigetelt módon kell működnie. Az adatbázisnak végre kell hajtania Joe teljes tranzakcióját mielőtt végrehajtaná Maryét, vagy fordítva. Ez megakadályozza, hogy a Joe tranzakciója olvassa el a Mary tranzakciójának mellékhatásaként keletkező köztes adatokat, amelyek végül nem lesznek elkötelezve az adatbázisban. Megjegyezzük, hogy az elkülönítési tulajdonság nem biztosítja, hogy melyik tranzakció hajt végre először - csupán azt, hogy az ügyletek nem zavarják egymást
  • Tartósság biztosítja, hogy az adatbázisra elkötelezett bármely ügylet ne veszítse el. A tartósságot olyan adatbázis-mentések és tranzakciós naplók használatával biztosítják, amelyek megkönnyítik az elkövetett tranzakciók visszaállítását a későbbi szoftveres vagy hardverhibák ellenére.

Hogyan működik az ACID a gyakorlatban?

Az adatbázis-kezelők számos stratégiát alkalmaznak az ACID érvényesítésére.

Az atomicitás és a tartósság érvényesítésére használták írási naplózás (WAL), amelyben a tranzakciós részleteket először egy naplóba írják, amely tartalmazza mind az újratöltés, mind az adat visszavonását. Ez biztosítja, hogy bármilyen adatbázis hiba esetén az adatbázis ellenőrizze a naplót, és összehasonlíthassa annak tartalmát az adatbázis állapotával.

Egy másik módszer az atomiasság és a tartósság kezelésére szolgál árnyék-lapozás, amelyben egy árnyékoldalt hoznak létre az adatok módosítása során. A lekérdezés frissítései az árnyéklapra vannak írva, nem pedig az adatbázisban lévő valós adatokhoz. Maga az adatbázis csak akkor módosul, ha a szerkesztés befejeződött.

Egy másik stratégiát az úgynevezett kétfázisú elkötelezettség protokoll, különösen hasznos az elosztott adatbázisrendszerekben. Ez a protokoll elválasztja a kérelmet az adatok két fázisra történő módosítására: egy lekötési kérelem fázisát és egy elkövetési fázist. A kérelem fázisában minden, a tranzakció által érintett hálózaton található DBMS-nek meg kell erősítenie, hogy megkapták és képesek voltak végrehajtani a tranzakciót. Miután minden releváns DBMS-ből megerősítést kaptunk, az elkövetési fázis befejeződik, amelyben az adatokat ténylegesen módosítottuk.