Résumé de section
-


-

Obiective
1. Definirea unei tranzactii
2. Folosirea declaratiilor, formularilor, instructiunilor de genul BEGIN TRANSACTION (inceperii unei activitati), COMMIT WORK (realizarii unei activitati) si ROLLBACK (revenirii asupra unei acitvitati, reluarea ei) in cadrul unei tranzactii
Definirea tranzactiei
Gestiunea tranzactiilor, se refera la capacitatea unui SGBD relational de a efectua tranzactii intr-o baza de date.
O tranzactie este o multime de instructiuni care se executa in grup. Daca oricare din instructiune nu poate fi incheiata, toate celelalte actiuni trebuiesc refacute. Tranzactiile sunt unitati de prelucrare(program) care trebuie efectuate fie in intregime, fie deloc. Prin unitate de prelucrare intelegem ca o tranzactie are un inceput si un sfarsit.
Prin urmare o tranzactie are intotdeauna un inceput si un sfarsit. Server-ul bazei de date garanteaza ca operatiile realizate in limitele unei tranzactii vor fi fie complet si perfect salvate pe disc, sau daca acest lucru nu este posibil, baza de date va reveni in stadiul in care era inainte ca tranzactia sa fi inceput.
Daca ceva gresit se petrece in timpul unei tranzactii, intreaga unitate de prelucrare poate fi anulata, dupa dorinta utilizatorului. Daca totul este corect, unitatea de prelucrare poate fi salvata in intregime in baza de date
Tranzactie bancara
Transferul banilor din contul de economii in contul curent este un bun
exmplu de tranzactie.
Actiuniile implicate in aceasta tranzactie sunt:
1. Actualizarea contului de economii prin indicarea unei retrageri din cont.
2. Actualizarea contului curent pentru a pune in evidenta un depozit.
Aceste actiuni trebuiesc incheiate cu succes inainte ca transferul sa fie terminat. Daca ceva nu merge,cu oricare dintre cele doua actiuni, tranzactia esueaza. De exemplu daca ati incercat sa transferati, in contul curent, mai multi bani decat aveti in contul de economii transferul nu va avea loc si balanta conturilor dumneavoastra va ramane la fel cum a fost inainte ca dumneavoastra sa incercati sa realizati transferul.
Multe lucruri, ca de exemplu o defectiune software sau hardware, pot duce la esecul unei tranzactii. Din aceasta cauza server- ul bazei de date terbuie sa aiba o modalitate de urmarire a modificarilor relizate in timpul tranzactiei. Acest lucru este posibil prin intermediul logarii unei tranzactii.Server-ul foloseste logarea unei tranzactii pentru a inregistra fiecare modificare facuta bazei de date in timpul tranzactiei. Daca tranzactia nu poate fi realizata, server- ul foloseste automat datele din jurnalul( logarea) tranzactiei pentru a anula modificarile.
Bazele de date nu sunt prevazute cu un sistem de jurnalizare automata a tranzactiilor. Administartorul bazei de date trebuie sa decida daca realizeaza sau nu o baza de date prevazuta cu un sistem de logare a tranzactiilor. Daca baza de date nu este prevazuta cu un sistem de logare tranzactiile nu sunt valabile.
Reluarea activitatii (ROLLBACK)
In unele cazuri poate veti dori ca programul dvs. sa anuleze o tranzactie, in mod deliberat, in functie de unele circumstante se foloseste instructiunea ROLLBACK (reluarea sau revenirea la un anumit punct in cadrul activitatii). Instructiunea ROLLBACK face ca server-ul bazei de date sa anuleze tranzactia curenta si sa anuleze si modificarile facute.
- BEGIN TRANSACTION
- Select @v=1
- update economii set sold=sold-100
- If sold < 0 (este balanta negativa?)
- then
- @v=0
- else
- update cont-curent set sold=sold+100
- end
- If @v=0
- then
- ROLLBACK -- una sau mai multe actiuni au esuat
- else
- COMMIT -- toate actiunile s-au incheiat cu succes
- end
In exemplul dat in pseudo-cod declaratia ROLLBACK este executata doar daca @v este setat pe zero inainte ca tranzactia sa fie realizata.
-

-
-

LUCRUL PE ACASA
PREGATIREA PENTRU TEST PE MYSQL SERVER T-SQL
MATERIALUL DE MAI SUS.
CASE METODOLOGY 3 INTREBARI, 17 PE MS SQL SERVER T-SQL
IN LUCRAREA DE LABORATOR NR.3
UTILIZAREA A 5 COMENZI T-SQL CELE MAI DIFERITE
DIN LISTA CELOR UTILIZATE IN CURSUL LECTIEI
A URMARI PREZENTAREA DE BAZA A LECTIEI SI LINK-UL DE BAZA
-

