Správa transakcí v DBMS: Co jsou vlastnosti ACID?

Co je to databázová transakce?

A Databázová transakce je logická jednotka zpracování v DBMS, která zahrnuje jednu nebo více operací přístupu k databázi. Stručně řečeno, databázové transakce představují skutečné události jakéhokoli podniku.

Všechny typy operací přístupu k databázi, které jsou drženy mezi příkazy začátku a konce transakce, jsou v DBMS považovány za jednu logickou transakci. Během transakce je databáze nekonzistentní. Pouze jakmile je databáze potvrzena, stav se změní z jednoho konzistentního stavu na jiný.

Databázová transakce
Databázová transakce

Fakta o databázových transakcích

  • Transakce je programová jednotka, jejíž provedení může nebo nemusí změnit obsah databáze.
  • Transakční koncept v DBMS je realizován jako jeden celek.
  • Pokud databázové operace neaktualizují databázi, ale pouze načítají data, tento typ transakce se nazývá transakce pouze pro čtení.
  • Úspěšná transakce může změnit databázi z jednoho KONZISTENTNÍHO STAVU do jiného
  • Transakce DBMS musí být atomické, konzistentní, izolované a trvalé
  • Pokud by byla databáze před transakcí v nekonzistentním stavu, zůstala by v nekonzistentním stavu i po transakci.

Proč potřebujete souběžnost v transakcích?

Databáze je sdílený zdroj, ke kterému se přistupuje. Používá jej mnoho uživatelů a procesů současně. Například bankovní systém, železniční a letecké rezervační systémy, monitorování akciového trhu, zásoby v supermarketech a pokladny atd.

Nespravování souběžného přístupu může způsobit problémy jako:

  • Selhání hardwaru a pády systému
  • Souběžné provádění stejné transakce, zablokovánínebo pomalý výkon

Stavy transakcí

Níže jsou uvedeny různé stavy konceptu transakce v DBMS:

Stát Typy transakcí
Aktivní stav Transakce vstoupí do aktivního stavu, když začne proces provádění. Během tohoto stavu lze provádět operace čtení nebo zápisu.
Částečně odsouhlaseno Transakce přejde do stavu částečně potvrzeného po ukončení transakce.
Oddaný stát Když je transakce potvrzena do stavu, byla již úspěšně dokončena. Navíc jsou všechny jeho změny trvale zaznamenávány do databáze.
Neúspěšný stav Transakce se považuje za neúspěšnou, když některá z kontrol selže nebo pokud je transakce přerušena, když je v aktivním stavu.
Ukončený stát Stav transakce dosáhne stavu ukončeno, když určité transakce, které opouštějí systém, nelze restartovat.
Diagram přechodu státu
Stavový diagram přechodu pro databázovou transakci

Pojďme studovat a diagram přechodu stavu který zdůrazňuje, jak se transakce pohybuje mezi těmito různými stavy.

  1. Jakmile transakce uvede provedení, stane se aktivní. Může spustit operaci READ nebo WRITE.
  2. Po dokončení operací READ a WRITE se transakce stanou částečně potvrzenými.
  3. Dále je třeba, aby některé protokoly obnovy zajistily, že selhání systému nebude mít za následek nemožnost trvale zaznamenávat změny v transakci. Pokud je tato kontrola úspěšná, transakce se potvrdí a přejde do stavu potvrzení.
  4. Pokud je kontrola neúspěšná, transakce přejde do stavu Failed.
  5. Pokud je transakce přerušena, když je v aktivním stavu, přejde do neúspěšného stavu. Transakce by měla být vrácena zpět, aby se zrušil účinek jejích operací zápisu na databázi.
  6. Stav ukončeno označuje transakci opouštějící systém.

Jaké jsou vlastnosti ACID?

Vlastnosti kyseliny se používají pro zachování integrity databáze během zpracování transakcí. ACID v DBMS znamená Atomicity, Cstálost, Iútěcha a Dužitkovost.

  • Atomicity: Transakce je jedna jednotka operace. Buď ji provedete úplně, nebo ji neprovedete vůbec. Nemůže dojít k částečnému provedení.
  • Konzistence: Jakmile je transakce provedena, měla by se přesunout z jednoho konzistentního stavu do druhého.
  • Izolace: Transakce by měla být provedena izolovaně od ostatních transakcí (bez zámků). Během souběžného provádění transakcí by si výsledky meziproduktů ze současně prováděných transakcí neměly vzájemně zpřístupňovat. (Úroveň 0,1,2,3)
  • Trvanlivost:· Po úspěšném dokončení transakce by změny v databázi měly přetrvávat. A to i v případě selhání systému.

Vlastnost ACID v DBMS s příkladem

Níže je uveden příklad vlastnosti ACID v DBMS:

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

Transakce 1 je převod 50 USD z účtu X na účet Y.

Transakce 2 je připsání 10% úroku na každý účet.

Pokud jsou obě transakce zadány společně, není zaručeno, že Transakce 1 bude provedena před Transakcí 2 nebo naopak. Bez ohledu na pořadí musí výsledek vypadat, jako by transakce probíhaly sériově jedna za druhou.

Typy transakcí

Na základě oblastí použití

  • Nedistribuované vs
  • Kompenzační transakce
  • Načasování transakcí
  • On-line vs

Na základě akcí

  • Dva kroky
  • Omezený
  • Akční model

Na základě struktury

  • Ploché nebo jednoduché transakce: Skládá se ze sekvence primitivních operací prováděných mezi počáteční a koncovou operací.
  • Vnořené transakce: Transakce, která obsahuje další transakce.
  • Workflow

Co je rozvrh?

Plán je proces, který vytváří jednu skupinu více paralelních transakcí a provádí je jednu po druhé. Mělo by zachovat pořadí, ve kterém se pokyny objevují v každé transakci. Pokud jsou současně prováděny dvě transakce, může výsledek jedné transakce ovlivnit výstup jiné.

Příklad

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

Pokud je transakce 2 provedena před transakcí 1, budou načteny zastaralé informace o množství produktu. Proto jsou nutné rozvrhy.

Paralelní provádění v databázi je nevyhnutelné. Paralelní provádění je však povoleno, pokud existuje vztah ekvivalence mezi současně prováděnými transakcemi. Tato ekvivalence je 3 typů.

EKVIVALENCE VÝSLEDKU:

Pokud dva plány po provedení zobrazují stejný výsledek, nazývá se to plán ekvivalentní výsledku. Mohou nabízet stejný výsledek pro určitou hodnotu a jiné výsledky pro jinou sadu hodnot. Jedna transakce například aktualizuje množství produktu, zatímco jiná aktualizuje údaje o zákazníkovi.

Zobrazit ekvivalenci

Ekvivalence zobrazení nastane, když transakce v obou plánech provede podobnou akci. Například jedna transakce vloží podrobnosti o produktu do tabulky produktů, zatímco jiná transakce vloží podrobnosti o produktu do tabulky archivu. Transakce je stejná, ale tabulky jsou jiné.

KONFLIKT Ekvivalence

V tomto případě dvě transakce aktualizují/zobrazují stejnou sadu dat. Mezi transakcemi je konflikt, protože pořadí provedení ovlivní výstup.

Co je serializovatelnost?

Serializovatelnost je proces hledání souběžného plánu, jehož výstup se rovná sériovému plánu, kde jsou transakce prováděny jedna po druhé. V závislosti na typu plánů existují dva typy serializace:

  • Konflikt
  • Zobrazit

Shrnutí

  • Správa transakcí je logická jednotka zpracování v DBMS, která zahrnuje jednu nebo více operací přístupu k databázi
  • Transakce je programová jednotka, jejíž provedení může, ale nemusí změnit obsah databáze.
  • Nespravování souběžného přístupu může způsobit problémy, jako je selhání hardwaru a selhání systému.
  • Aktivní, Částečně odevzdaný, Zadaný, Neúspěšný a Ukončený jsou důležité stavy transakce.
  • Plná forma ACID Properties v DBMS is AtomIcity, Konzistence, Izolace a Trvanlivost
  • Tři typy transakcí DBMS jsou Base on Application Areas, Action a Structure.
  • Plán je proces, který vytváří jednu skupinu více paralelních transakcí a provádí je jednu po druhé.
  • Serializovatelnost je proces hledání souběžného plánu, jehož výstup se rovná sériovému plánu, kde jsou transakce prováděny jedna po druhé.