Transakcie zoskupujú súbor úloh do jednej vykonávacej jednotky. Každá transakcia začína konkrétnou úlohou a končí, keď sú všetky úlohy v skupine úspešne dokončené. Ak ktorákoľvek z úloh zlyhá, transakcia zlyhá. Transakcia má teda iba dva výsledky: úspech alebo zlyhanie .
Príklad transakcie prevodu 150 USD z účtu A na účet B:
1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>
Neúplné kroky vedú k zlyhaniu transakcie. Databázová transakcia musí byť podľa definície atómová, konzistentná, izolovaná a trvácna.
Tieto sú ľudovo známe ako KYSELINA vlastnosti. Tieto vlastnosti môžu zabezpečiť súbežné vykonávanie viacerých transakcií bez konfliktu.
Vlastnosti transakcie
- Atómovosť: Výsledok transakcie môže byť buď úplne úspešný, alebo úplne neúspešný. Celá transakcia sa musí vrátiť späť, ak jedna jej časť zlyhá.
- konzistencia: Transakcie zachovávajú obmedzenia integrity presunom databázy z jedného platného stavu do druhého.
- Izolácia: Súbežné transakcie sú od seba izolované, čo zaisťuje presnosť údajov.
- Trvanlivosť: Po potvrdení transakcie zostávajú jej zmeny v platnosti aj v prípade zlyhania systému.
Ako implementovať príkaz riadenia transakcií pomocou SQL?
Nasledujúce príkazy sa používajú na riadenie transakcií. Je dôležité poznamenať, že tieto príkazy nie je možné použiť pri vytváraní tabuliek a používajú sa iba s príkazmi DML, ako napr. VLOŽIŤ , AKTUALIZOVAŤ , a VYMAZAŤ .
Príkaz BEGIN TRANSACTION
Označuje počiatočný bod explicitnej alebo lokálnej transakcie.
Syntax:
BEGIN TRANSACTION názov_transakcie ;
Príkaz SET TRANSACTION
Hodnoty vlastností aktuálnej transakcie, ako je úroveň izolácie transakcie a režim prístupu, sa nastavujú pomocou príkazu SET TRANSACTION v MySQL.
Syntax:
NASTAVIŤ TRANSAKCIU [ ČÍTAJ NAPÍŠ | IBA NA ČÍTANIE ];
Príkaz COMMIT
Ak je všetko v poriadku so všetkými výpismi v rámci jednej transakcie, všetky zmeny sa zaznamenajú spoločne do databázy je tzv spáchaný . Príkaz COMMIT uloží všetky transakcie do databázy od posledného príkazu COMMIT alebo ROLLBACK.
Syntax:
COMMIT;
rajesh khanna
Príklad:
Vzorová tabuľka1

výkon
Nasleduje príklad, ktorý vymaže z tabuľky tie záznamy, ktoré majú vek = 20, a potom POTVRDÍ zmeny v databáze.
Dopyt
DELETE FROM Student WHERE AGE = 20; COMMIT;>
Výkon
Dva riadky z tabuľky by sa teda odstránili a príkaz SELECT by vyzeral takto:

výkon
Príkaz ROLLBACK
Ak sa vyskytne chyba v ktoromkoľvek zo zoskupených príkazov SQL, všetky zmeny je potrebné zrušiť. Proces obrátenia zmien je tzv rollback . Tento príkaz možno použiť len na zrušenie transakcií od posledného príkazu COMMIT alebo ROLLBACK.
Syntax príkazu ROLLBACK:
ROLLBACK;
Príklad:
Z vyššie uvedeného príkladu Vzorová tabuľka 1 ,
Vymažte z tabuľky tie záznamy, ktoré majú vek = 20 a potom VRÁŤTE zmeny v databáze.
pvr plná forma
Dopyt
DELETE FROM Student WHERE AGE = 20; ROLLBACK;>
Výkon

výkon
Príkaz SAVEPOINT
SAVEPOINT vytvára body v rámci skupín transakcií, v ktorých sa má ROLLBACK.
SAVEPOINT je bod v transakcii, v ktorom môžete vrátiť transakciu späť do určitého bodu bez vrátenia celej transakcie.
Syntax príkazu Savepoint:
SAVEPOINT SAVEPOINT_NAME;
Tento príkaz sa používa iba pri vytváraní SAVEPOINT medzi všetkými transakciami.
Vo všeobecnosti sa ROLLBACK používa na zrušenie skupiny transakcií.
Syntax pre návrat späť na príkaz Savepoint:
NÁVRAT DO SAVEPOINT_NAME;
hashmap
môžete kedykoľvek ROLLBACK na ktorýkoľvek SAVEPOINT vrátiť príslušné údaje do pôvodného stavu.
Príklad:
Z vyššie uvedeného príkladu Vzorová tabuľka 1 , Odstráňte z tabuľky tie záznamy, ktoré majú vek = 20 a potom VRÁŤTE zmeny v databáze ponechaním bodov uloženia.
Dopyt
SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>
Tu je SP1 prvý SAVEPOINT vytvorený pred vymazaním. V tomto príklade došlo k jednému vymazaniu.
Po opätovnom vymazaní sa vytvorí SAVEPOINT SP2.
Výkon

výkon
Prebehlo vymazanie, predpokladajme, že ste si to rozmysleli a rozhodli ste sa VRÁTIŤ NA ULOŽENIE, ktoré ste identifikovali ako SP1, ktoré je pred vymazaním.
vymazanie sa týmto vyhlásením zruší.
Dopyt
ROLLBACK TO SP1; //Rollback completed>
Výkon

výkon
Príkaz RELEASE SAVEPOINT
Tento príkaz sa používa na odstránenie SAVEPOINT, ktorý ste vytvorili.
Syntax:
UVOĽNITE SAVEPOINT SAVEPOINT_NAME
Po uvoľnení SAVEPOINT už nemôžete použiť príkaz ROLLBACK na zrušenie transakcií vykonaných od posledného SAVEPOINT.
Používa sa na spustenie databázovej transakcie a používa sa na špecifikáciu charakteristík transakcie, ktorá nasleduje.
Záver
- Príkazy SQL sú zoskupené pomocou transakcií.
- Sľubujú, že buď budú vykonané všetky zmeny, alebo nebudú žiadne.
- Spoľahlivosť je zabezpečená vlastnosťami ACID, ktorými sú atomicita, konzistencia, izolácia a odolnosť.
- Začnite transakciu s BEGIN TRANSACTION a dokončite ju pomocou COMMIT alebo ROLLBACK na dokončenie alebo vrátenie zmien.