Documente Academic
Documente Profesional
Documente Cultură
$ T
n&1
T
n
$ T
2
T
1
'econ(rate Confrmate
)reten*ii noi
doar pentru acele elemente de date care rezid !n mod curent pe acel calculator& necesit.ile de memorie
nu sunt foarte mari-8iecare calculator tre"uie s ai" alocat memorie necesar stocrii informa.iei despre
setul de opera.ii de acces al tranzac.iilor confirmate-
6 tranzac.ie tipic de actualizare are un set de opera.ii de citire precum i un set de opera.ii de scriere-
Astfel& o coad de preten.ii tipic pentru un element de date are intrri de citire i intrri de scriere-
Intrrile consecutive de citire pot fi procesate !n paralel& !n timp ce intrrile de scriere tre"uiesc servite
serial- De e0emplu& considerand coada de preten.ii a unui singur element de date D
2
& unde se afl dou
intrri de scriere separate de cateva intrri de citire- Dup ce prima scriere a fost completat de
calculatorul care de.ine 3acum4 copia scris a lui D
2
& se trimite mai departe versiunea actualizat a lui D
2
ctre toate calculatoarele care au o intrare de citire !n coada de preten.ii& !nainte de scrierea urmatoare-
Copia scris actuala este trimis calculatorului care este responsa"il pentru ultima intrare de citire inainte
de a doua intrare de scriere- Dupa ce este terminat fiecare tranzac.ie care necesit citirea lui D
2
& e0ist un
mecanism de informare a calculatorului care vrea sa$l modifice pe D
2
- Acest mecanism este realizat prin
calculatoarele care$l citesc pe D
2
care trimit cate un mesa2 ctre calculatorul care ateapt sa$l scrie pe D
2
:
acesta ateapt momentul propice actualizrii i anume acela c;nd s$a sfarit citirea lui D
2
- Calculatorul
care are copia de scriere transmite aceast copie a lui D
2
impreun cu mesa2ul i apoi actualizarea la acel
calculator poate !ncepe-
Algoritmul send$on$demand poate fi rezumat in forma urmatoare :
Toate calculatoarele actualizeaz cozile de preten.ii& iar dac sunt responsa"ile de transmiterea unui
fragment din "aza de date& adaug informa.ia marcii de timp la elementul de date i apoi terge informa.ia
despre tranzac.ia actualizat din cozile de preten.ii prin verificarea marcii de timp-
Calculatoarele care proceseaz actualizri transmit !ntregul set de opera.ii de acces 3setul de opera.ii de
citire i setul de opera.ii de scriere4 al actualizrii catre toate calculatoarele& ateapt evenimentele 3a4 sunt
primite toate elementele de date din setul de opera.ii de acces i 3"4 mesa2ul ?completat@ a a2uns de la
tranzac.iile care de.in o copie de citire a elementelor de date !n setul lor de opera.ii de citire& e0ecut
actualizarea& trimite o copie a fiecarei actualizari 3odat cu timpul la care s$a e0ecutat actualizarea4 ctre
calculatoarele respective responsa"ile pentru transmiterea lor& dac de.ine o copie de citire a elementului
de date D
2
& trimite o completare a mesa2ului ctre urmtoarea scriere !n coada de preten.ii pentru D
2
& iar
dac de.ine o copie de scriere a lui D
2
& trimite o copie de citire a lui D
2
ctre toate calculatoarele care au o
intrare de citire !n coada de preten.ii !nainte de scrierea urmtoare i trimite copia de scriere ctre
urmatoarea scriere-
Calculatoare care proceseaz interogri scaneaz canalele de transmisie pe care elementele de date sunt
transmise& urmarind elementele de date din setul de opera.ii de acces al interogrii& citete doar acele copii
care sunt consistente mutual prin verificarea informa.iei mrcii de timp respective i e0ecut interogarea-
29
#.(. Te,nici de re0acere a bazelor de date
)efacerea unei "aze de date dup producerea unui defect 3data"ase recover74 !nseamn aducerea "azei
de date !ntr$o stare precedent corect& din care& eventual& se poate reconstrui o nou stare corect i c;t
mai apropiat de momentul apari.iei defectului- /entru opera.iile de refacere se folosete fiierul 2urnal& i
3sau4 o copie de rezerv a "azei de date 3data"ase "ac>up4 stocat !n general pe "and magnetic- Dac
"aza de date nu este distrus fizic& dar a devenit inconsistent datorit unui defect necatastrofic& atunci
strategia de refacere const !n a anula modificrile care au produs inconsisten.a 3prin opera.ii undo4 sau&
uneori& de a e0ecuta din nou anumite modificri care s$au pierdut 3prin opera.ii redo4- 9n acest caz nu este
necesar copia de rezerv& ci se folosete starea actual a "azei de date i fiierul 2urnal-
Dac "aza de date a fost puternic distrus& datorit unei defectri serioase a discului& atunci se
restaureaz starea "azei de date din copia de rezerv& dup care se reconstruiete o stare c;t mai actual
prin reaplicarea tuturor tranzac.iilor validate e0istente !n fiierul 2urnal& dac acesta nu a fost deteriorat&
sau din ultima copie salvat a fiierului 2urnal-
)efacerea "azei de date este procesul de restaurare a "azei de date !ntr$o stare corect dup apari.ia
unei pene 3cderile sistemului 3hard sau soft4 &pene de mediu 3distrugerea mediului de depozitare a
datelor4& erorile soft de aplica.ie& dezastre naturale& negli2en.a& sa"ota2ul4-
Indiferent de cauz& e0ist dou efecte principale:
$ pierderea memoriei principale& inclusiv a "ufferelor "azei de date
$ pierderea copiei de pe disc a "azei de date
Tranzac.ia reprezint unitatea de reface de "az dintr$un sistem de "aze de date-
/rocedura utilizat pentru refacerea "azei de date depinde de gradul de deteriorare- #unt posi"ile dou
situa.ii:
$ dac "aza de date a fost deteriorat fizic 3cderea discului pe care este stocat "aza de date4& este
necesar s se restaureze ultima copie de siguran. i s se aplice din nou opera.iile de reactualizare a
tranzac.iilor efectuate& folosind fiierul 2urnal%- #e recomand ca fiierul 2urnal s fie stocat pe un disc
separat& pentru a reduce riscul deteriorrii lui simultan cu deteriorarea "azei de date- Amintim c
#ecuritatea datelor cere ca "aza de date s fie prote2at !mpotriva unei distrugeri logice 3anomalii de
actualizare4 sau fizice- /entru aceasta& e0ist instrumente care permit:crearea unor puncte de repriz Q
salvarea din timp !n timp a unor copii coerente ale "azei de date& gestiunea unui jurnal de tranzacii Q
lista opera.iilor realizate asupra "azei de date dup ultimul punct de repriz
$ dac "aza de date nu a fost deteriorat fizic& ci a devenit incoerent datorit unei cderi a
sistemului !n timpul e0ecu.iei unei tranzac.ii& nu este necesar utilizarea copiei de siguran.& ci poate fi
restaurat utiliz;nd imaginile anterioare i ulterioare con.inute !n fiierul 2urnal-
Te,nici de re0acere
Tehnica de refacere cu ajutorul reactualizrii amnate
30
/rin utilizarea acestui protocol& reactualizrile nu sunt scrise !n "aza de date dec;t dup ce tranzac.ia a
a2uns pe punctul de a fi efectuat- Dac tranzac.ia eueaz !nainte de a a2unge !n acest punct& ea nu va fi
modificat "aza de date i astfel nu mai sunt necesare anulri sau modificri- #$ar putea s fie nevoie doar
s se reia reactualizrile tranzac.iilor efectuate& deoarece este posi"il ca efectul acestora s nu fi a2uns la
"aza de date- /entru aceasta se folosete 2urnalul de tranzac.ii-
Tehnica de refacere cu ajutorul reactualizrii imediate
/rin utilizarea acestui protocol& reactualizrile sunt aplicate pe "aza de date imediat ce au loc& fr a
atepta ca tranzac.ia s a2ung pe punctul de a fi efectuat- /e l;ng reluarea reactualizrilor efectuate&
acum ar putea s fie necesar s se anuleze efectele tranzac.iilor care nu au fost efectuate !n momentul !n
care a survenit pana- /entru aceasta se folosete 2urnalul de tranzac.ii- =ste esen.ial ca !nregistrrile din
2urnal s fie scrise !nainte descrierea corespunztoare !n "aza de date- Aceast opera.ie e cunoscut su"
denumirea de protocol de scriere !n avans !n 2urnal-
Painarea cu umbr
=ste o alternativ a tehnicilor care folosesc 2urnalul de tranzac.ii- 9n cadrul acestei tehnici& !n timpul
unei tranzac.ii se pstreaz dou ta"ele ale paginii: unul pentru pagina curent& unul pentru pagina din
um"r- <a !nceputul tranzac.iei& cele dou pagini sunt identice- /agina din um"r nu se modific niciodat
pe parcursul tranzac.iei& !n timp ce pagina curent reflect toate reactualizrile fcute pe "aza de date de
ctre tranzac.ia respectiv- <a !ncheierea tranzac.iei& ta"elul paginii curente devine ta"elul paginii din
um"r-
Avanta2e:
eliminarea suprasarcinii datorat !ntre.inerii fiierului 2urnal
refacerea mai rapid 3pentru c nu sunt necesare opera.ii de anulare sau reluare4 Dezavanta2e:
fragmentarea datelor
necesitatea unei colectri periodice a Jgunoaielor@-
#.). "ontrolul tranzaciilor
Tehnicile de gestiune a tranzac.iilor i de refacere a datelor prezentate !n sec.iunile precedente sunt
incluse !n componentele sistemelor de gestiune a "azelor de date 3administratorul de tranzac.ii i
administratorul de refacere4 !ntr$o form specific fiecrui #BD& cu diferite grade de comple0itate-
Aplica.iile de "aze de date au un control destul de limitat asupra op.iunilor de gestiune a tranzac.iilor
prin intermediul unor comenzi care se "azeaz pe standardul #Z<*-
9n standardul #Z<* sunt prevzute urmtoarele comenzi de specificare a tranzac.iilor:
#=T T)A'#ACTI6' optiuni
C6MMIT FS6)YG )6<<BACY FS6)YG
31
Comanda #=T T)A'#ACTI6' sta"ilete propriet.ile tranzac.iilor i admite urmtoarele op.iuni de
setare a modului de gestiune a tranzac.iilor:
$ 'ivelul de izolare a tranzac.iilor 3I#6<ATI6' <=(=<4 cu valorile posi"ile: )=AD
U'C6MMITT=D& )=AD C6MMITT=D& )=/=TAB<= )=AD#& #=)IA<IRAB<=-
$ Modul de acces la articole $ cu valorile posi"ile )=AD 6'<c& )=AD S)IT=-
$ Modul de refacere a datelor 3#=T C6'#T)AI'T#4& cu valorile posi"ile D=8=))=D 3refacere
am;nat4 i IMM=DIAT= 3refacere imediat4-
'ivelul de izolare reprezint gradul p;n la care o tranzac.ie tre"uie s fie izolat de celelalte
tranzac.ii- Izolarea total a tranzac.iilor& !n care starea "azei de date este consistent !n permanen.& iar !n
tranzac.ii nu apar nici un fel de anomalii& este o".inut pe nivelul cel mai !nalt de izolare& denumit
#=)IA<IRAB<=& care corespunde planificrilor serializa"ile 3echivalente cu planificri seriale ale
tranzac.iilor4- Acest nivel de izolare total micoreaz gradul de concuren. a tranzac.iilor& i& ori de c;te
ori este posi"il& se admit niveluri de izolare mai sczute& care admit unele anomalii 3controla"ile4 de
e0ecu.ie a tranzac.iilor i asigur un grad de concuren. mai ridicat- 'ivelurile de izolare determin
modul !n care sistemul de gestiune a "azei de date introduce diferitele mecanisme de control al
concuren.ei 3cel mai frecvent zvoare cu stri multiple4- De e0emplu& pe nivelul )=AD C6MMITT=D&
sunt prevzute zvoare parta2ate pentru toate articolele citite& ceea ce !mpiedic apari.ia citirilor improprii&
dar aceste zvoare sunt eli"erate !nainte de terminarea tranzac.iei i& de aceea& pot rezulta citiri
nerepeta"ile i citiri fantom 3ta"elul de mai 2os4
4ivelurile de izolare a tranzaciilor .
/e orice nivel de izolare& inclusiv pe cel mai sla" 3)=AD U'C6MMITT=D4& se folosesc mecanisme
de control al concuren.ei tranzac.iilor care previn pierderea actualizrilor- Astfel de anomalii sunt foarte
grave& "aza de date nu reflect opera.iile care s$au efectuat asupra datelor i nici nu e0ist vreo
posi"ilitate de refacere a acestor pierderi- De aceea nu este prevzut nici un nivel de izolare care s
permit pierderea actualizrii datelor- /e toate nivelurile de izolare& cu e0cep.ia nivelului
#=)IA<IRAB<=& pot s apar diferite anomalii& dar aceste anomalii sunt anomalii de citire& care pot fi
gestionate de tranzac.ii& i nu anomalii memorate permanent !n "aza de date-
De e0emplu& dac se tie c o tranzac.ie va fi e0ecutat pe nivelul de izolare )=AD C6MMITT=D&
atunci se poate scrie codul tranzac.iei astfel !nc;t aceasta s nu citeasc datele din ta"ele dec;t o singur
dat i s le memoreze local pentru o alt utilizare& !n loc s citeasc de mai multe ori din ta"ele- Cu c;t
32
nivelul de izolare a tranzac.iilor este mai sczut& cu at;t pot s apar mai multe anomalii de actualizare&
dar crete gradul de concuren. a e0ecu.iei i scade pro"a"ilitatea de apari.ie a impasului- De aceea&
pentru proiectarea unor tranzac.ii eficiente se recomand utilizarea unor niveluri de izolare c;t mai
sczute& at;t c;t este posi"il pentru ca tranzac.iile respective s se e0ecute totui corect- 6 tranzac.ie se
poate termina fie prin validare 3cu comanda C6MMIT4& fie prin anulare 3cu comanda )6<<BACY4-
Comanda C6MMIT garanteaz c toate modificrile efectuate de tranzac.ia respectiv au devenit
permanente-
Comanda )6<<BACY termin o tranzac.ie i anuleaz 3ruleaz !napoi4 toate modificrile e0ecutate
p;n !n acel punct de acea tranzac.ie: aceast comand se trimite atunci c;nd apare o anumit condi.ie
3posi"il o eroare4& care face imposi"il continuarea cu succes a tuturor opera.iilor tranzac.iei-
Instruc.iunile C6MMIT i )6<<BACY eli"ereaz resursele ocupate de tranzac.ie& cum ar fi zvoarele
articolelor-
9n general& sistemele #BD implementeaz protocoalele i func.iile de control al concuren.ei i
gestioneaz automat e0ecu.ia tranzac.iilor i refacerea datelor& pentru a asigura consisten.a i integritatea
datelor memorate- Tranzac.iile sunt administrate la nivelul cone0iunii unei aplica.ii client cu serverul
"azei de date: atunci c;nd o tranzac.ie a fost !nceput pe o cone0iune& toate instruc.iunile urmtoare
e0ecutate pe acea cone0iune fac parte din acea tranzac.ie& p;n ce aceasta se termin- /rogramatorii de
aplica.ii au responsa"ilitatea s sta"ileasc punctele de !nceput i de sf;rit ale tranzac.iilor i s prevad
!n fiecare tranzac.ie secven.ele de modificri ale datelor astfel !nc;t acestea s lase "aza de date !ntr$o
stare consistent& care s respecte toate constr;ngerile& implicite i e0plicite-
De asemenea& se pot selecta prin program diferite op.iuni de control 3nivel de izolare& mod de acces&
etc-4- Aceste opera.ii se pot realiza prin intermediul unor comenzi care sunt variante ale comenzilor #Z<
de "az i care se transmit #BD$ului& fie prin instruc.iuni ale unui lim"a2 procedural de e0tensie a
lim"a2ului #Z<& fie prin func.ii ale interfe.elor de programare 3cum sunt interfe.ele 6DBC& _DBC4
3e0emple in manual4-
Tranzac.iile sunt corecte dac las "aza de date !ntr$o stare consistent i sunt cu at;t mai eficiente cu
c;t sunt mai scurte 3ca timp de e0ecu.ie i ca numr de articole ale "azei de date accesate4- )espectarea
acestor cerin.e are o influen. pozitiv asupra performan.elor "azelor de date at;t prin limitarea frecven.ei
de apari.ie a impasului 3!n cazul folosirii zvoarelor4& c;t i din punct de vedere al eficien.ei opera.iilor de
anulare i de "locare a resurselor-
6ri de c;te ori se poate !nlocui o tranzac.ie comple0& cu numr de opera.ii i timp de e0ecu.ie ridicate&
cu mai multe tranzac.ii scurte& este indicat s se fac aceast transformare-
De asemenea& pentru men.inerea tranzac.iilor c;t mai scurte posi"il& se recomand ca o tranzac.ie s nu
fie pornit p;n ce nu au fost pregtite toate datele 3citirea datelor de intrare& parcurgerea& analiza i
prelucrarea acestora4-
33
!"#
"oncluzii:
%- Din punct de vedere practic& cei mai utilizati algoritmii sunt algoritmii de tip *$/< :
*- /erformantele algoritmului de tip optimist sunt net superioare celui de "locare in cazul
in care nu apare concurenta-
Biblio&ra0ie:
%- #Z< *++B Boo>s 6n<ine :
*- Manuale curs Microsoft 3curs *DDd4-
34