Čo je to databázová transakcia?
Databáza Transaction je logická jednotka spracovanie v niekoľkých RDBMS, ktoré so sebou nesie jednu alebo viac operácie pre prístup k databáze. Stručne povedané, databázové transakcie predstavujú skutočné udalosti každého podniku.
Všetky typy operácií prístupu do databázy, ktoré sa uchovávajú medzi príkazmi začiatku a konca transakcie, sa v DBMS považujú za jednu logickú transakciu. Počas transakcie je databáza nekonzistentná. Iba po potvrdení databázy sa stav zmení z jedného konzistentného stavu na druhý.
V tomto návode sa dozviete:
- Fakty o databázových transakciách
- Prečo potrebujete v Transakciách súbežnosť?
- Štáty transakcií
- Čo sú vlastnosti KYSELINA?
- Druhy transakcií
- Čo je to plán?
Fakty o databázových transakciách
- Transakcia je programová jednotka, ktorej vykonanie môže alebo nemusí zmeniť obsah databázy.
- Koncept transakcie v DBMS sa vykonáva ako jedna jednotka.
- Ak operácie databázy neaktualizujú databázu, ale iba načítajú údaje, tento typ transakcie sa nazýva transakcia iba na čítanie.
- Úspešná transakcia môže zmeniť databázu z jedného KONZISTENTNÉHO ŠTÁTU do druhého
- Transakcie DBMS musia byť atómové, konzistentné, izolované a odolné
- Ak by bola databáza pred transakciou v nekonzistentnom stave, zostala by po transakcii v nekonzistentnom stave.
Prečo potrebujete v Transakciách súbežnosť?
Databáza je prístup k zdieľanému prostriedku. Používa ho veľa používateľov a procesov súčasne. Napríklad bankový systém, železničné a letecké rezervačné systémy, monitorovanie akciového trhu, inventár supermarketov a pokladne atď.
Nespravovanie súbežného prístupu môže spôsobiť problémy ako:
- Zlyhanie hardvéru a zlyhanie systému
- Súbežné vykonávanie rovnakej transakcie, zablokovanie alebo pomalý výkon
Štáty transakcií
Ďalej sú uvedené rôzne stavy koncepcie transakcie v systéme DBMS:
Štát | Typy transakcií |
Aktívny stav | Transakcia prejde do aktívneho stavu, keď sa začne proces vykonávania. Počas tohto stavu je možné vykonávať operácie čítania alebo zápisu. |
Čiastočne zaviazaný | Transakcia prejde do čiastočne potvrdeného stavu po ukončení transakcie. |
Angažovaný štát | Keď sa transakcia zaviaže uviesť, už úspešne dokončila svoje vykonávanie. Všetky jeho zmeny sa navyše natrvalo zaznamenávajú do databázy. |
Zlyhaný štát | Transakcia sa považuje za neúspešnú, keď niektorá z kontrol zlyhá alebo ak je transakcia prerušená, keď je v aktívnom stave. |
Ukončený štát | Stav transakcie dosiahne ukončený stav, keď niektoré transakcie, ktoré opúšťajú systém, nemožno reštartovať. |

Poďme študovať diagram prechodu stavu, ktorý zdôrazňuje, ako sa transakcia pohybuje medzi týmito rôznymi stavmi.
- Akonáhle transakcia uvádza vykonanie, stane sa aktívna. Môže vydať operáciu ČÍTANIE alebo PÍSANIE.
- Po dokončení operácií READ a WRITE sa transakcie stanú čiastočne potvrdeným stavom.
- Ďalej je potrebné, aby niektoré protokoly obnovy zabezpečili, že zlyhanie systému nebude mať za následok neschopnosť natrvalo zaznamenávať zmeny v transakcii. Ak je táto kontrola úspešná, transakcia sa zaviaže a vstúpi do potvrdeného stavu.
- Ak je kontrola neúspešná, transakcia prejde do stavu Zlyhanie.
- Ak je transakcia prerušená, keď je v aktívnom stave, prejde do stavu neúspešného. Transakcia by sa mala vrátiť späť, aby sa vrátil späť účinok jej operácií zápisu na databázu.
- Ukončený stav sa týka transakcie opúšťajúcej systém.
Čo sú vlastnosti KYSELINA?
Vlastnosti ACID sa používajú na udržanie integrity databázy počas spracovania transakcie. ACID v DBMS znamená A tomicity, C onsistency, I solation a D urability.
- Atomicita: Transakcia je jedna operačná jednotka. Buď to vykonáte úplne, alebo to nevykonáte vôbec. Nemôže dôjsť k čiastočnej exekúcii.
- Konzistencia: Po vykonaní transakcie by sa mala presunúť z jedného konzistentného stavu do druhého.
- Izolácia: Transakcia by sa mala vykonávať izolovane od ostatných transakcií (bez zámkov). Počas súbežného vykonávania transakcie by si nemali byť navzájom sprostredkované výsledky sprostredkovaných transakcií zo súčasne vykonaných transakcií. (Úroveň 0,1,2,3)
- Trvanlivosť: · Po úspešnom dokončení transakcie by zmeny v databáze mali pretrvávať. A to aj v prípade zlyhania systému.
KYSELINA vlastnosť v DBMS s príkladom:
Nižšie je uvedený príklad vlastnosti ACID v systéme DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END
Transakcia 1 prevádza 50 dolárov z účtu X na účet Y.
Transakcia 2 pripisuje na každý účet 10% splátku úroku.
Ak sú obidve transakcie odoslané spoločne, neexistuje záruka, že sa transakcia 1 uskutoční pred transakciou 2 alebo naopak. Bez ohľadu na objednávku musí byť výsledok taký, ako keby sa transakcie uskutočňovali postupne za sebou.
Druhy transakcií
Na základe oblastí použitia
- Nedistribuované vs. distribuované
- Vyrovnávacie transakcie
- Načasovanie transakcií
- On-line vs dávka
Na základe akcií
- Dvojstupňový
- Obmedzený
- Akčný model
Na základe štruktúry
- Ploché alebo jednoduché transakcie: Pozostáva zo sekvencie primitívnych operácií vykonaných medzi začiatočnou a koncovou operáciou.
- Vnorené transakcie: Transakcia, ktorá obsahuje ďalšie transakcie.
- Pracovný tok
Čo je to plán?
Rozvrh je proces, ktorý vytvára jednu skupinu z viacerých paralelných transakcií a vykonáva ich jednu po druhej. Mal by zachovať poradie, v ktorom sa pokyny zobrazujú pri každej transakcii. Ak sa vykonajú dve transakcie súčasne, výsledok jednej transakcie môže ovplyvniť výstup ďalších.
Príklad
Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity
Ak sa transakcia 2 uskutoční pred transakciou 1, prečítajú sa zastarané informácie o množstve produktu. Preto sú potrebné harmonogramy.
Paralelné vykonávanie v databáze je nevyhnutné. Paralelné vykonávanie je však povolené, ak existuje vzťah ekvivalencie medzi súčasne vykonávajúcimi transakciami. Táto rovnocennosť je 3 typov.
VÝSLEDKOVÁ EKVIVALENCIA:
Ak dva plány zobrazia po vykonaní rovnaký výsledok, nazýva sa to plán ekvivalentný výsledku. Môžu ponúknuť rovnaký výsledok pre určitú hodnotu a rôzne výsledky pre inú množinu hodnôt. Napríklad jedna transakcia aktualizuje množstvo produktu, zatiaľ čo iná aktualizuje podrobnosti o zákazníkovi.
Zobraziť rovnocennosť
Ekvivalencia zobrazenia nastane, keď transakcia v obidvoch plánoch vykoná podobnú akciu. Napríklad jedna transakcia vloží podrobnosti o produkte do tabuľky produktov, zatiaľ čo iná transakcia vloží podrobnosti o produkte do archívnej tabuľky. Transakcia je rovnaká, ale tabuľky sa líšia.
KONFLIKTOVÁ ekvivalencia
V takom prípade dve transakcie aktualizujú / zobrazia rovnakú množinu údajov. Medzi transakciami existuje konflikt, pretože poradie vykonania ovplyvní výstup.
Čo je Serializovateľnosť?
Serializovateľnosť je proces hľadania súbežného plánu, ktorého výstup sa rovná sériovému plánu, kde sa transakcia ae vykonáva jedna za druhou. V závislosti od typu plánov existujú dva typy serializovateľnosti:
- Konflikt
- vyhliadka
Zhrnutie:
- Správa transakcií je logická jednotka spracovania v DBMS, ktorá zahŕňa jednu alebo viac operácií prístupu do databázy
- Jedná sa o transakciu programovú jednotku, ktorej vykonanie môže alebo nemusí zmeniť obsah databázy.
- Nespravovanie súbežného prístupu môže spôsobiť problémy, ako napríklad zlyhanie hardvéru a zlyhania systému.
- Aktívne, čiastočne potvrdené, potvrdené, zlyhané a ukončené sú dôležité stavy transakcií.
- Plná forma vlastností KYSELÍN v DBMS je atomicita, konzistencia, izolácia a trvanlivosť
- Tri typy transakcií DBMS sú Base on Application Areas, Action a Structure.
- Rozvrh je proces, ktorý vytvára jednu skupinu z viacerých paralelných transakcií a vykonáva ich jednu po druhej.
- Serializovateľnosť je proces hľadania súbežného plánu, ktorého výstup sa rovná sériovému plánu, kde sa transakcie vykonávajú jeden za druhým.