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.
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. |
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.
- Ha egy tranzakció végrehajtást állít ki, akkor aktívvá válik. OLVASÁS vagy ÍRÁS műveletet adhat ki.
- A READ és WRITE műveletek befejezése után a tranzakciók részben véglegesített állapotba kerülnek.
- 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.
- Ha az ellenőrzés sikertelen, a tranzakció Sikertelen állapotba kerül.
- 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.
- 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.