Tranzakciókezelés a DBMS-ben: Mik azok az ACID tulajdonságok?

Mi az adatbázis-tranzakció?

A Adatbázis-tranzakció egy logikai feldolgozási egység egy DBMS-ben, amely egy vagy több adatbázis-hozzáférési műveletet foglal magában. Dióhéjban az adatbázis-tranzakciók bármely vállalat valós eseményeit képviselik.

Az adatbázis-elérési műveletek minden típusa, amely a tranzakció kezdete és vége között van, egyetlen logikai tranzakciónak minősül a DBMS-ben. A tranzakció során az adatbázis inkonzisztens. Csak az adatbázis véglegesítése után változik az állapot egyik konzisztens állapotról a másikra.

Adatbázis-tranzakció
Adatbázis-tranzakció

Tények az adatbázis-tranzakciókról

  • A tranzakció olyan programegység, amelynek végrehajtása megváltoztathatja vagy nem módosíthatja az adatbázis tartalmát.
  • A DBMS-ben a tranzakciós koncepció egyetlen egységként kerül végrehajtásra.
  • Ha az adatbázisműveletek nem frissítik az adatbázist, hanem csak adatokat kérnek le, akkor ezt a típusú tranzakciót csak olvasható tranzakciónak nevezik.
  • A sikeres tranzakció megváltoztathatja az adatbázist az egyik KONSZISTENS ÁLLAPOT-ból a másikba
  • A DBMS-tranzakcióknak atomi, következetesnek, elszigeteltnek és tartósnak kell lenniük
  • Ha az adatbázis inkonzisztens állapotban volt a tranzakció előtt, akkor a tranzakció után is inkonzisztens állapotban marad.

Miért van szükség párhuzamosságra a tranzakciókban?

Az adatbázis egy megosztott erőforrás, amelyhez hozzáfér. Sok felhasználó és folyamat használja egyidejűleg. Például a bankrendszer, a vasúti és a repülőjegy-foglalási rendszerek, a tőzsdefigyelés, a szupermarket készletei és a pénztárak stb.

Ha nem kezeli az egyidejű hozzáférést, az olyan problémákat okozhat, mint:

  • Hardverhiba és rendszerösszeomlás
  • Ugyanazon tranzakció egyidejű végrehajtása, holtpont, vagy lassú teljesítmény

A tranzakciók állapotai

Az alábbiakban felsoroljuk a DBMS-ben a tranzakciókoncepció különféle állapotait:

Állami Tranzakciótípusok
Aktív állapot A tranzakció a végrehajtási folyamat megkezdésekor aktív állapotba kerül. Ebben az állapotban olvasási vagy írási műveletek hajthatók végre.
Részben elkötelezett Egy tranzakció a tranzakció befejezése után részben véglegesített állapotba kerül.
Elkötelezett állam Amikor a tranzakciót állapotra kötelezték, a végrehajtás már sikeresen befejeződött. Sőt, minden változása véglegesen rögzítésre kerül az adatbázisban.
Sikertelen állapot A tranzakció sikertelennek minősül, ha valamelyik ellenőrzés sikertelen, vagy ha a tranzakció aktív állapotban megszakad.
Megszűnt állapot A tranzakció állapota akkor ér véget, amikor bizonyos, a rendszert elhagyó tranzakciók nem indíthatók újra.
Állapotátmeneti diagram
Adatbázis-tranzakció állapotátmeneti diagramja

Tanulmányozzuk a állapotátmenet diagram amely rávilágít arra, hogy egy tranzakció hogyan mozog a különböző állapotok között.

  1. Ha egy tranzakció végrehajtást állít ki, akkor aktívvá válik. OLVASÁS vagy ÍRÁS műveletet adhat ki.
  2. A READ és WRITE műveletek befejezése után a tranzakciók részben véglegesített állapotba kerülnek.
  3. Ezután néhány helyreállítási protokollnak biztosítania kell, hogy a rendszerhiba ne eredményezze a tranzakció változásainak tartós rögzítését. Ha ez az ellenőrzés sikeres, a tranzakció véglegesítésre kerül, és véglegesített állapotba kerül.
  4. Ha az ellenőrzés sikertelen, a tranzakció Sikertelen állapotba kerül.
  5. Ha a tranzakciót megszakítják, miközben aktív állapotban van, akkor a sikertelen állapotba kerül. A tranzakciót vissza kell görgetni, hogy visszavonja írási műveleteinek az adatbázisra gyakorolt ​​hatását.
  6. A befejezett állapot a rendszerből kilépő tranzakcióra vonatkozik.

Mik azok a ACID tulajdonságok?

SAV Tulajdonságok Az adatbázis integritásának megőrzésére szolgálnak a tranzakciófeldolgozás során. Az ACID in DBMS jelentése Atomicitás, Ckitartás, Imegnyugvást, és Dhasználhatóság.

  • Atomicity: A tranzakció egyetlen műveleti egység. Vagy teljesen végrehajtja, vagy egyáltalán nem hajtja végre. Nem lehet részleges végrehajtás.
  • Következetesség: A tranzakció végrehajtása után az egyik konzisztens állapotból a másikba kell lépnie.
  • Szigetelés: A tranzakciót a többi tranzakciótól elkülönítve kell végrehajtani (nincs zárolás). Az egyidejű tranzakció végrehajtása során az egyidejűleg végrehajtott tranzakciók közbenső tranzakciós eredményeit nem szabad egymás számára hozzáférhetővé tenni. (0,1,2,3, XNUMX, XNUMX, XNUMX szint)
  • Tartósság:· A tranzakció sikeres befejezése után az adatbázisban bekövetkezett változásoknak fenn kell maradniuk. Még rendszerhibák esetén is.

ACID tulajdonság a DBMS-ben példával

Az alábbiakban egy példa látható az ACID tulajdonságra a DBMS-ben:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

Az 1. tranzakció 50 USD-t utal át az X számláról az Y számlára.

A 2. tranzakció minden számlán 10%-os kamatfizetést ír jóvá.

Ha mindkét tranzakciót együtt nyújtják be, nincs garancia arra, hogy az 1. Tranzakció a 2. Tranzakció előtt fog megvalósulni, vagy fordítva. A megrendeléstől függetlenül az eredménynek olyannak kell lennie, mintha a tranzakciók sorosan, egymás után történnének.

A tranzakciók típusai

Alkalmazási területek alapján

  • Nem terjesztett vs
  • Kompenzációs tranzakciók
  • Tranzakciók időzítése
  • On-line vs. kötegelt

Akciók alapján

  • Két lépés
  • Korlátozott
  • Akciómodell

Struktúra alapján

  • Sima vagy egyszerű tranzakciók: Primitív műveletek sorozatából áll, amelyeket egy kezdő és egy befejező művelet között hajtanak végre.
  • Beágyazott tranzakciók: Olyan tranzakció, amely más tranzakciókat is tartalmaz.
  • munkafolyamat

Mi az a menetrend?

Az ütemezés olyan folyamat, amely egyetlen csoportot hoz létre a több párhuzamos tranzakcióból, és egyenként hajtja végre azokat. Meg kell őriznie az utasítások sorrendjét az egyes tranzakciókban. Ha két tranzakciót hajtanak végre egyszerre, az egyik tranzakció eredménye befolyásolhatja a másik kimenetét.

Példa

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

Ha a 2. tranzakciót az 1. tranzakció előtt hajtják végre, akkor a termék mennyiségére vonatkozó elavult információk kerülnek beolvasásra. Ezért menetrendekre van szükség.

A párhuzamos végrehajtás egy adatbázisban elkerülhetetlen. A párhuzamos végrehajtás azonban megengedett, ha az egyidejűleg végrehajtott tranzakciók között ekvivalencia reláció áll fenn. Ennek az egyenértékűségnek 3 típusa van.

EREDMÉNYEGYENÉRSÉG:

Ha két ütemezés ugyanazt az eredményt jeleníti meg a végrehajtás után, akkor azt eredménnyel egyenértékű ütemezésnek nevezzük. Előfordulhat, hogy ugyanazt az eredményt kínálják bizonyos értékekhez, és eltérő eredményeket egy másik értékkészlethez. Például az egyik tranzakció frissíti a termék mennyiségét, míg a másik az ügyfél adatait.

Egyenértékűség megtekintése

Megtekintési egyenértékűség akkor fordul elő, ha a tranzakció mindkét ütemtervben hasonló műveletet hajt végre. Példa, az egyik tranzakció beszúrja a termék részleteit a terméktáblázatba, míg egy másik tranzakció a termék részleteit az archív táblába. A tranzakció ugyanaz, de a táblák eltérőek.

KONFLIKTUS Ekvivalencia

Ebben az esetben két tranzakció ugyanazt az adatkészletet frissíti/nézi meg. A tranzakciók között ütközés van, mivel a végrehajtás sorrendje befolyásolja a kimenetet.

Mi az a szerializálhatóság?

A szerializálhatóság egy olyan párhuzamos ütemezés keresésének folyamata, amelynek kimenete megegyezik egy soros ütemezéssel, ahol a tranzakciók egymás után hajtódnak végre. Az ütemezés típusától függően kétféle szerializálhatóság létezik:

  • összeütközés
  • Kilátás

Összegzésként

  • A tranzakciókezelés egy logikai feldolgozási egység a DBMS-ben, amely egy vagy több adatbázis-hozzáférési műveletet foglal magában
  • Ez egy tranzakció olyan programegység, amelynek végrehajtása megváltoztathatja vagy nem módosíthatja az adatbázis tartalmát.
  • Ha nem kezeli az egyidejű hozzáférést, az olyan problémákat okozhat, mint a hardverhiba és a rendszer összeomlása.
  • Aktív, részlegesen véglegesített, véglegesített, sikertelen és befejezett fontos tranzakciós állapotok.
  • Az ACID Properties teljes formája itt DBMS is Atomicitás, konzisztencia, izoláció és tartósság
  • Három DBMS-tranzakciótípus: Alkalmazási területek alapja, Művelet és Struktúra.
  • Az ütemezés olyan folyamat, amely egyetlen csoportot hoz létre a több párhuzamos tranzakcióból, és egyenként hajtja végre azokat.
  • A szerializálhatóság egy olyan párhuzamos ütemezés keresésének folyamata, amelynek kimenete megegyezik egy soros ütemezéssel, ahol a tranzakciók egymás után kerülnek végrehajtásra.