Transact SQL utasításokat a tranzakciókhoz

Tranzakciós tulajdonságok. A tranzakciók végrehajtásának módszerei

Vannak különböző tranzakciós modellek, amelyeket különböző tulajdonságok alapján lehet besorolni, beleértve a tranzakció struktúráját, az ügyleten belüli párhuzamosságot, időtartamot stb.

Jelenleg a következő tranzakciót különböztetik meg: lapos vagy klasszikus tranzakciók, láncügyletek és beágyazott tranzakciók.

A lapos tranzakciókat a klasszikus tulajdonságok jellemzik: atomitás, konzisztencia, elszigeteltség és hosszú élettartam.

· Az atomicitás tulajdonság azt fejezi ki, hogy az ügyletet teljes egészében kell végrehajtani, vagy egyáltalán nem kell végrehajtani.

· A konzisztencia tulajdonság biztosítja, hogy a tranzakció előrehaladtával az adatok egy elfogadott állapotból egy másik következetes állapotba mozognak - az ügylet nem rontja az adatok kölcsönös konzisztenciáját.

· Az elkülönítési tulajdonság azt jelenti, hogy az adatbázisokhoz való hozzáférést egymással versengő tranzakciók fizikailag egymás után vannak feldolgozva, de a felhasználók számára úgy néz ki, mintha párhuzamosan futnának.

· A hosszú élettartamú ingatlan azt jelenti, hogy ha az ügylet sikeresen befejeződik, akkor az általa előállított adatok változása semmilyen körülmények között sem elvész, még későbbi hibák esetén sem.

A tranzakció befejezéséhez 2 lehetőség van:

· Ha az összes operátor sikeres, és szoftver vagy hardverhiba nem fordul elő a tranzakció során, akkor a tranzakciót elkövették. (A rögzítés a tranzakció során az adatbázisban lévő lemeztovábbításokra ír le). Amíg a tranzakciót elkövették, ezek a változtatások törölhetők, és az adatbázis visszaállíthatja azt az államot, amelyben a tranzakció megkezdődött. A tranzakció rögzítése azt jelenti, hogy az összes tranzakciós eredmény állandóvá válik. Ezek a tranzakciók csak az aktuális tranzakció lezárása után válnak láthatóvá.

· Ha a tranzakció sikertelen, az adatbázist vissza kell állítani eredeti állapotába. Az ügylet visszagörgetése olyan művelet, amely biztosítja, hogy az SQL utasítások által az aktuális függőben lévő tranzakció testében végrehajtott adatok módosítása megszakad.

Az ANSI / ISO szabványban a COMMIT és a ROLLBACK operátorok definiálják, a standardban a tranzakció kezdetét az első adatmódosítási operátor implicit módon meghatározza; A COMMIT operátor sikeres tranzakció-megszüntetést jelez, a tranzakció eredményeit a külső memóriában rögzítik; Amikor a tranzakciót a ROLLBACK utasítás végzi, a tranzakció eredményei törlődnek. A tranzakció sikeres befejezése azt jelenti, hogy a tranzakció sikeresen befejeződött (mint a COMMIT utasítás használata), sikertelen befejezése - megszünteti a tranzakciót (mintha a ROLLBACK utasítás lenne). Ebben a modellben minden olyan szolgáltató, amely megváltoztatja az adatok állapotát, tranzakcióként kezeli. Ez a modell a kereskedelmi DBMS első verzióiban valósult meg. Ezt követően a kibővített tranzakciós modellt a SYBASE DBMS-ben hajtották végre.

A kiterjesztett tranzakciós modellben (például a DBMS SQL SERVER-ben) számos további műveletet biztosítunk:

· A BEGIN TRANSACTION nyilatkozat jelenti a tranzakció kezdetét;

• A COMMIT TRANSACTION nyilatkozat jelenti a tranzakció sikeres befejezését. Ez az operátor, valamint az ANSI / ISO szabványmodellben található COMMIT az összes tranzakció során végrehajtott módosításokat rögzíti az adatbázisban;

· A SAVE TRANSACTION operátor létrehoz egy mentési pontot a tranzakcióban, amely megfelel az operátor végrehajtásakor tárolt adatbázis közbenső állapotának. A SAVE TRANSACTION utasításban beállítható az elmentési pont neve, így a tranzakció alatt több közbenső állapotnak megfelelő tárolóhely is tárolható;

· A ROLLBACK 2 módosítással rendelkezik. Ha további paraméter nélkül használják, úgy értelmezik, mint a teljes tranzakció visszagörgetési operátora, ha rendelkezik a ROLLBACK n paraméterrel. akkor a tranzakció részleges visszahúzásának operátora az n tárolási pontra vonatkozik.

A hosszú és összetett tranzakciók során célszerű a mentési pontokat használni annak biztosítása érdekében, hogy bizonyos üzemeltetők által végrehajtott változtatások visszavonhatók.

A legtöbb esetben beállíthatja az AUTOCOMMIT nevű paramétert. amely automatikusan megjegyzi az összes végrehajtható parancsot, és a hibához vezető műveletek mindig automatikusan törlődnek. Általában ez a mód a parancs típusával van beállítva:

Kapcsolódó cikkek