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

Obsah:

Anonim

Co je to databázová transakce?

Databáze Transaction je logická jednotka zpracování v několika RDBMS, které s sebou nese jednu nebo více operace pro přístup 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 uchovávány 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 po potvrzení databáze se stav změní z jednoho konzistentního stavu do jiného.

V tomto výukovém programu se naučíte:

  • Fakta o databázových transakcích
  • Proč v transakcích potřebujete souběžnost?
  • Státy transakcí
  • Co jsou vlastnosti ACID?
  • Druhy transakcí
  • Co je to plán?

Fakta o databázových transakcích

  • Transakce je programová jednotka, jejíž provedení může nebo nemusí změnit obsah databáze.
  • Koncept transakce v DBMS se provádí jako jedna jednotka.
  • Pokud operace databáze neaktualizují databázi, ale pouze načítají data, tento typ transakce se nazývá transakce jen pro čtení.
  • Úspěšná transakce může změnit databázi z jednoho KONSISTENTNÍHO STÁTU do jiného
  • Transakce DBMS musí být atomové, konzistentní, izolované a odolné
  • Pokud by databáze byla před transakcí v nekonzistentním stavu, zůstala by po transakci v nekonzistentním stavu.

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

Databáze je sdílený prostředek, 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, inventář supermarketů a pokladny atd.

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

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

Státy 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ě zavázáno Transakce přejde do částečně potvrzeného stavu po skončení transakce.
Zavázaný stát Když je transakce potvrzena do stavu, již úspěšně dokončila své provedení. Kromě toho jsou všechny jeho změny trvale zaznamenávány do databáze.
Stav se nezdařil Transakce se považuje za neúspěšnou, pokud 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 ukončeného stavu, když určité transakce, které opouštějí systém, nelze restartovat.
Stavový přechodový diagram pro databázovou transakci

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

  1. Jakmile transakce uvádí provedení, stane se aktivní. Může vydat operaci ČTENÍ nebo ZÁPIS.
  2. Po dokončení operací READ a WRITE se transakce stanou částečně potvrzeným stavem.
  3. Dále je třeba, aby některé protokoly obnovy zajistily, že selhání systému nebude mít za následek neschopnost trvale zaznamenávat změny v transakci. Pokud je tato kontrola úspěšná, transakce se zaváže a vstoupí do potvrzeného stavu.
  4. Pokud je kontrola neúspěšná, transakce přejde do stavu Selhalo.
  5. Pokud je transakce přerušena, když je v aktivním stavu, přejde do stavu selhání. Transakce by měla být vrácena zpět, aby se vrátil účinek jejích operací zápisu na databázi.
  6. Ukončený stav se týká transakce opouštějící systém.

Co jsou vlastnosti ACID?

Vlastnosti ACID se používají k udržení integrity databáze během zpracování transakce. KYSELINA v DBMS znamená A tomicity, C onsistency, I solation a D urability.

  • Atomicita: Transakce je jedna provozní jednotka. Buď to provedete úplně, nebo vůbec ne. Nelze provést částečné 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 prováděna izolovaně od ostatních transakcí (bez zámků). Během provádění souběžných transakcí by se neměly vzájemně zpřístupňovat průběžné výsledky transakcí ze současně prováděných transakcí. (Úroveň 0,1,2,3)
  • Trvanlivost: · Po úspěšném dokončení transakce by změny v databázi měly přetrvávat. 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 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

Transakce 1 převádí 50 $ z účtu X na účet Y.

Transakce 2 připisuje na každý účet 10% splátku úroku.

Pokud jsou obě transakce odeslány společně, neexistuje žádná záruka, že transakce 1 bude provedena před transakcí 2 nebo naopak. Bez ohledu na objednávku musí být výsledek takový, jako kdyby transakce probíhaly postupně za sebou.

Druhy transakcí

Na základě oblastí použití

  • Nedistribuované vs. distribuované
  • Vyrovnávací transakce
  • Načasování transakcí
  • On-line vs. šarže

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í provedených mezi počáteční a koncovou operací.
  • Vnořené transakce: Transakce, která obsahuje další transakce.
  • Pracovní postup

Co je to plán?

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

Příklad

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

Pokud je transakce 2 provedena před transakcí 1, budou přečteny zastaralé informace o množství produktu. Proto jsou vyžadovány plány.

Paralelní spuštění v databázi je nevyhnutelné. Paralelní provádění je ale povoleno, pokud existuje vztah ekvivalence mezi současně prováděnými transakcemi. Tato rovnocennost má 3 typy.

VÝSLEDKOVÁ EKVIVALENCE:

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

Zobrazit rovnocennost

K ekvivalenci zobrazení dojde, když transakce v plánu provede podobnou akci. Příklad, jedna transakce vloží podrobnosti o produktu do tabulky produktu, zatímco jiná transakce vloží podrobnosti o produktu do archivní tabulky. Transakce je stejná, ale tabulky se liší.

KONFLIKT Ekvivalence

V tomto případě dvě transakce aktualizují / zobrazují stejnou sadu dat. Mezi transakcí dochází ke konfliktu, 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 se transakce ae provádí jedna po druhé. V závislosti na typu plánů existují dva typy serializace:

  • Konflikt
  • Pohled

Souhrn:

  • Správa transakcí je logická jednotka zpracování v DBMS, která zahrnuje jednu nebo více operací přístupu k databázi
  • Jedná se o transakci je programová jednotka, jejíž provedení může nebo 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ě potvrzené, potvrzené, neúspěšné a ukončené jsou důležité transakční stavy.
  • Plnou formou vlastností ACID v DBMS je Atomicity, Consistency, Isolation a Durability
  • Tři typy transakcí DBMS jsou Base on Application Areas, Action, & Structure.
  • Plán je proces, který vytváří jednu skupinu několika paralelních transakcí a provádí je jeden po druhém.
  • 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 jeden po druhém.