Sunteți pe pagina 1din 26

COMENZI DE CONTROL AL CONCURENTEI

IN SISTEME DE BAZE DE DATE


DISTRIBUITE
Pagina 1
Stefanescu Cristina,
Master IISC, anul II
Stefanescu Cristina-Gabriela,
Master IISC, anul II
CUPRINS
2 Introducere........................................................................................................................... 3
2.1 Baze de date distriuite.................................................................................................... 3
2.2 Tranzac!ii "n siste#e de aze$e de date..................................................................................5
% Contro$u$ tranzac ii$or &i Contro$u$ concuren ei ..............................................................................6
%.1 Instruc iuni S'L (o$osite in contro$u$ tranzac ii$or ....................................................................7
%.2 Tranzac!ii "n siste#e de aze$e de date distriuite....................................................................9
) *rotoco$u$ de $ocare in dou+ (aze............................................................................................. 18
).1 *rotoco$u$ de co#itere "n dou+ (aze ,2* Co##it- . structur+/ (unc!ionare.....................................18
).2 *rotoco$u$ de $ocare "n dou+ (aze ,2.*L-............................................................................21
).% Co#0ara!ie "ntre 2 *C si 2 *L..........................................................................................24
).) Conc$uzii.................................................................................................................... 25
1 Bi$io2ra(ie........................................................................................................................ 26
Pagina 2
Stefanescu Cristina-Gabriela,
Master IISC, anul II
1 INTRODUCERE
Baze$e de date re0rezint+ un conce0t actua$/ care i.a 2+sit uti$itatea "n (oarte #u$te do#enii
i care e3o$ueaz+ "n (iecare zi.
Caracteristica 0rinci0a$+ a a0$ica!ii$or de aze de date const+ "n (a0tu$ c+ accentu$ este 0us 0e
o0era!ii$e de #e#orare 4i re2+sire e(ectuate asu0ra unui 3o$u# #are de date 4i #ai 0u!in asu0ra
o0era!ii$or de 0re$ucrare a acestora. *rinci0a$a o0era!ie care a0are "n a0$ica!ii$e de aze de date
este re2+sirea date$or "n sco0u$ o!inerii de in(or#a!ii din aza de date. Acesta este sensu$
e5isten!ei oric+rei aze de date.
A$+turi de o0era!ia de re2+sire/ a0ar #ai #u$t sau #ai 0u!in (rec3enat/ o0era!ii de #e#orare
6 0entru introducerea de noi date "n aza de date/ 4ter2ere 6 0entru date$e de3enite inuti$e 4i de
actua$izare a unor date de7a e5istente "n aza de date.
Un siste# de 2estiune a aze$or de date ,S8BD- este un siste# de 0ro2ra#e care 0er#ite
uti$izatoru$ui de(inirea/ crearea 4i "ntre!inerea azei de date 0recu# 4i accesu$ contro$at $a
aceasta. Deci S8BD const+ "n e$e#ente de so(t9are care interac!ioneaz+ cu 0ro2ra#e$e a0$ica!ie
a$e uti$izatoru$ui 4i cu aza de date.
:1;
1.1 BAZE DE DATE DISTRIBUITE
Siste#e$e de aze de date au e3o$uat de $a stadiu$ "n care (iecare a0$ica!ie "4i "ntre!inea
0ro0ria az+ de date/ $a ce$ "n care date$e sunt de(inite 4i 2estionate centra$izat. Acu# "ns+/
te<no$o2ia aze$or de date distriuite 0oate sc<i#a #odu$ de $ucru centra$izat "ntr.unu$
descentra$izat. Te<no$o2ia S8BDD constituie una din rea$iz+ri$e #a7ore "n do#eniu$ siste#e$or
de aze de date.
O az+ de date distriuit+,distriuted dataase.DDB- este o co$ec!ie de #ai #u$te aze de
date intercore$ate $o2ic 4i distriuite "ntr.o re!ea.
Un siste# distriuit de 2estiune a aze$or de date,distriuted dataase #ana2e#ent s=ste#
.distriuted DBMS .DDBMS- este un siste# so(t9are care 0er#ite #ana2e#entu$ aze$or de
date distriuite 4i (ace distriu!ia trans0arent+ 0entru uti$izator.
Ter#enu$ de siste# de aze de date distriuite se re(er+ $a o co#ina!ie de aze de date
distriuite 4i $a siste#e distriuite de 2estiune
Siste#e$e de aze de date distriuite sunt si#i$are siste#e$or distriuite de (i4iere
,Distriuted >i$e S=ste#s . D>S-/ "n sensu$ c+ a#e$e (aci$iteaz+ accesu$ $a date stocate
distriuit/ dar sunt 4i di(eren!e?
Pagina 3
Stefanescu Cristina-Gabriela,
Master IISC, anul II
@n D>S uti$izatoru$ treuie s+ cunoasc+ $oca!ia date$orA
DDBMS asi2ur+ accesu$ trans0arent $a dateA uti$izatoru$ 0erce0e aza de date
distriuit+ ca 0e o az+ de date unic+/ c<iar dac+ aceasta este distriuit+ 0e #ai #u$te
site.uri 4i une$e date sunt (ra2#entate sau re0$icate.
Avantajele bazelor de date distribuite:
Siste#e$e de aze de date distriuite 0ot s+ o(ere ur#+toare$e caracteristici?
Inde0enden!a date$or (a!+ de su0ortu$ (izic de #e#orare? sc<e#a conce0tua$+
de(ine4te structura $o2ic+ a date$or/ inde0endent+ de 0$at(or#a de #e#orare 4i 0oate
(i trans0us+ "n di(erite sc<e#e (izice/ de0endente de or2anizarea su0ortu$ui de
#e#orareA
Trans0aren!+ a distriu!iei ,"n re!ea-? "nsea#n+ c+ uti$izatoru$ nu treuie s+ cunoasc+
deta$ii a$e distriu!iei date$or "n re!ea/ atBt ca $oca$izare cBt 4i ca nu#e a$e entit+!i$orA
Trans0aren!+ 0ri3ind re0$icarea 4i (ra2#entarea date$orA
Co$u# de stocare a date$or crescutA
Si2uran!+ de (unc!ionare ,re$iai$it=- 4i dis0onii$itate ,a3ai$ai$it=- crescut+
,re$iai$it= 6"nsea#n+ 0roai$itatea ca siste#u$ s+ (ie "n (unc!iune "ntr.un anu#it
#o#ent de ti#0A a3ai$ai$it= 6"nsea#n+ 0roai$itatea ca un siste# s+ (ie dis0onii$
continuu "ntr.un anu#it inter3a$ de ti#0-A
Deoarece date$e 4i siste#u$ de 2estiune sunt distriuite "n #ai #u$te site.uri/ atunci
cBnd unu$ din site.uri s.a de(ectat/ a$te site.uri 0ot s+ continue s+ (unc!ioneze 4i
uti$izatorii s+ acceseze ce$ 0u!in o 0arte din date.
Dezavantajele bazelor de date distribuite:
Co#0$e5itate #ai ridicat+ ,(a!+ de siste#e$e centra$izate- 0ri3ind 0roiectarea/
ad#inistrarea/ "ntre!inereaA
Di(icu$t+!i su0$i#entare ,(a!+ de siste#e$e centra$izate- datorit+ necesit+!ii de
0re$ucrare distriuit+ a intero2+ri$or 4i de contro$ a$ tranzac!ii$or distriuiteA
Securitatea necesit+ #ecanis#e s0ecia$e de 0rotec!ie ,autenti(icare/ cri0tarea date$or-
datorit+ co#unica!ii$or 0rin re!eaA
Di(icu$tatea de #en!inere a inte2rit+!ii date$or 6 care necesit+ o0era!ii "n re!ea/ care
0ot "nc+rca #u$t ca0acitatea re!e$eiA
Pagina 4
Stefanescu Cristina-Gabriela,
Master IISC, anul II
Li0sa de standarde 0entru structurarea date$or 4i co#unicarea "ntre site.uri 0entru
distriuirea date$orA
I#aturitatea te<no$o2ii$or 4i a too$set.uri$orA
Li0sa de e50erien!+ a 0ersona$u$ui/ datorit+ nout+!ii te<no$o2ii$or.
:2;
1.2 TRANZACDII @N SISTEME DE BAZELE DE DATE
O tranzacie este o unitate $o2ic+ de 0re$ucrare care asi2ur+ consisten!a 4i si2uran!a azei de
date. @n 0rinci0iu/ orice e5ecu!e a unui 0ro2ra# se 0oate considera o tranzac!ie dac+ aza de date
este "ntr.o stare consistent+ atBt "nainte cBt 4i du0+ e5ecu!ia sa. Consisten!a azei de date este
2arantat+ inde0endent de (a0tu$ c+ ?
Tranzac!ia a (ost e5ecut+t+ "n #od concurent cu a$te tranzac!ii A
Au a0+rut de(ecte "n ti#0u$ e5ecu!ei tranzac!iei.
@n 2enera$/ o tranzac!ie const+ dintr.o sec3en!+ de o0era!ii de citire 4i scriere a azei de date/
$a care se adau2+ o serie de o0era!ii de ca$cu$. Baza de date 0oate (i "ntr.o stare te#0orar
inconsistent+ "n ti#0u$ e5ecut+rii tranzac!iei dar treuie s+ (ie "n st+ri consistente atBt "nainte cBt
4i du0+ e5ecu!ia acesteia.
O tranzac!ie este o o0era!ie indi3izii$+ de acces $a aza de date care?
(ie se e5ecut+ cu succes toate ac!iuni$e 4i se ter#in+ cu o 3a$idare a #odi(ic+ri$or
e(ectuate asu0ra azei de date ,co##it-
(ie nu 0oate e(ectua ,din di(erite #oti3e- toate ac!iuni$e 4i este aandonat+ 4i anu$at+
,aort/ ro$$acE-
:1 ;/:2;
Pagina 5
Stefanescu Cristina-Gabriela,
Master IISC, anul II
2 CONTROU TRAN!AC IIOR "I CONTROU CONCUREN EI
O tranzac!ie nu se ter#in+ "ntotdeauna cu succes totu4i orice tranzac!ie treuie s+ se ter#ine/
indi(erent de situa!ia e5istent+ ,c<iar 4i "n cazu$ unor de(ecte-. Dac+ tranzac!ia reu4e4te s+
e5ecute cu succes toate o0era!ii$e 0re3+zute/ atunci aceasta se 3a ter#ina 0rintr.o o0era!ie de
3a$idare ,co##it-. @n sc<i#/ dac+ dintr.un #oti3 sau a$tu$ tranzac!ia nu reu4e4te s+.4i e5ecute
co#0$et o0era!ii$e 0re3+zute/ atunci se 3a ter#ina 0rintr.o o0era!ie de aortare ,abort sau
rollbac$-. Moti3e$e 0entru care o tranzac!ie se aorteaz+ sunt nu#eroase/ e$e 0ot (i interne
tranzac!iei sau e5terne acesteia ,e5. ? detectarea de c+tre S8BD a unei situa!ii de dead$ocE-. @n
cazu$ aort+rii/ e5ecu!a tranzac!iei este o0rit+ iar e(ecte$e tuturor o0era!ii$or 0e care $e.a e5ecut+t
0Bn+ "n ace$ #o#ent sunt anu$ate ast(e$ "ncBt aza de date re3ine $a starea de dinaintea $ans+rii
tranzac!iei.
Co#anda de 3a$idare a unei tranzac!ii res0ect+ dou+ re2u$i?
indic+ S8BD.u$ui #o#entu$ de $a care e(ecte$e tranzac!iei 0ot (i re($ectate "n aza de date
4i de3in 3izii$e a$tor tranzac!ii A
#arc<eaz+ #o#entu$ "nce0Bnd de $a care e(ecte$e tranzac!iei nu #ai 0ot (i anu$ate
,tranzac!ia nu se #ai 0oate aorta- 4i #odi(ic+ri$e e(ectuate "n aza de de de3in
0er#anente.
O0era!ia de 3a$idare este 3ita$+ "n cazu$ siste#e$or concurente,distrriuite-/ deci aco$o unde
este 0osii$+ e5ecutarea "n ace$a4i ti#0 a #ai #u$tor tranzac!ii care acceseaz+ aceea4i az+ de
date. *rin 3a$idare se 0ot 0re3eni o serie de (eno#ene nedorite cu# este aortarea "n cascad+ a
tranzac!ii$or.
S+ 0resu0une# c+ o tranzac!ie T este aortat+ du0+ ce a e(ectuat una sau #ai #u$te o0era!ii
de actua$izare a azei de date. @n acest caz date$e a$terate de c+tre tranzac!ia T 3or (i readuse $a
3a$ori$e 0e care $e.au a3ut "nainte de a (i #odi(icate de aceasta. Este "ns+ 0osii$ ca une$e dintre
tranzac!ii$e e5ecutate "n #od concurent cu tranzac!ia T s+ (i accesat aceste date "nainte de
aortarea $ui T. Aceste tranzac!ii 3or treui s+ (ie/ $a rBndu$ $or/ aortate deoarece au a3ut acces $a
date inconsistente din aza de date iar rezu$tate$e 0roduse de e$e 0ot (i co#0ro#ise. Acest e(ect
se 0oate 0ro0a2a "n continuare 4i asu0ra a$tor tranzac!ii/ 0e un nu#+r nede(init de ni3e$e/
conducBnd $a aortarea "n cascad+ a tranzac!ii$or. >eno#enu$ este cunoscut "n $iteratura de
s0ecia$itate su nu#e$e de e(ect do#ino.
Dac+ se (o$ose4te un #ecanis# de 3a$idare care res0ect+ ce$e dou+ re2u$i de #ai sus/ atunci
a0ari!ia (eno#enu$ui de aortare "n cascad+ de3ine i#0osii$+. @ntr.ade3+r/ con(or# 0ri#ei
re2u$i/ nici o tranzac!ie nu 3a 0utea accesa date$e #odi(icate de tranzac!ia T decBt du0+ 3a$idarea
Pagina 6
Stefanescu Cristina-Gabriela,
Master IISC, anul II
acesteia. *e de a$t+ 0arte/ con(or# re2u$ii a doua/ du0+ 3a$idarea sa/ tranzac!ia T nu #ai 0oate (i
aortat+/ deci nu 0oate dec$an4a un $an! de aort+ri "n cascad+.
Ca$idarea unei tranzac!ii #arc<eaz+/ din 0unct de 3edere $o2ic/ ter#inarea acesteia.
Ca$idarea nu se 0oate (ace "nainte ca o0era!ii$e s0eci(icate 0rin codu$ tranzac!iei s+ (ie e5ecut+te
inte2ra$ 4i "nainte ca tranzac!ia s+ a7un2+ "ntr.o stare "nce0Bnd de $a care e5ist+ certitudinea c+ nu
#ai 0oate (i aortat+.
*Bn+ "n #o#entu$ 3a$id+rii/ actua$iz+ri$e e(ectuate de tranzac!ie sunt in3izii$e a$tor
tranzac!ii/ au caracter tentati3 4i 0ot (i oricBnd re3ocate ,odat+ cu aortarea tranzac!iei-. Du0+
3a$idare actua$iz+ri$e se "nscriu cu caracter 0er#anent "n aza de date 4i de3in ire3ocai$e. Du0+
3a$idare nu #ai este 0osii$+ aortatrea tranzac!ii$or.
Tranzac!ii$e ar treui s+ con!in+ doar ace$e co#enzi de #ani0u$are care rea$izeaz+ o sin2ur+
#odi(icare asu0ra date$or. De e5e#0$u un trans(er de (onduri ,s+ s0une# 1FFFG- "ntre dou+
conturi ar treui s+ i#0$ice un deit a$ unui cont de 1FFFG 4i un credit a$ a$tui cont de 1FFFG.
A#e$e ac!iuni ar treui s+ se "nc<eie cu succes sau s+ dea eroare "#0reun+. Creditu$ nu ar treui
e5ecut+t (+r+ deit.
2.1 INSTRUC IUNI S'L >OLOSITE IN CONTROLUL TRANZAC IILOR
E5ist+ dou+ c$ase de tranzac!ii? tranzacii D% 6 care con!in un nu#+r oarecare de $ocuri
DML 4i 0e care ORACLE $e trateaz+ ca o sin2ur+ entitate sau o sin2ur+ unitate $o2ic+ de $ucru/ 4i
tranzacii DD care con!in un sin2ur $oc DDL.
O tranzac!ie nou+ este $ansat+ (ie i#ediat du0+ conectarea $a ser3eru$ de aze de date ,de
e5e#0$u/ 0rintr.o sesiune S'LH*$us- (ie du0+ o co#and+ care a "nc<eiat tranzac!ia 0recedent+
,e5ecu!a unui COMMIT sau ROLLBACI-/ cBnd este "ntB$nit 0ri#u$ $oc e5ecut+i$ DML sau
DDL. O tranzac!ie se ter#in+ "n una din ur#+toare$e situa!ii ?
H @ntB$nirea co#enzior COMMITJROLLBACI
H S(Br4itu$ co#enzii DDL
H A0ari!ia anu#itor erori ,DEADLOCI-
H @ntB$nirea co#enzii EKIT 6 iesire din S'LH*$us
H A0ari!ia unei erori de siste#
Un $oc DDL este e5ecut+t auto#at 4i de aceea i#0$icit "nc<eie o tranzac!ie. Du0+
"nc<eierea unei tranzac!ii/ ur#+toru$ $oc e5ecut+i$ S'L 3a $ansa auto#at ur#+toarea
tranzac!ie.
Pagina 7
Stefanescu Cristina-Gabriela,
Master IISC, anul II
CBnd o tranzac!ie este "ntreru0t+ de o eroare serioas+/ de e5e#0$u o eroare de siste#/
"ntrea2a tranzac!ie este anu$at+. Aceasta 0re3ine erori$e datorate #odi(ic+ri$or nedorite asu0ra
date$or/ 4i rea$izeaz+ "ntoarcerea tae$e$or $a st+ri$e de du0+ u$ti#u$ COMMIT. @n acest (e$ S'L
0rote7eaz+ inte2ritatea tae$e$or. Anu$area auto#ata este cauzat+ ce$ #ai des de c+tre o eroare de
siste#/ ca de e5e#0$u o resetare a siste#u$ui sau o c+dere de tensiune. Erori$e de tastare a
co#enzi$or/ ca de e5e#0$u tastarea 2resit+ a unor nu#e de co$oane sau "ncerc+ri$e de a rea$iza
o0era!ii neautorizate asu0ra tae$e$or a$tor uti$izatori/ nu "ntreru0 tranzac!ia 4i nu rea$izeaz+
anu$area auto#at+. Aceasta se datoreaz+ (a0tu$ui c+ aceste erori sunt detectate "n cursu$
co#0i$+rii ,de c+tre *ARSER/ cBnd un $oc S'L este scanat 4i 3eri(icat-/ 4i nu "n ti#0u$ e5ecu!ei.
Ur#+toare$e instruc!iuni S'L sunt uti$izate cBnd a0ar (ina$iz+ri ,co##it- sau re(aceri
,ro$$acE- ?COMMIT:LORI;A SACE*OINT nu#eMsa3e0ointA ROLLBACI:LORI; to
:SACE*OINT; nu#eMsa3e0oint. De notat ca atBt COMMIT cBt 4i ROLLBACI sunt instruc!iuni
S'L. Ce$e trei instruc!iuni S'L uti$izate 0entru contro$u$ tranzac!ii$or sunt e50$icate #ai 7os?
CO%%IT&'OR()
Sinta5a ? COMMIT:LORI;A
*er#anentizeaz+ sc<i#+ri$e din tranzac!ia curent+
&ter2e toate 0uncte$e de sa$3are ,sa3e0oint- din tranzac!ie
Ter#in+ tranzac!ia
E$iereaz+ toate $oc+ri$e ,LocE- tranzac!iei
Cu3antu$ c<eie LORI este o0!iona$
Uti$izatoru$ treuie s+ e50$iciteze s(Br4itu$ tranzac!iei "n 0ro2ra#u$ a0$ica!ie uti$izBnd
COMMIT ,sau ROLLBACI-. Dac+ nu se (ina$izeaz+ e50$icit tranzac!ia 4i 0ro2ra#u$ se ter#in+
anor#a$/ u$ti#a tranzac!ie e5ecut+t+ 3a (i anu$at+. >ina$iz+ri i#0$icite ,co##it- a0ar "n
ur#+toare$e situa!ii ? "nainte de o co#and+ DDL/ du0+ o co#and+ DDL/ $a "nc<iderea nor#a$+ a
unei aze de date.
Dac+ introduce!i un $oc DDL du0+ cBte3a $ocuri DML/ $ocu$ DDL cauzeaz+ a0ari!ia unui
co##it "naintea 0ro0riei e5ecu!i/ inc<eind tranzac!ia curenta. A0oi/ dac+ $ocu$ DDL este
e5ecut+t 0Bn+ $a ca0+t/ este 4i "nre2istrat ,co##it-.
SA*EPOINT
Sinta5a ? SACE*OINT nu#eMsa3e0oint
E5e#0$u ? SACE*OINT ter#inareMactua$izari
*oate (i uti$izat 0entru a "#0+r!i o tranzac!ie "n uc+!i #ai #ici
Pagina 8
Stefanescu Cristina-Gabriela,
Master IISC, anul II
*uncte$e de sa$3are ,sa3e0oints- 0er#it uti$izatoru$ui s+ re!in+ toat+ #unca sa $a orice
#o#ent din ti#0/ cu o0!iunea de a "nre2istra #ai tBrziu totu$/ a anu$a totu$ sau o
0arte din ea.
Ast(e$/ 0entru o tranzac!ie $un2+/ se 0ot sa$3a 0+r!i din ea/ 0e #+sura e5ecu!ei/ $a s(Br4it
"nre2istrBndu.se sau re(+cBndu.se con!inutu$ ini!ia$. La a0ari!ia unei erori nu treuie e5ecut+t din
nou (iecare $oc.
La crearea unui nou 0unct de sa$3are cu ace$a4i nu#e ca a$ unuia dinainte/ 0ri#u$
0unct este 4ters.
Nu#+ru$ #a5i# de 0uncte de sa$3are 0entru un 0roces uti$izator este i#0$icit 1.
Aceast+ $i#it+ 0oate (i sc<i#at+.
RO+AC(&'OR() to &SA*EPOINT) nu#e,-unct,salvare
Instructiunea ROLLBACI este uti$izata 0entru a re(ace starea azei de date.Cu3antu$ c<eie
N9orEN este o0!iona$. @ntoarcerea $a un 0unct de sa$3are este de ase#enea o0!iona$a. Dac+ se
uti$izeaz+ ROLLBACI (+r+ c$auza TO SACE*OINT/ atunci ?
se ter#in+ tranzac!ia
se anu$eaz+ #odi(ic+ri$e din tranzac!ia curent+
se 4ter2 toate 0uncte$e de sa$3are din tranzac!ie
se e$iereaz+ $oc+ri$e tranzac!iei
:);/ :1;
2.2 TRANZACDII @N SISTEME DE BAZELE DE DATE DISTRIBUITE
@n cadru$ unei aze de date distriuite "n noduri$e unei re!e$e/ accesu$ $a #u$titudinea de
oiecte de date se rea$izeaz+ de oicei 0rin inter#ediu$ tranzac!ii$or. Se "n!e$e2e c+ tranzac!ii$e
treuie s+ res0ecte re2u$i$e ACID.
Deoarece tranzac!ii$e care sunt e5ecutate "ntr.un siste# distriuit 0ot 0re$ucra (ie date
rezidente "ntr.un sin2ur $oc/ (ie date a#0$asate "n siste#e distincte/ 3o# distin2e tranzacii
locale .i tranzacii /lobale. *ri#e$e au acces $a in(or#a!ii$e con!inute "n o sin2ur+ az+ de date
$oca$+ 4i 0ot 0re$ucra aceste in(or#a!ii. Tranzac!ii$e 2$oa$e rea$izeaz+ accesu$ $a in(or#a!ii
a#0$asate "n #ai #u$te aze de date $oca$e 4i/ desi2ur/ 0ot 0re$ucra aceste in(or#a!ii.
Res0ectarea 0ro0riet+!i$or ACID "n 0rocesu$ e5ecu!iei tranzac!ii$or $oca$e rec$a#+/ 0ractic/
0artici0area tuturor co#0onente$or siste#u$ui de 2estiune a azei de date i#0$icate "n 2estiunea
tranzac!ii$or. Asi2urarea consisten!ei unei tranzac!ii oarecare treuie dat+ de 0ro2ra#atoru$ de
a0$ica!ie/ care codi(ic+ tranzac!ia. *entru res0ectarea ato#icit+!ii tranzac!iei/ c<iar dac+ a0ar
de(ec!iuni/ se 0oate (o$osi te<nica de #odi(icare Oa#Bnat+P/ sau te<nica #odi(ic+rii i#ediate a
azei de date. @n 0ri#u$ caz/ #odi(ic+ri$e aduse azei de date sunt "nre2istrate "ntr.un O7urna$P/
Pagina 9
Stefanescu Cristina-Gabriela,
Master IISC, anul II
"ns+ e5ecu!ia tuturor o0era!iuni$or de "nre2istrare din tranzac!ie este a#Bnat+ 0Bn+ $a co#iterea
0ar!ia$+ a tranzac!iei ,rea#inti# c+ 0rin co#itere 0ar!ia$+ "n!e$e2e# situa!ia "n care ac!iunea
(ina$+ a tranzac!iei a (ost e5ecutat+-. Modi(icarea i#ediat+ a azei de date const+ "n e(ectuarea
sc<i#+ri$or azei de date atunci cBnd tranzac!ia este "nc+ "n stare acti3+A sc<i#+ri$e aduse de
tranzac!ii ce se 2+sesc "n stare acti3+ se nu#esc #odi(ic+ri ne.co#ise. Res0onsai$itatea
o0era!iuni$or de #ai sus re3ine contro$oru$ui ,sau O#ana2erP.u$ui- de tranzac!ii. @n (a0t/ acest
contro$or/ 0rin oser3area #e#oriei secundare ,disc-/ ur#+re4te 3a$ori$e 3ec<i a$e tuturor
oiecte$or de date asu0ra c+rora tranzac!ia a e(ectuat "nre2istr+ri/ iar dac+ tranzac!ia nu a
co#0$etat e5ecu!ia sa/ restaureaz+ 3ec<i$e 3a$ori ast(e$ "ncBt a0arent tranzac!ia nu ar (i (ost
niciodat+ e5ecutat+. Durai$itatea este "n sarcina contro$oru$ui de re3enire ,sau de recu0arare-.
*rin 2r7a acestui su.siste#/ #odi(ic+ri$e aduse azei de date de c+tre o tranzac!ie sunt
"nre2istrate 0e disc "naintea co#0$et+rii tranzac!iei. De ase#enea/ este asi2urat+ dis0onii$itatea
unei in(or#a!ii su(iciente 0ri3ind #odi(ic+ri$e e(ectuate 4i "nre2istrate 0e disc/ ast(e$ "ncBt
actua$iz+ri$e (+cute s+ 0oat+ (i reconstruite atunci cBnd siste#u$ de aze de date este re0ornit
du0+ o de(ec!iune. @n s(Br4it/ contro$oru$ concuren!ei este su.siste#u$ care/ 0rintre a$te$e/ asi2ur+
res0ectarea 0ro0riet+!ii de izo$are. *rintre ti0uri$e de 0$ani(icare ce contriue $a si2urarea acestei
0ro0riet+!i #en!ion+# seria$izai$itatea de con($ict 4i seria$izai$itate de 3edere.
@n cazu$ tranzac!ii$or 2$oa$e/ #en!inerea 0ro0riet+!i$or ACID este sensii$ #ai co#0$icat+/
a3Bnd "n 3edere (a0tu$ c+ $a e5ecu!ia unei 0$ani(ic+ri de tranzac!ii iau 0arte #ai #u$te noduri a$e
unei re!e$e. De(ec!iuni$e a0+rute "n unu$ sau #ai #u$te din noduri/ ca 4i de(ec!iuni$e cana$e$or de
co#unica!ie/ 3or conduce a0roa0e si2ur $a 0re$ucr+ri incorecte a$e in(or#a!ii$or.
Din ar<itecura unei aze de date distriuite (ac 0arte dou+ co#0onente 0rinci0a$e?
controlorul de tranzacii .i coordonatorul tranzaciilor. Aceste su.siste#e sunt a#0$asate "n
noduri$e re!e$ei de ca$cu$atoare.
0uncia controlorului de tranzacii const+ "n res0ectarea 0ro0riet+!i$or ACID a$e
tranzac!ii$or care 0re$ucreaz+ in(or#a!ii #e#orate "n nodu$ cu care contro$oru$ este asociat.
Deoarece a3e# "n 3edere o az+ de date distriuit+/ se "n!e$e2e c+ "n re!ea 3or (i e5ecutate 4i
tranzac!ii 2$oa$e/ care e(ectueaz+ o0era!iuni asu0ra date$or de0use "n #ai #u$te noduri. @n acest
0roces 3or co$aora contro$oare de tranzac!ii a#0$asate "n noduri$e cores0unz+toare. @ntr.un nod
dat a$ re!e$ei/ "n care se des(+4oar+ 0re$ucrarea concurent+ a unui nu#+r de tranzac!ii/ contro$oru$
de tranzac!ii ocu0+ un $oc s0eci(ic "n acti3itatea a$2orit#u$ui de contro$ a$ concuren!ei. De
ase#enea/ acest su.siste# are res0onsai$itatea con!inutu$ui 7urna$u$ui #en!inut "n 3ederea
re3enirii du0+ de(ec!iuni.
La rBndu$ s+u/ coordonatorul de tranzacii asociat unui nod/ diri7eaz+ e5ecu!ia tranzac!ii$or
$oca$e 4i 2$oa$e ce sunt ini!iate 4i (unc!ioneaz+ "n nodu$ res0ecti3. >unc!ia de coordonare
#en!ionat+ este s0eci(ic+ nu#ai #ediu$ui distriuit. @n sarcina coordonatoru$ui intr+ ini!ierea
e5ecu!iei (iec+rei tranzac!ii/ se2#entarea tranzac!ii$or "n sco0u$ distriuirii su.tranzac!ii$or
o!inute "n noduri adec3ate/ 0recu# 4i coordonarea "nc<eierii acti3it+!ii (iec+rei tranzac!ii. Se
su$iniaz+ (a0tu$ c+ tranzac!ii$e 2$oa$e (ie co#it "n toate noduri$e "n care sunt e5ecutate su.
tranzac!ii$e din care sunt (or#ate/ (ie sunt aandonate "n toate noduri$e.
Pagina 10
Stefanescu Cristina-Gabriela,
Master IISC, anul II
@n $e2+tur+ cu de(ecte$e ce a0ar uneori "n siste#e$e centra$izate/ inc$usi3 "n ce$e care
0re$ucreaz+ aze de date/ treuie #en!ionate erori$e de ec<i0a#ent ,O<ard9areP-/ erori$e
0ro2ra#e$or/ deterioararea siste#e$or de discuri #a2netice. Te#a de(ec!iuni$or 0osii$e "ntr.un
siste# distriuit care 2+zdue4te o az+ de date are 0articu$arit+!i e3idente. Deterioarea
co#0onente$or unui nod/ de(ec!iuni a$e $inii$or de co#unica!ie/ 0erturarea #anierei ini!ia$e de
0arti!ionare a re!e$ei/ coru0erea #esa7e$or 0rin erori sunt ti0uri$e 0rinci0a$e de de(ecte ce au $oc
"n #ediu distriuit. Atunci cBnd se de(ecteaz+ #ediu$ de co#unica!ie/ #esa7e$e trans#ise "ntre
noduri sunt de oicei re.rutate. @n i0oteza dis0ari!iei cone5iunii "ntre dou+ noduri/ re!eaua 3a (i
0arti!ionat+ din nou. Erori$e care a0ar "n #esa7e sunt tratate de 0rotocoa$e$e de contro$ a$
0rocesu$ui de co#unica!ie/ de e5e#0$u TC*JI*.
*rocesarea tranzac!ii$or are ca sco0 0+strarea inte2rit+!ii azei de date. Treuie "ns+ 0recizat
c+ #ecanis#e$e tranzac!iona$e nu sunt sin2ure$e care se ocu0+ de 0+strarea inte2rit+!ii. Mai
0recis/ 0rocesarea tranzac!ii$or se re(er+ doar $a dou+ as0ecte?
Recu0erarea azei de date du0+ un incident ,dataase reco3er=- . se azeaz+ 0e
inducerea unui anu#it ni3e$ de redundan!+ 0rin #e#orarea istoriei tranzac!ii$or "ntr.
un a4a.nu#it N7urna$N ,$o2-. Desi acest as0ect nu (ace suiectu$ $ucr+rii de (a!+/
anu#ite e$e#ente te<nice 0ri3ind 7urna$izarea 3or (i uti$izate "n con!inuare.
Contro$u$ inter(eren!e$or care 0ot a3ea $oc "ntre tranzac!ii$e care se e5ecut+ "n #od
concurent ,concurrenc= contro$- . este un as0ect critic "n siste#e$e de a0$ica!ii OLT*
,On.Line Transaction *rocessin2-. Este 3ora des0re Ncontro$u$N ,4i nu nea0+rat
Ne3itareaN- inter(eren!e$or deoarece/ de4i "ntotdeauna nedorite/ aceste inter(eren!e 0ot
(i 0er#ise . "n anu#ite (or#e ine 0recizate . 0entru a cre4te 0er(or#an!e$e
siste#u$ui.
*entru a ec<i$ira cBt #ai ine 0er(or#an!a 4i si2uran!a/ constructorii de siste#e de 2estiune
a aze$or de date au dez3o$tat #ai #u$te 0rocedee 0rin care inter(eren!e$e "ntre tranzac!ii$e
concurente s+ 0oat+ (i contro$ate. Ce$ #ai r+s0Bndit este #ecanis#u$ azat 0e $ocarea ,$ocEin2-
unor 0or!iuni a$e azei de date 0entru a interzice a$tor tranzac!ii accesu$ $a date$e res0ecti3e 0e
durat+ unor o0era!iuni critice e(ectuate de o tranzac!ie. O a$t+ #etod+ este cea azat+ 0e a0$icarea
unor N#+rci de ti#0N ,ti#esta#0in2- asu0ra tranzac!ii$or 4i a oiecte$or i#0$icate "n tranzac!ii.
A#e$e 0rocedee ,0recu# 4i 0rocedee$e N<irideN- 0ornesc de $a 0re#isa 0esi#ist+ c+
inter(eren!e$e nedorite sunt oricBnd 0osii$e 4i c<iar 0roai$e/ deci se azeaz+ 0e 0re3enirea $or.
E5ist+ "ns+ 4i o aordare o0ti#ist+/ care 0$eac+ de N0rezu#!ia de ne3ino3+!ieN 4i care "ncearc+
doar s+ de0isteze 4i s+ rezo$3e con($icte$e "n cazu$ "n care acestea a0ar. Toate #etode$e au
a3anta7e 4i deza3anta7e/ (iecare d"ntre e$e se 0reteaz+ $a anu#ite a0$ica!ii 4i sunt inacce0tai$e "n
cazu$ a$tora.
*entru a ec<i$ira cBt #ai ine 0er(or#an!a 4i si2uran!a/ constructorii de siste#e de 2estiune
a aze$or de date au dez3o$tat #ai #u$te 0rocedee 0rin care inter(eren!e$e "ntre tranzac!ii$e
concurente s+ 0oat+ (i contro$ate. Ce$ #ai r+s0Bndit este #ecanis#u$ azat 0e $ocarea ,$ocEin2-
unor 0or!iuni a$e azei de date 0entru a interzice a$tor tranzac!ii accesu$ $a date$e res0ecti3e 0e
durat+ unor o0era!iuni critice e(ectuate de o tranzac!ie. O a$t+ #etod+ este cea azat+ 0e a0$icarea
unor N#+rci de ti#0N ,ti#esta#0in2- asu0ra tranzac!ii$or 4i a oiecte$or i#0$icate "n tranzac!ii.
Pagina 11
Stefanescu Cristina-Gabriela,
Master IISC, anul II
A#e$e 0rocedee ,0recu# 4i 0rocedee$e N<irideN- 0ornesc de $a 0re#isa 0esi#ist+ c+
inter(eren!e$e nedorite sunt oricBnd 0osii$e 4i c<iar 0roai$e/ deci se azeaz+ 0e 0re3enirea $or.
E5ist+ "ns+ 4i o aordare o0ti#ist+/ care 0$eac+ de N0rezu#!ia de ne3ino3+!ieN 4i care "ncearc+
doar s+ de0isteze 4i s+ rezo$3e con($icte$e "n cazu$ "n care acestea a0ar. Toate #etode$e au
a3anta7e 4i deza3anta7e/ (iecare d"ntre e$e se 0reteaz+ $a anu#ite a0$ica!ii 4i sunt inacce0tai$e "n
cazu$ a$tora.
:Q;
+locare
Idea 0e care se azeaz+ te<nica $oc+rii este (oarte si#0$+? o tranzac!ie care a "nce0ut s+
o0ereze asu0ra unor date treuie s+ interzic+ accesu$ a$tor tranzac!ii $a date$e res0ecti3e 0Bn+ "n
#o#entu$ "n care o0era!ia se "nc<eie. @n acest ti#0/ date$e sunt N!inute su c<eieN ,to $ocE . a
"ncuia/ a z+3or"-. Contro$u$ $oc+rii date$or este asi2ur+t de o co#0onent+ a S8BD.u$ui nu#it+
LocE Mana2er ,LM-. @n #o#entu$ "n care o tranzac!ie T dore4te s+ acceseze un anu#it oiect a$
azei de date 3a cere co#0onentei LM $ocarea oiectu$ui. Dac+ oiectu$ este $ocat de o a$t+
tranzac!ie/ tranzac!ia T 3a (i 0us+ "n stare de a4te0tare ,9ait- 0Bn+ cBnd oiectu$ este e$ierat.
Se 0oate oser3a cu u4urin!+ c+ aceast+ #oda$itate de $ocare este 0rea restricti3+.
Ano#a$ii$e a0ar doar "n cazu$ actua$iz+ri$or date$or/ ceea ce su2ereaz+ c+ o ra(inare a te<nicii
i#0$ic+ (o$osirea a dou+ ti0uri de $oc+ri?
+locare -artajat1 2s3are loc$ sau S loc$4 . *er#ite citirea oiectu$ui dar interzice
#odi(icarea acestuia/ #oti3 0entru care #ai este nu#it+ N$ocare 0entru citireN ,read $ocE-. Mai
#u$te tranzac!ii 0ot $oca si#u$tan 0entru citire un anu#it oiect.
+locare e5clusiv1 2e5clusive loc$ sau 6 loc$4 . Interzice accesu$ a$tor tranzac!ii $a oiectu$
$ocat/ (ie 0entru citire/ (ie 0entru #odi(icare. B$ocarea e5c$usi3+ este #ai NtareN decBt $ocarea
0arta7at+/ (iind (o$osit+ doar 0entru actua$iz+ri/ #oti3 0entru care #ai este nu#it+ N$ocare 0entru
scriereN ,9rite $ocE-.
O situa!ie s0ecia$+ este cea "n care o tranzac!ie $oc<eaz+ 0entru citire un oiect 4i dore4te s+
o!in+ o $ocare e5c$usi3+. Dac+ oiectu$ res0ecti3 nu este $ocat 0arta7at 4i de c+tre a$te
tranzac!ii/ $ocarea e5c$usi3+ este o!inut+ de tranzac!ia "n cauz+. *rocedeu$ de nu#e4te
N0ro#o3area $oc+riiN ,$ocE 0ro#otion-.
@n cazu$ ce$or #ai #u$te S8BD.uri/ $ocarea este i#0$icit+? orice o0era!ie asu0ra date$or
este auto#at 0recedat+ de cererea 0entru o!inerea $oc+rii date$or res0ecti3e ,S $ocE 0entru
citire/ K $ocE 0entru actua$izare . "nte$e2Bnd 0rin Nactua$izareN o0era!ii$e U*DATE/ INSERT 4i
DELETE-. @nc<eierea tranzac!iei ,cu sau (+r+ succes- e$iereaz+ "n #od auto#at $oc+ri$e 0e care
aceasta $e de!inea. Anu#ite siste#e ,de 0i$d+ Adaas D- 0er#it N"n$+n!uirea tranzac!ii$orN
,transaction c<ainin2- cu 0+strarea anu#itor $oc+ri ,0rin c$auza IEE* LOCI a instruc!iunii
COMMIT-.
Pagina 12
Stefanescu Cristina-Gabriela,
Master IISC, anul II
Standardu$ S'L nu (ace nici o 0rezu#!ie $e2at+ de #odu$ de i#0$e#entare a #ecanis#e$or
de contro$ a$ accesu$ui concurent ,0rin $ocare/ 0rin #+rci de ti#0 sau a$te #etode- 4i/ "n
consecin!+/ nu 0re3ede instruc!iuni e50$icite de $ocare. Cu toate acestea/ #a7oritatea S8BD.
uri$or re$a!iona$e o(er+ "n 0ro0rii$e dia$ecte S'L instruc!iuni de $ocare e50$icit+ ,LOCI-.
Anu#ite siste#e non.re$a!iona$e ,Rai#a/ de e5e#0$u- (o$osesc doar $oc+ri e50$icite. De oicei/
aceste siste#e 0re3+d 4i instruc!iuni de de$ocare e50$icit+ ,UNLOCI-.
De4i sunt ce$e #ai uzua$e/ $oc+ri$e 0arta7ate 4i e5c$usi3e nu sunt sin2ure$e 0osii$e. Une$e
S8BD.uri ,IBM DB2/ S=ase S'L Ser3er/ Rai#a dMCISTA- (o$osesc o a4a.nu#it+ N$ocare
0entru actua$izareN ,u0date $ocE-/ care este un ni3e$ inter#ediar "ntre $ocarea 0arta7at+ 4i cea
e5c$usi3+. Dac+ #ai #u$te tranzac!ii $oc<eaz+ 0arta7at ,0entru citire- un anu#it oiect/ una
d"ntre e$e ,doar una- 0oate o!ine o $ocare 0entru actua$izare ,re#arca!i c+ o $ocare e5c$usi3+
nu 0oate (i o!inut+ "n aceste condi!ii-. De oicei uti$izarea $oc+rii 0entru actua$izare este
0osii$+ doar "n situa!ia unui #ecanis# de contro$ s0ecia$ ,azat "n 2enera$ 0e 3ersiuni #u$ti0$e
a$e date$or- care s+ a3ertizeze o a$t+ tranzac!ie care so$icit+ o $ocare 0entru actua$izare c+ date$e
au (ost #odi(icate.
Deadloc$
*ro$e#a Nactua$iz+rii 0ierduteN/ (o$osind $oc+ri$e 0arta7ate 4i e5c$usi3e ar 0utea (i e50$icat+
"n (e$u$ ur#ator? $a #o#entu$ t1 tranzac!ia R1 so$icit+ o $ocare 0arta7at+ a $iniei Z 4i
,0resu0unBnd c+ $inia nu era $ocat+ 0entru scriere de o a$t+ tranzac!ie- o o!ine. La #o#entu$ t2/
tranzac!ia R2 so$icit+ 4i ea o $ocare 0arta7at+ a $iniei Z 4i o o!ine $a rBndu$ ei. A#e$e tranzac!ii
$oc<eaz+ "n acest #o#ent 0entru citire $inia Z. La #o#entu$ t%/ tranzac!ia R1 so$icit+ $ocarea
e5c$usi3+ a $iniei Z/ 0entru a (ace o actua$izare. Nu o!ine $ocarea/ deoarece $inia este $ocat+
0entru citire de tranzac!ia R2/ deci este 0us+ "n stare de a4te0tare. Tranzac!ia R2 cere 4i ea
$ocarea e5c$usi3+ 4i/ e3ident/ nu o o!ine din #oti3e si#i$are. Niciuna d"ntre tranzac!ii nu 0oate
con!inua/ deoarece (iecare a4tea0t+ ca cea$a$t+ s+ e$iereze $inia Z.
Aceast+ situatie se nu#este dead$ocE sau Ninter$ocareN. Este u4or de 3eri(icat c+ 4i "n
situa!ia Nana$izei inconsistenteN se 3a a7un2e $a o inter$ocare. Rezu$tatu$ este c+ se rezo$3+
0ro$e#a ano#a$ii$or ,"ntr.ade3+r/ acestea nu #ai a0ar- dar se o!ine o a$t+ 0ro$e#+/ cea a
dead$ocE.uri$or. Rezo$3area noii 0ro$e#e cu0rinde dou+ as0ecte?
Prevenirea deadloc$7ului. I#0$ic+ stai$irea unui 0rotoco$ de acces $a date care s+
(ac+ i#0osii$+ a0ari!ia situa!ii$or de dead$ocE. O 3ariant+ 0osii$+ este ca (iecare
tranzac!ie s+ $oc<eze N"n $ocN toate $inii$e de care are ne3oie. A$ta 3ariant+ este
stai$irea unei ordini a oiecte$or iar cereri$e de $ocare s+ (ie rezo$3ate "n
con(or#itate cu aceast+ ordine. A#e$e #etode au deza3anta7u$ c+ $i#iteaz+
se#ni(icati3 0er(or#an!e$e 0rin $ocarea resurse$or 0e durate #ai $un2i decBt ce$e
strict necesare. *e de a$t+ 0arte/ 0ri#a #etod+ nu este a0$icai$+ "ntotdeauna/
deoarece este 0osii$ ca o tranzac!ie s+ nu cunoasc+ de $a "nce0ut toate date$e de care
are ne3oie.
Pagina 13
Stefanescu Cristina-Gabriela,
Master IISC, anul II
Detectarea deadloc$7ului. Cea #ai si#0$+ #etod+ de detectare a unei situa!ii de
dead$ocE este cea azat+ 0e un #ecanis# de ti#e.out? dac+ durata e5ecu!ei unei
tranzac!ii de0+4e4te o 3a$oare 0restai$it+/ siste#u$ deduce c+ a a0+rut un dead$ocE.
O a$t+ #etod+ se azeaz+ 0e construirea 4i #en!inerea dina#ic+ a unui N2ra( de
a4te0tareN ,Lait.>or 8ra0<-. Noduri$e acestui 2ra( re0rezint+ tranzac!ii$e care se
e5ecut+ ,T1/ T2/ .../ Tn- iar arce$e re0rezint+ re$a!ia de de0enden!+ ,a4te0tare-?
e5isten!a unui arc de $a Ti $a T7 se#ni(ic+ (a0tu$ c+ tranzac!ia Ti a4tea0t+ ca tranzac!ia
T7 s+ e$iereze anu#ite resurse. Detectarea unui dead$ocE re3ine $a detectarea
e5isten!ei unui cic$u "n 2ra(u$ de a4te0tare.
@n 0ractic+/ ce$ #ai adesea se uti$izeaz+ o #i5tur+ de te<nici? se i#0une un 0rotoco$ de acces
care s+ reduc+ 0osii$itatea dead$ocE.u$ui,(+r+ s+ o 0re3in+ tota$/ dar 4i (+r+ s+ in<ieze
se#ni(icati3 concuren!+-/ se i#0$e#enteaz+ un #ecanis# care s+ detecteze dead$ocEuri$e ce$e
#ai uzua$e/ $+sBndu.$e 0e ce$e$a$te 0e sea#a unui #ecanis# de ti#e.out.
Rezo$3area e(ecti3+ a unui dead$ocE re3ine $a stai$irea unei N3icti#eN dintre tranzac!ii$e
i#0$icate "n dead$ocE 4i anu$area ei ,ROLLBACI-. Du0+ ce dead$ocE.u$ a (ost "n$+turat/
tranzac!ia 0oate (i $ansat+ din nou "n e5ecu!ie.
Oser3a!ii?
a. Desi2ur/ "ntr.un dead$ocE 0ot s+ inter3in+ #ai #u$t de dou+ tranzac!ii @n acest caz este
0osii$ ca #ai #u$te tranzac!ii s+ treuiasc+ anu$ate 0entru a de$oca e5ecu!a.
. Ce$e #ai #u$te siste#e re0ro2ra#eaz+ auto#at 0entru e5ecu!e tranzac!ii$e anu$ate. E5ist+
"ns+ 4i siste#e care returneaz+ doar un cod de eroare a0$ica!iei/ acesteia re3enindu.i sarcina s+ se
ocu0e de rezo$3area 0ro$e#ei.
Serializare
*ro$e#a care se 0une este? cu# se 0oate 4ti dac+ e5ecu!a concurent+ a unui 2ru0 de
tranzac!ii este corect+ sau nuR
De(ini!ie? Se nu#e4te 0$ani(icare ,sc<edu$e- oricare ordine 0osii$+ de e5ecut+re a
o0era!ii$or 2ru0u$ui de tranzac!ii considerat.
O 0ri#+ constatare este c+/ dac+ se 0resu0une c+ (iecare tranzac!ie "n 0arte din 2ru0 este
corect+/ atunci orice 0$ani(icare seria$+ a tranzac!ii$or ,una du0+ a$ta/ indi(erent de ordine- este
corect+. De4i a(ir#a!ia este intuiti3+/ se 0oate 7usti(ica u4or 0rin (a0tu$ c+ orice 0ro2ra# e5ecut+
o sec3en!+ de tranzac!ii ,deci niciodat+ dou+ tranzac!ii si#u$tan-. A4adar/ tranzac!ii$e din 2ru0u$
considerat sunt e5ecut+te de 0ro2ra#e di(erite ,sunt deci inde0endente-/ ordinea e5ecu!ei $or
(iind ire$e3ant+ ,de re2u$+ >I>O? (irst in/ (irst out-.
Pagina 14
Stefanescu Cristina-Gabriela,
Master IISC, anul II
@n cazu$ "n care se e5ecut+ o0era!ii a$e unei tranzac!ii "n ti#0 ce e5ecu!a a$tor tranzac!ii nu a
(ost "nc+ "nc<eiat+ a3e# de.a (ace cu o 0$ani(icare interca$at+ ,inter$ea3ed-/ caz "n care este
0osii$ ca e5ecu!ia s+ nu (ie corect+ ,cu# a (ost cazu$ ce$or trei e5e#0$e 0rezentate $a
"nce0ut-.Dou+ 0$ani(ic+ri a$e unui 2ru0 de tranzac!ii sunt ec<i3a$ente dac+ 3or 0roduce #ereu
ace$a4i rezu$tat/ oricare ar (i starea ini!ia$+ a azei de date ,aceasta "nsea#n+/ de (a0t/ c+
o0era!ii$e con($ictua$e sunt "n aceeasi ordine-.
O 0$ani(icare este seria$izai$+ dac+ este ec<i3a$ent+ cu o 0$ani(icare seria$+. Orice
0$ani(icare seria$+ (iind corect+/ "nsea#n+ c+ acesta este criteriu$ de corectitudine c+utat. E5ecu!a
unui 2ru0 de tranzac!ii este corect+ dac+ s.a (+cut con(or# unei 0$ani(ic+ri seria$izai$e.O
caracterizare #ai 0u!in ri2uroas+/ dar #u$t #ai intuiti3+ a caracteru$ui seria$izai$ este
ur#+toarea? Oricare ar (i dou+ tranzac!ii A 4i B dintr.o 0$ani(icare a unui 2ru0 de tranzac!ii
concurente/ (ie A 0recede $o2ic 0e B/ (ie B 0recede $o2ic 0e A. >a0tu$ c+ NA 0recede $o2ic 0e BN
"nsea#n+ c+ B 0oate 3edea rezu$tate$e e5ecu!ei tranzac!iei A. Deci/ dac+ consider+# toate
oiecte$e 3+zute de tranzac!ia A/ atunci B 3ede toate aceste oiecte (ie #odi(icate de7a de A/ (ie
"n (or#a "n care erau "nainte ca #odi(ic+ri$e s+ se 0roduc+/ dar niciodat+ ca un a#estec de
oiecte #odi(icate 4i oiecte ne#odi(icate.
Teoria este/ desi2ur/ #u$t #ai o2at+ 4i s0eci(ic+ #ai #u$ti a$2orit#i de 3eri(icare a
criteriu$ui enun!at. Rezu$tatu$ ce$ #ai i#0ortant din 0ers0ecti3+ 0ractic+ a acestei teorii este a4a.
nu#ita Nteore#+ a seriai$it+tiiN ,sau Na $oc+rii "n dou+ (azeN-? ODac+ toate tranzac!ii$e unui
2ru0 de tranzac!ii concurente sunt ine (or#ate 4i res0ect+ 0rotoco$u$ de $ocare "n dou+ (aze/
atunci orice 0$ani(icare $e2a$+ este seria$izai$+.P
De#onstra!ia nu este di(ici$+ ,o 3ariant+ se azeaz+ 0e 2ra(u$ de 0recedent+ a$ 0$ani(ic+rii 4i
se des(+soar+ 0rin reducere $a asurd-. I#0ortante sunt "ns+ condi!ii$e?
O tranzac!ie este Nine (or#at+N dac+ orice o0era!ie a tranzac!iei este aco0erit+ de o $ocare
4i toate $oc+ri$e sunt e$ierate. O o0era!ie ,citire sau scriere- este Naco0erit+ de o $ocareN dac+
tranzac!ia de!ine o $ocare su(icient de 0uternic+ a oiectu$ui asu0ra c+ruia se des(+soar+
o0era!ia.
O 0$ani(icare este N$e2a$+N dac+ nu se des(+soar+ "n condi!ii$e unor $oc+ri con($ictua$e.
Un N0rotoco$ de $ocareN const+ dintr.un set de restric!ii i#0use ordinii "n care tranzac!ii$e
concurente $oc<eaz+ 4i de$oc<eaz+ oiecte$e azei de date. *rotoco$u$ de $ocare "n dou+ (aze
,t9o.0<ase $ocEin2- i#0une ur#+toare$e dou+ restric!ii?
1. @nainte de a o0era asu0ra oric+rui oiect a$ azei de date/ o tranzac!ie treuie s+ o!in+
$ocarea res0ecti3u$ui oiect.
2. Du0+ ce a e$ierat o $ocare/ o tranzac!ie nu 3a #ai "ncerca niciodat+ s+ otin+ noi $oc+ri.
Se oser3+ cu usurin!+ e50$ica!ia denu#irii N"n dou+ (azeN ,care n.are ni#ic "n co#un cu
co#iterea "n dou+ (aze-? con(or# acestui 0rotoco$ orice tranzac!ie trece #ai "ntBi 0rintr.o (az+ de
o!inere a $oc+ri$or/ du0+ care trece "ntr.o (az+ de e$ierare a $oc+ri$or.
Pagina 15
Stefanescu Cristina-Gabriela,
Master IISC, anul II
Sarcina asi2ur+rii res0ect+rii acestui 0rotoco$ re3ine LocE Mana2er.u$ui ,desi2ur/ dac+
siste#u$ $ucreaz+ 0e aza acestui 0rotoco$-. Mai oser3+# c+ 0rotoco$u$ 0re3ede Ne$ierarea
$oc+ri$orN. O re2u$+ de Nun si#!N s0une c+ un oiect treuie $ocat cBt #ai 0u!in ti#0 cu
0utin!+/ 0entru a 0er#ite 4i accesu$ a$tor tranzac!ii $a acesta. Din 0+cate/ i#0$e#entarea acestui
0rotoco$ "n (or#a sa cea #ai e(icient+ din acest 0unct de 3edere este e5tre# de di(ici$+? LM
treuie s+ N4tieN cBnd o tranzac!ie a o!inut toate $oc+ri$e 4i nu 3a #ai a3ea ne3oie de a$te$e
,0entru a identi(ica (aza "n care se a($+-A LM treuie s+ 4tie dac+ tranzac!ia 3a #ai a3ea ne3oie de
un oiect asu0ra c+ruia a e(ectuat o o0era!ie/ deci dac+ 0oate sau nu s+.$ e$iereze ,din ace$a4i
#oti3 a$ identi(ic+rii (aze$or-A "n (ine/ a0are 0ro$e#a e5tre# de di(ici$+ a Nanu$+rii "n cascad+N a
tranzac!ii$or? "n cazu$ "n care o tranzac!ie a (ost anu$at+ "n (aza a doua/ este 0osii$ ca une$e date
e$ierate de aceasta au (ost a0oi $ocate de a$te tranzac!ii/ caz "n care aceste tranzac!ii treuie $a
rBndu$ $or anu$ate. Din cauza acestor di(icu$t+!i/ #a7oritatea siste#e$or i#0$e#enteaz+ o 3ariant+
#ai restricti3+ a 0rotoco$u$ui/ "n care toate e$ier+ri$e $oc+ri$or unei tranzac!ii sunt a#Bnate 0Bn+
$a ter#inarea tranzac!iei ,(ie 0rin COMMIT (ie 0rin ROLLBACI-.
Este deci rezonai$ s+ se considere c+ $oc+ri$e o!inute de o tranzac!ie sunt 0+strate 0Bn+ $a
ter#inarea acesteia/ cu toate c+ "n (e$u$ acesta inter3a$u$ de ti#0 "n care un oiect este $ocat este
de re2u$+ #ai $un2 decBt #ini#u$ necesar. Co#0ro#isu$ este 4i aici 0rezent? si#0$i(icarea
#ecanis#e$or i#0$e#entate "n LocE Mana2er co#0enseaz+ sc+derea ni3e$u$ui de concuren!+
0rin $oc+ri de #ai $un2+ durat+. E5ist+ "ns+ situa!ii "n care se 0oate ad#ite un 2rad oarecare de
inter(eren!+/ caz "n care ni3e$u$ concurentei 0oate (i crescut 0rin Nre$a5areaN 0rotoco$u$ui de
$ocare ,"n s0et+ 0rin ad#iterea unor condi!ii "n care anu#ite $oc+ri 0ot (i e$ierate "naintea
ter#in+rii tranzac!iei-
+locarea ierar3ic1
Te<nica $oc+rii ierar<ice se re(er+ $a siste#e$e care ad#it #ai #u$te 2ranu$a!ii a$e $oc+rii
4i a (ost introdus+ de Si# 8ra= 4i co$aoratorii s+i "nc+ din 1TU1.
Ideea de $a care se 0$eac+ este c+ 0entru o o!ine o $ocare $a ni3e$ de artico$ ,$inie de
tae$+-/ o tranzac!ie treuie s+.4i #ani(este aceast+ inten!ie/ cerBnd #ai "ntBi o $ocare $a ni3e$ de
tae$+. @n (e$u$ acesta se si#0$i(ic+ 0rocesu$ de detectare a unor cereri con($ictua$e de $ocare $a
ni3e$ de $inie/ deoarece e$e treuie "ntBi s+ se #ani(este $a ni3e$ de tae$+. *rotoco$u$ azat 0e
Ninten!ii de $ocareN ,intent $ocEin2- introduce trei noi ti0uri de $ocare ,$a ni3e$ de tae$+-/
a$+turi de ce$e dou+ ti0uri de $oc+ri uzua$e ,S.$ocE 4i K.$ocE- care/ a4a cu# a# ar+tat de7a/ au
sens 4i $a ni3e$ de tae$+. A3e# ast(e$ cinci ti0uri de $oc+ri 0e care o tranzac!ie T $e 0oate
so$icita $a ni3e$u$ "ntre2ii tae$e R/ 0rezentate "n ordinea cresc+toare a Nt+rieiN $or re$ati3e?
IS 7 intent s3ared ? Tranzac!ia T inten!ioneaz+ s+ $oc<eze 0entru citire ,S $ocE- anu#ite
$inii a$e tae$ei R/ 0entru a 2aranta stai$itatea acestora "n ti#0u$ 0roces+ri$or 0e care $e 3a
e(ectua.
I6 7 intent e5clusive ? La (e$ ca IS/ dar T s.ar 0utea s+ 3rea s+ #odi(ice anu#ite artico$e 4i
deci s+ so$icite $ocarea e5c$usi3+ a acestora.
Pagina 16
Stefanescu Cristina-Gabriela,
Master IISC, anul II
S 8 s3ared ? Este oi4nuita $ocare 0arta7at+. T ad#ite citiri concurente a$e tae$ei R/ dar nu
4i scrieri. T nu 3a (ace nici o scriere $a ni3e$u$ $inii$or tae$ei.
SI6 7 s3ared intent e5clusive ? Co#in+ S 4i IK. @n 0$us (a!+ de S/ T s.ar 0utea s+ 3rea s+
#odi(ice anu#ite $inii din R 4i/ "n consecin!+/ s+ so$icite $ocarea e5c$usi3+ a acestora.
6 8 e5clusive ? T nu ad#ite citiri concurente "n tae$a R. T ar 0utea s+ actua$izeze anu#ite
$inii a$e tae$ei R.
CBte3a oser3atii?
a. No!iunea de Nt+rieN a $oc+rii se re(er+ $a (a0tu$ c+ o cerere de $ocare de un anu#it ti0
care e4ueaz+/ 3a e4ua cu si2uran!+ 0entru orice ti0 #ai NtareN.
. Ti0uri$e IK 4i S sunt e2a$e din 0unct de 3edere a$ Nt+rieiN.
c. &i aceste ti0uri de $oc+ri sunt "n #od oi4nuit cerute "n #od i#0$icit. Cu toate acestea/
siste#e$e care i#0$e#enteaz+ aceste ti0uri de $ocare ,DB2/ O0enIn2res- o(er+ de oicei 4i o
instruc!iune de $ocare e50$icit+ 0entru aceste ti0uri.
d. Carianta 0e care a# 0rezentat.o este #u$t si#0$i(icat+. De (a0t $oc+ri$e se 0ot re(eri $a
orice 2ranu$a!ii 4i orice oiecte a$e azei de date ,inc$usi3 indec4i-.
@n (ine/ 0rotoco$u$ azat 0e inten!ii de $ocare ,intent $ocEin2 0rotoco$-/ i#0une dou+ re2u$i
care "#in+ $oc+ri$e $a ni3e$ de tae$+ 4i de artico$ "ntr.o co#ina!ie care adesea s.a do3edit #ai
e(icient+ "n a0$icatii?
1. @nainte de a o!ine o $ocare 0arta7at+ ,S- $a ni3e$ de $inie/ o tranzac!ie treuie s+ o!in+ o
$ocare de ti0 IS ,sau #ai tare- $a ni3e$u$ "ntre2ii tae$e.
2. @nainte de a o!ine o $ocare de ti0 e5c$usi3 ,K- $a ni3e$ de $inie/ o tranzac!ie treuie s+
otin+ o $ocare de ti0 IK sau #ai tare $a ni3e$u$ "ntre2ii tae$e.
Pagina 17
Stefanescu Cristina-Gabriela,
Master IISC, anul II
9 PROTOCOU DE +OCARE IN DOU: 0A!E
Rezu$tatu$ (ina$ a$ e5ecu!iei unei tranzac!ii treuie s+ "ntruneasc+ Oacordu$P tuturor noduri$or/
(a0t "n care const+ res0ectarea 0ro0riet+!ii de ato#icitate a tranzac!iei.
*entru asi2urarea 0ro0riet+!ii de ato#icitate/ coordonatoru$ tranzac!iei #en!ionate este 0re3+zut
cu un -rotocol de co#itere. Unu$ dintre siste#e$e de 0ro2ra#e ce$e #ai (rec3ent (o$osite/ din
aceast+ c$as+/ este -rotocolul de co#itere ;n dou1 <aze 2-rescurtat= >PC4? O 3ariant+ #ai co#0$e5+
este re0rezentat+ de 0rotoco$u$ de co#itere "n trei (aze ,%*C-.
%.1 *ROTOCOLUL DE COMITERE @N DOUV >AZE ,2* COMMIT- .
STRUCTURV/ >UNCDIONARE
@n ce$e ce ur#eaz+/ ;n conte5tul unei baze de date distribuite/ 3a (i descris+ acti3itatea
0rotoco$u$ui 2*C 0Bn+ $a (ina$izarea unei tranzac!ii/ res0ecti3 0Bn+ $a co#iterea acesteia. De
ase#enea/ 0rotoco$u$ 2*C "nde0$ine4te (unc!ii s0eci(ice "n situa!ii$e de de(ect/ de re3enire du0+
de(ecte 4i de contro$ a$ concuren!ei tranzac!ii$or. Modu$ de rea$izare a acestor u$ti#e (unc!ii 3a (i
0rezentat u$terior.
Aciunea de co#itere.
>ie o tranzacie T care intr+ "n $ucru "n nodul Ni / unde coordonator este TCi. Co#
distin2e dou+ (aze "n des(+4urarea 0rocesu$ui de "nc<eiere a e5ecu!iei tranzac!iei T. A4a cu# se
3a 3edea/ 0rocesu$ se 0oate s(Br4i (ie 0rin co#iterea tranzac!iei/ (ie 0rin aandonarea acesteia.
*rotoco$u$ 2*C intr+ "n $ucru atunci cBnd/ 0rin decizia coordonatoru$ui TCi/ tranzac!ia T "nc<eie
,sau co#0$eteaz+- e5ecu!ia sa/ res0ecti3 atunci cBnd toate noduri$e "n care a (ost 0re$ucrat+ T
anun!+ coordonatoru$ TCi c+ tranzac!ia a (ost co#0$etat+.
Pri#a <az1. Odat+ cu intarea "n (aza de "nce0ut a 0rocesu$ui/ coordonatoru$ TCi introduce
"n 7urna$ "nre2istrarea cu con!inutu$ W0re0are TX 4i/ totodat+/ "n#a2azineaz+ ,sau/ cu un ter#en
(o$osit (rece3nt/ O(or!eaz+P- con!inutu$ 7urna$u$ui "n #e#oria Ostai$+P ,0e discuri #a2netice- a
siste#u$ui. @n continuare/ TCi trans#ite #esa7u$ 0ri3ind 0re2+tirea tranzac!iei tuturor noduri$or
"n care aceasta a (ost 0re$ucrat+. @n aceste noduri/ "n ur#a rece0!ion+rii #esa7u$ui/ (iecare
contro$or de tranzac!ii asociat decide asu0ra co#iterii 0or!iunii de tranzac!ie care "i cores0unde.
@n situa!ia "n care r+s0unsu$ este a(ir#ati3/ contro$oru$ de tranzac!ii din nod introduce "n 7urna$
"nre2istrarea cu con!inutu$ Wread= TX/ iar a0oi O(or!eaz+P con!inutu$ 7urna$u$ui "n #e#oria
stai$+/ inc$usi3 toate "nre2istr+ri$e din 7urna$ care se re(er+ $a tranzac!ia T. A0oi/ contro$oru$ de
tranzac!ii trans#ite coordonatoru$ui TCi #esa7u$ Oread= TP. Atunci cBnd decizia este ne2ati3+/
contro$oru$ de tranzac!ii din nod "nscrie "nre2istrarea Wno T X "n 7urna$/ "n continuare trans#i!Bnd
coordonatoru$ui TCi #esa7u$ Oaort TP.
Pagina 18
Stefanescu Cristina-Gabriela,
Master IISC, anul II
A doua <az1? Coordonatoru$ de tranzac!ii TCi 0oate stai$i dac+ tranzac!ia T 3a (i co#is+
sau aandonat+/ de "ndat+ ce a 0ri#it r+s0unsuri de $a toate noduri$e $a nesa7u$ s+u de 0re2+tire a
tranzac!iei. Decizia res0ecti3+ 0oate (i $uat+ de TCi 4i atunci cBnd de $a trans#iterea #esa7u$ui
W0re0are TX a trecut un ti#0 dat.
Dac+ toate noduri$e ce 0artici0+ "n 0roces au r+s0und 0rin #esa7u$ Oread= TP/ tranzac!ia T
0oate (i co#is+/ "n 7urna$ se introduce "nre2istrarea Wco##it TX/ iar con!inutu$ 7urna$u$ui este
"n#a2azinat "n #e#oria stai$+. @n situa!ia contrar+/ T este aandonat+/ ur#Bnd ca "n 7urna$ s+ (ie
"nscris+ in(or#a!ia Waort TX/ iar 7urna$u$. (or!at "n #e#oria stai$+. *otri3it e50ri#+rii din
$iteratura de s0ecia$itate ,3ezi Si$ersc<atz/ 02 21Q-/ "n acest #o#ent e3o$u!ia tranzac!iei este
de(initi3+. Ca ur#are/ siste#u$ coordonator TCi trans#ite tuturor noduri$or ce au $uat 0arte $a
e5ecu!ie #esa7u Oco##it TP sau Oaort TP. *ri#ind unu$ din aceste #esa7e/ noduri$e "$ "nscriu "n
7urna$.
Co#entarii:
@n 0ri#u$ rBnd/ de "ndat+ ce contro$or de tranzac!ii e#ite un #esa7 Oread= TP c+tre
coordonator/ tranzac!ia se 3a 2+si "n situa!ia nu#it+ Oread= stateP "n nodu$ cores0unz+tor. @n (a0t/
#esa7u$ trans#is coordonatoru$ui este o O0ro#isiuneP (or#u$at+ $a ni3e$u$ nodu$ui 0ri3ind
in3ita!ia de co#itere sau de aandonare e50ri#at+ de TCi. @n acest conte5t/ treuie re#arcat c+
0entru a (or#u$a un ase#enea r+s0uns/ este necesar+ "nscrierea unei in(or#a!ii cores0unz+toare
"n #e#oria stai$+. Dac+ in(or#a!ia #en!ionat+ nu 3a (i dis0onoi$+/ este 0osii$ ca "n situa!ia "n
care/ "n ur#a a0ari!iei unui de(ect/ nodu$ "n cauz+ iese din (unc!iune du0+ ce a trans#is #esa7u$
Oread= TP/ inten!ia de co#itere sau aandonare s+ nu #ai 0oat+ (i rea$izat+ "n #od cores0unz+tor.
@n a$ doi$ea rBnd/ dre0turi$e de "nc<idere a$e tranzac!iei r+#Bn 3a$ai$e 0Bn+ $a co#iterea
acesteia/ 0recu# 4i (a0tu$ c+ T 0oate (i aandonat+ "n orice #o#ent/ anterior ce$ui "n care
contro$oru$ de tranzac!ii din nod tri#ite coordonatoru$ui #esa7u$ Oread= TP.
@n a$ trei$ea rBnd/ de "ndat+ ce un nod a dec$arat aandonarea tranzac!iei T 0rin r+s0unsu$
Oaort TP/ e3o$u!ia tranzac!iei este de(initi3+/ dre0t ur#are a condi!iei de unani#itate 0entru
co#itere. @n $e2+tur+ cu aceasta/ oser3+# c+ decizia de aandonare a tranzac!iei T 0oate (i $uat+
"n #od uni$atera$ de c+tre coordonatoru$ TCi/ a$ nodu$ui "n care s.a 0rodus 0re$ucrarea
tranzac!iei. Decizia (ina$+ asu0ra e3o$u!iei tranac!iei T este $uat+ "n #o#entu$ "n care TCi "nscrie
<ot+rBrea de co#itere sau aandonare ado0tat+ "n 7urna$/ a0oi "n #e#oria stai$+. Une$e
i#0$e#ent+ri a$e 0rotoco$u$ui 2*C 0re3+d ca/ $a s(Br4itu$ ce$ei de a doua (aze/ contro$oru$ de
tranzac!ii din nod s+ trans#it+ coordonatoru$ui #esa7u$ OacEno9$ed2e TP/ ur#Bnd ca du0+
rece0!ionarea #esa7u$ui din 0artea tuturor noduri$or/ TCi s+ introduc+ "n 7urna$ "nre2istrarea
Wco#0$ete TX.
>unc!ionarea 0rotoco$u$ui de co#itere "n dou+ (aze 0oate (i descris+ "n o #anier+
a$ternati3+/ 0rezentat+ succint "n cotinuare. >ie o az+ de date distriuit+ "n N noduri. Mai 7os/
3or (i (o$osite nota!ii$e? WYYX 0entru re0rezentarea "nre2istr+ri$or/ iar ZYY.P 0entru #esa7e.
Pagina 19
Stefanescu Cristina-Gabriela,
Master IISC, anul II
Se ad#ite c+ din co#0onen!a unui nod ZiP (ac 0arte o unitate centra$+ de 0re$ucrare UC*i/ o
#e#orie centra$+ MCi/ o #e#orie de ti0 cac<e MC[i/ "n nod (iind "n#a2azinat codu$
tranzac!ii$or $oca$e 4i sutranzac!ii$or ce a0ar!in unor tranzac!ii 2$oa$e/ 0recu# 4i siste#e$e de
0ro2ra#e cores0unz+toare contro$oru$ui Tctri/ res0ecti3 coordonatoru$ui de tranazac!i TCi. La
e$e#ente$e de #ai sus se adau2+ #e#oria secundar+ MSECi. @n continuare/ este 0rezentat+
sc<e#atic o des(+4urare 0osii$+ a acti3it+!ii 0rotoco$u$ui 2* Co##it/ $a #o#ente$e de ti#0 t1/
t2/ etc.
Pri#a <az1
t@ TCi W0re0areTX .X 7urna$
t> TCi W7urna$X .X #e#oria stai$+ MSECi
t9 TCi W0re0areTX .X noduri
tA Tctr7 decizie 0ri3ind co#iterea 0or!iunii 0ro0rii de tranzac!ie
tB decizie \ Da/ Tctr7 Wread=TX .X #e#oria stai$+/
sau
decizie \ Nu/ Tctr7 WnoTX .X 7urna$
tC decizie \ Da/ Tctr7 #esa7 Zread=TP .X TCi/
sau
decizie \ Nu/ Tctr7 #esa7 ZaortP . X TCi.
A doua <az1
tD TCi ana$izeaz+ r+s0unsuri$e Tctr7 din #o#entu$ tQ
tE toate Tctr7 .X #esa7 Oread=TP/ TCi Wco##itTX .X 7urna$/
sau
nu toate Tctr7 .X #esa7 Oread=P/ TCi WaortX .X 7urna$
tF TCi W7urna$X .X #e#oria stai$+ MSEC7
t@G TCi Wco##itTX "n toate noduri$e/ sau WaortTX "n toate noduri$e
t@@ (iecare Tctr7 0artici0ant "n 0re$ucrarea tranzac!iei Wco##itTX .X 7urna$ sau
WaortTX .X 7urna$.
Pagina 20
Stefanescu Cristina-Gabriela,
Master IISC, anul II
@n i0oteza c+ unu$ sau #ai #u$te din noduri$e re!e$ei ,res0ecti3 dintre contro$oare$e de
tranzac!ie- nu O3oteaz+P (a3orai$/ tranzac!ia nu 0oate co#ite. @n aceast+ situa!ie/ 0entru
tranzac!ie treuie s+ se a7un2+ "n (ina$ $a decizia OAortMLorE,-P. Surna$u$ tranzac!iei 3a (i citit
"na0oi/ su contro$u$ coordonatoru$ui de tranzac!ii. @n acest 0roces/ 0entru (iecare "nre2istrare din
7urna$ coordonatoru$ a0e$eaz+ nodu$ ,contro$oru$- care a o0erat u$ti#a actua$izare/ deter#inBndu.
$ s+ ini!ieze o o0era!iune de Odistru2ereP a in(or#a!iei res0ecti3e. Atunci cBnd "n 0rocesu$
ins0ect+rii Oin3erseP a 7urna$u$ui se a7un2e "n 0unctu$ de "nce0ut a$ tranzac!iei/ res0ecti3 aco$o
unde treuie s+ se a($e co#anda Be2inMLorE,-/ 3a (i e(ectuat+ o0era!iunea de Odistru2ereP a
acestei u$ti#e co#enzi/ a0oi "n 7urna$ se introduce o "nre2istrare de aandonare. @n s(Br4it/ "n
7urna$ este introdus+ o nou+ "nre2istrare/ care conse#neaz+ Oco#0$etareaP aandon+rii. Mai
#en!ion+# c+ 7urna$u$ui tranzac!iei i se asociaz+ un contro$or 0ro0riu/ a c+rui sarcin+ este de a
2estiona "nre2istr+ri$e din 7urna$/ 0rin inter#ediu$ unei $iste "n$+n!uite/ "n care (iec+rei "nre2istr+ri
i se atriue o c<eie unic+. Unu$ din oiecti3e$e 0entru care "n 0rocesu$ de ins0ectare a
con!inutu$ui 7urna$u$ui se (o$ose4te o $ist+ "n$+n!uit+ este asi2urarea e(icien!ei o0era!iuni$or de
Odistru2ereP e3ocate #ai sus.
%.2 *ROTOCOLUL DE BLOCARE @N DOUV >AZE ,2.*L-
*rotoco$u$ de $ocare "n dou+ (aze,t9o.0<ase $ocEin2- i#0une ca (iecare tranzac!ie s+
res0ecte 0rotoco$u$ de uti$izare a $oc+ri$or? toate o0era!ii$e de $ocare s+ 0recead+ 0ri#a
o0era!ie de de$ocare.
O ast(e$ de tranzac!ie 0oate (i di3izat+ "n dou+ (aze?
(aza de cre4tere ,2ro9in2 0<ase-/ "n care se 0ot (ace noi $oc+ri/ dar nu se (ac de$oc+riA
(aza de descre4tere ,s<rinEin2 0<ase-/ "n care se (ac toate de$oc+ri$e/ dar nu se #ai 0ot
(ace $oc+ri noiA
Dac+ o tranzac!ie 0oseda o $ocare de ti0 K asu0ra unui oiect/ nici o a$t+ tranzac!ie nu 3a 0utea
0re$ua o a$t+ $ocare asu0ra sa. @naintea unei o0era!ii de citire se 3a otine o $ocare S/ iar a unei
o0eratii de scriere o $ocare de ti0 K.
O tranzactie treuie sa o!ina o $ocare "naintea e5ecu!iei o0era!iei dorite / o tranzactie ce a
o!inut o $ocare nu 3a #ai 0utea o!ine a$te$e.
S.a de#onstrat c+/ dac+ (iecare tranzac!ie a unei 0$ani(ic+ri res0ect+ 0rotoco$u$ de $ocare "n
dou+ (aze/ atunci 0$ani(icarea este seria$izai$+.
:U;
Acest 0rotoco$ ne 2aranteaz+ seria$izai$itatea? dac+ toate tranzac!ii$e res0ect+ cerin!e$e
0rotoco$u$ui se 0oate de#onstra c+ orice 0$ani(icare a $or e seria$izai$+. De ase#enea se 0oate
Pagina 21
Stefanescu Cristina-Gabriela,
Master IISC, anul II
de#onstra c+ dac+ o tranzac!ie nu res0ect+ 0rotoco$u$ 0ot e5ista e5ecu!ii neseria$izai$e a$e ace$ei
tranzac!ii "n con7unc!ie cu a$te tranzac!ii.
*entru o tranzactie care contine sec3en!+?
UNOC( A
OC( +
*ute# a3ea o 0$ani(icare care contine?
T1 T2
UNOC( A
77777777777777777777777777777777777777777777777777777777777
OC( A
OC( +
UNOC( A
UNOC( +
7777777777777777777777777777777777777777777777777777777777777
OC( +
Care are un 2ra( de 0receden!+ care con!ine un cic$u.
*rotoco$u$ de $ocare "n 2 (aze i#0$ic+ "nsa uneori o0era!ii de ro$$.acE "n cascad+?
T@ H T>
OC( A
OC( +
READ A
'RITE A
UNOC( A
77777777777777777777777777777777777777777777777777777777777777777777777
OC( A
READ A
'RITE A
Pagina 22
Stefanescu Cristina-Gabriela,
Master IISC, anul II
UNOC( A
77777777777777777777777777777777777777777777777777777777777777777777777
READ +
'RITE +
777777777777777777777777777777777777777777777777777777777777777777777777
RO+AC(
@n #o#entu$ Ro$$acE 0entru T1 este necesar Ro$$acE 4i 0entru T2 deoarece T2 a citit date
scrise de T1/ date care 0rin o0era!ia de Ro$$acE se 0ierd. O ast(e$ de 0$ani(icare se nu#este
0$ani(icare cu ro$$acE "n cascad+ ,en2.? cascadin2 aorts- .
Dac+ (ace# un 2ra(ic a$ nu#+ru$ui de "ncuietori 0osedate de o tranzac!ie/ e$ treuie s+ arate
ca# ca "n (i2ura ur#+toare? s+ ai+ o (az+ de cre4tere ,2ro9in2 0<ase- 4i una de descre4tere
,s<rinEin2 0<ase-.
growing shrinking
^ ____
| / \
numar de | / \____
blocri | __/ |
| / \
0----------------------->
Timp
Protocolul de blocare strict1 ;n dou1 <aze
E5ist+ 0entru a e3ita 4i ast(e$ de cazuri 3arianta -rotocolului de blocare strict1 ;n dou1
<aze care i#0$ic+ e$ierarea toturor artico$e$or $ocate $a s(ar4itu$ tranzac!iei. @n acest caz
tranzac!ia T2 din e5e#0$u$ anterior 0orne4te aia du0a ter#inarea co#0$et+ a tranzac!iei T1.
De#onstra!ie 0entru 2aran!ia seria$izai$it+!ii?
S+ 0resu0une# ,0rin asurd- c+ o serie de tranzac!ii T1/ T2/ ... Tn/ care res0ect+ 0rotoco$u$
2*L/ au a3ut o e5ecu!ie ne.seria$izai$+. Asta "nsea#n+ c+ "n 2ra(u$ $or de de0enden!e e5ist+ un
cic$u/ T1 T2 ...Tn T1. Ce "nsea#n+ c+ a3e# un arc de $a T1 $a T2R @nsea#n+ c+ T1 a o0erat
asu0ra unei 3a$ori "nainte de T2/ cu o o0era!ie care nu co#ut+ cu cea a $ui T2. Dar noi 4ti# c+ T1
nu are 3oie s+ o0ereze asu0ra unei 3a$ori ne$ocate. Asta "nsea#n+ c+ T2 a $ocat acea 3a$oare
du0+ ce T1 a de$ocat.o. Arcu$ T2 T% indic+ un $ucru ase#+n+tor/ 4i anu#e c+ T% a $ocat o
3a$oare ,nu necesar aceea4i- du0+ ce T2 a descuiat.o. Din a0roa0e "n a0roa0e o!ine# c+/ "n (ine/
T1 a $ocat o 3a$oare du0+ ce T1 a de$ocat o a$t+ 3a$oare/ ceea ce este asurd. Conc$uzia ini!ia$+
era deci 2re4it+. @n conc$uzie 2*L 2aranteaz+ seria$izai$itatea.
Se oser3+ c+ 2*L nu este ace$a4i $ucru cu seria$izai$itatea/ ci c+ 2*L doar o i#0$ic+.
Pagina 23
Stefanescu Cristina-Gabriela,
Master IISC, anul II
E5ist+ un deza3anta7 a$ $ui 2*L 4i o i#0$e#entare care "$ e3it+. S+ consider+# ur#+toru$
scenariu? o tranzac!ie T1 $oc<eaz+ o 3a$oare 5/ o #odi(ic+ 4i a0oi o de$oc<eaz+. T2 3ine $a
r"nd/ $oc<eaz+ 4i cite4te 5. Dac+ acu# T1 3rea s+ e5ecute Aort/ 3a$oarea $ui 5 treuie 0us+ cu#
era "nainte ca T1 s+ o (i #odi(icat. Dar T2 a citit.o de7a] Asta "nsea#n+ ni#ic a$tce3a dec"t c+
dac+ T1 e5ecut+ Aort/ T2 treuie s+ (ie ^^ucis+__ de siste#/ 0entru a res0ecta 0ro0rietatea de
izo$are] E c$ar c+ $an!u$ 0oate (i #ai $un2? T% 0oate a citit $a r"ndu$ ei 5/ 4i atunci treuie ucis+ 4i
ea.
O ast(e$ de situa!ie (oarte ne0$+cut+ ,0entru c+ o #u$!i#e de o0era!ii treuie ^^4terse__- se
nu#e4te cascaded abort ,aort "n cascad+-. O a$t+ consecin!+ ne0$+cut+ este c+ T2 nu se 0oate
ter#ina "nainte de T1/ 0entru c+ dac+ T2 (ace Commit iar T1 Aort se stric+ tranzac!ia/ c+ci T2 a
0ro#is c+ 3a$oarea $ui 5 este 0er#anent+/ dar nu a3ea 3oie s.o citeasc+] Deci T2 treuie s+
a4te0te ca T1 s+ se ter#ine.
So$u!ia este si#0$+? se restr"n2e concuren!a/ dar ni#eni nu este $+sat s+ 3ad+ #odi(ic+ri$e.
Nu se de$oc<eaz+ ni#ic 0"n+ $a s("r4it/ c"nd se de$oc<eaz+ totu$ dintr.o #i4care ,de e5e#0$u
(o$osind End Transaction/ care e$iereaz+ $oc<+ri$e-. 8ra(icu$ ar ar+ta atunci ca# a4a?
growing shrinking
^ _________
| / |
numar de | / |
blocri | __/ |
| / |terminare
0----------------------->
timp
:`;
3.3 COM*ARADIE @NTRE 2 *C SI 2 *L
AtBt 0rotoco$u$ de co#itere in dou+ (aze,2 *C- cBt i 0rotoco$u$ de $ocare "n dou+ (aze,2
*L- sunt 0rotocoa$e (o$osite in con7unctura siste#e$or de aze de date distriuite.
*rotoco$u$ de $ocare in dou+ (aze ,2*L- se ocu0a doar de #ana2e#entu$ $oc+ri$or "n ti#0u$
unei tranzac ii/ "n ti#0 ce 0rotoco$u$ de co#itere "n dou+ (aze,2*C- decide daca o anu#it+
tranzac ie este scrisa,se co#ite- sau nu ,se (ace aord-.
Pagina 24
Stefanescu Cristina-Gabriela,
Master IISC, anul II
*rotoco$u$ 2*L s0une c+ e5ist+ #ai "ntBi o (az+ in care se (ac toate $oc+ri$e ,(aza de cre tere- i
a0oi e5ista o (aza "n care se (ac toate de$oc+ri$e,(aza de descre tere-. Odat+ "nce0ut+ (aza de
descre tere/ nu se #ai 0ot (ace $oc+ri 0e 0arcursu$ res0ecti3ei tanzac ii. >aza de descre tere are
$oc de oicei du0a ce s.a (+cut aord sau co#it "n siste#u$ de aze de date.
*rotoco$u$ 2*C s0une/ "n esen +/ c+ odata (ina$izat+ o tranzac ie si se a tea0ta co##itarea
acesteia/ "nce0e O3otu$P. >iecare nod care (ace 0arte din tranzac!ie trece "ntr.o stare a0re0are to
co##itP. Nodu$ 3eri(ic+ daca este 0osii$ s+ se (aca un co##it $oca$/ i "n acest caz 3oteaz+
Oread= to co##itP ,RTC-/ insa $a acest #o#ent nu sunt "nc+ scrise #odi(ic+ri$e "n aza de date.
Odata ce un nod a 3otat cu RTC/ siste#u$ treuie 0+strat "ntr.o stare "n care tranzac ia res0ecti3a
s+ (ie #ereu oE 0entru co##it. Atunci cand toate noduri$e 3oteaz+ cu RTC/ se (ace co##it/ ins+
daca un sin2ur nod nu 3oteaz+ RTC/ toate tranzac ii$e $oca$e 3or (i aordate.
:T;/:1F;
3.4 CONCLUZII
*rotoco$u$ 2*L i#0$ic+ seria$izai$itatea. @n sc<i# acest 0rotoco$ nu 0oate 2aranta
recu0erai$itatea/ deoarece tranzac ii$e ar 0utea (i de$ocate 0e atriute a$e azei de date
#odi(icate/ "nainte de a se (ace co##it sau aord/ ceea ce 0er#ite a$tor tranzac ii s+ (o$oseasc+
3a$ori instai$e 0e care s+ (ac+ a0oi co##it.
*rotoco$u$ care asi2ur+ atat seria$izai$itatea cBt i recu0erai$itatea este 0rotocu$u$ 2 *L
strict/ care #en ine $ocate tranzac ii$e 0Bn+ cBnd acestea sunt (ina$izate cu succes. Acest
0rotoco$ 0oate (i (o$osit "n #edii dina#ice/ unde #ode$e$e de acces $a date nu sunt cunoscute de
dinainte.
Pagina 25
Stefanescu Cristina-Gabriela,
Master IISC, anul II
A +I+IOIRA0IE
:1; *ro(. An2e$ Ca!aron/ curs Baze de date/
<tt0?JJ3e2a.unit3.roJbcataronJCoursesJBDJBDMCa0M1.0d( $a1)J12J2F12
:2; *ro(. >e$icia Ionescu/ curs Baze de date 0entru a0$ica!ii 4tiin!i(ice
:%; Ionescu >./ Baze de date re$ationa$e si a0$icatii / Editura Te<nica/ Bucuresti/ 2FF)
:); <tt0?JJ$o2u.$uJEassaEJ2estiunea.tranzac!ii$orJ $a 11J12J2F12
:1; Do$$in2er R./ Baze de date 4i 2estiunea tranzac!ii$or/ Editura A$astr+/ C$u7.Na0oca/ 1TTT
:Q;Na3rosc<i.Szcsz A./ curs? B$oc+ri/ #+rci de ti#0 4i uti$izarea $or in Orac$e
:U; Ionescu >. / curs *roiectarea aze$or de date ,*BD-
:`; <tt0?JJ999.cs.c#u.eduJb#i<aiJartic$esJtranzactiiJtranzactii.<t#$.<t#$ $a 21J12J2F12
:T; <tt0?JJ9iEi.ans9ers.co#J'JDi((erenceMet9eenM2.0<aseM$ocEin2MandM2.0<aseMco##it
$a 2UJ12J2F12
:1F; Dr. Irien2Erai *orEae9/ DBMS? Concurrenc= Contro$
Pagina 26