..


Sponzorované odkazy

Transakcie

Ako sme videli v predchádzajúcich lekciách pomocou T-SQL príkazy možno vkladať dáta do tabuľky, editovať a zmazať. Za určitých okolností pri spustení sekvencie kombináciou týchto operácií je žiaduce, aby táto sekvencie, alebo porty vykonávať všetky operácie sú v nej obsiahnuté, alebo nie výber.

V týchto prípadoch sme na pomoc tzv transakcie. Transakcia je v podstate spôsob, akým programátori môžu definovať jednotku práce, ktoré majú byť dokončené v plnom rozsahu boli považované za platné.

Existujú štyri základné pojmy týkajúce sa transakcie:

  • Atomicity - Všetky zmeny údajov v rámci transakcie musí byť platná a riadne odovzdané v databáze. Ak je len jeden zo spôsobov neprichádza k uskutočneniu všetkých ostatných, musí byť zrušené (tzv. roll back transakcie).
  • Konzistencia - Ak počas prenosu dát do databázy, musí zostať v konzistentnom stave a udržanie jeho integrity.
  • Izolácia - Všetky zmeny vykonané v rámci transakcie, musí byť izolovaný od zmien vykonaných ostatnými súbežné transakcie.
  • Pobyt - Ak je transakcia úspešne zmeny sú prenášané do databázy a akejkoľvek poruche systému (hardvér alebo softvér), by nemala viesť k strate týchto zmien.

Transakcia môže byť použitý na riadenie akejkoľvek manipulácie na dáta, ktorá je založená na UPDATE, INSERT alebo DELETE, a ich kombinácie. Samozrejme nemá zmysel používať transakcie sa uplatňuje iba v prípade, že SELECT.

Veľmi dôležité poňatie v súvislosti s transakciou je mŕtvom bode. Tento termín označuje situáciu, keď sú dve rôzne manipulácie na rovnaké dáta v rôznych transakcií uskutočnených súčasne. V tejto situácii sa každá transakcia čaká na druhom konci jeho manipulácia a potom vytvára akýsi blok (zablokovanie v skutočnosti), ktoré môžu ovplyvniť iba podieľajú tabuliek, alebo v niektorých prípadoch celej databázy.

Transakcia je zahájená a do konca roka sa môžete vykonať záverečné manipulácia s dátami (tzv. transakcie commit) alebo ich zrušiť úplne (rollback ATRANS). Začatie operácie sa vykonáva pomocou BEGIN TRAN. Po tomto príkaze (a pred COMMIT alebo ROLLBACK TRAN TRAN), sú všetky operácie vykonávané na základe údajov sú zahrnuté v transakcii.

COMMIT TRAN Príkaz umožňuje trvalé zmeny vykonané na dáta v databáze a akonáhle sa nemôžu vrátiť do stavu pred transakciou. Ak chcete vrátiť späť všetky zmeny údajov, od začiatku transakcie musia používať ROLLBACK TRAN.

Pozrime sa teraz niektoré príklady použitia týchto príkazov. Používame tabuľku AnagraficaDipendenti a Predpokladajme, že chceme zmeniť meno zamestnanca s EmployeeID = 3, potom napíšte nasledujúci kód






 SELECT "prvý", EmployeeID, priezvisko, meno







 Z dbo.AnagraficaDipendenti







 KDE EmployeeID = 3







 BEGIN TRAN Zmeniť







 UPDATE dbo.AnagraficaDipendenti







 Set name = "august"







 KDE EmployeeID = 3







 COMMIT TRAN







 SELECT "po", EmployeeID, priezvisko, meno







 Z dbo.AnagraficaDipendenti







 KDE EmployeeID = 3



Výsledkom našej vzdelávanie budú
Teraz vidíme použitie príkazu ROLBACK TRAN stále snaží zmeniť meno, ktoré zamestnanec Julius





 SELECT "prvý", EmployeeID, priezvisko, meno







 Z dbo.AnagraficaDipendenti







 KDE EmployeeID = 3







 BEGIN TRAN Zmeniť







 UPDATE dbo.AnagraficaDipendenti







 Set name = 'Julius'







 KDE EmployeeID = 3







 SELECT "V", EmployeeID, priezvisko, meno







 Z dbo.AnagraficaDipendenti







 KDE EmployeeID = 3







 ROLLBACK TRAN







 SELECT "po", EmployeeID, priezvisko, meno







 Z dbo.AnagraficaDipendenti







 KDE EmployeeID = 3



Výsledkom nové inštrukcie bude
Ako môžete vidieť vo vnútri transakcie aktualizácie záznamu, ale neskôr sa vrátiť späť, je situácia do pôvodného stavu. Je jasné, že má zmysel použiť transakcia pre jeden UPDATE, ale tento príklad je veľmi užitočné pre pochopenie spôsobu fungovania tohto mechanizmu.

Príručka SQL Server 2008
E-Learning
MS Access (kurz) MS Access (kurz)
Naučte sa vytvárať a spravovať databázy jednoducho a rýchlo. Od 29 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databázu. Od 39 €.
SQL a databázy (kurz) SQL a databázy (kurz)
Vytváranie a správa relačnej databázy. Od 39 €.
Sponzorované odkazy