Sunteți pe pagina 1din 34

Universitatea Tehnica a Moldovei

Catedra Automatic i Tehnologii Informaionale


Lucrare de an
la disciplina: Baze de Date i Cunotine
Tema: estiunea tranzaciilor !n "aze de date distri"uite
A efectuat : studentul grupei #I$%%%& 'oroc (ictor
A verificat: Bulai )odica
Chiinu *+%,
Introducere
Bazele de date reprezint un concept actual& care i$a gsit utilitatea !n foarte multe domenii i care
evolueaz !n fiecare zi-
Caracteristica principal a aplica.iilor de "aze de date const !n faptul c accentul este pus pe opera.iile
de memorare i regsire efectuate asupra unui volum mare de date i mai pu.in asupra opera.iilor de
prelucrare a acestora- /rincipala opera.ie care apare !n aplica.iile de "aze de date este regsirea datelor !n
scopul o".inerii de informa.ii din "aza de date- Acesta este sensul e0isten.ei oricrei "aze de date-
Alturi de opera.ia de regsire& apar mai mult sau mai pu.in frecvenat& opera.ii de memorare 1 pentru
introducerea de noi date !n "aza de date& tergere 1 pentru datele devenite inutile i de actualizare a unor
date de2a e0istente !n "aza de date-
Un sistem de gestiune a "azelor de date 3#BD4 este un sistem de programe care permite utilizatorului
definirea& crearea i !ntre.inerea "azei de date precum i accesul controlat la aceasta- Deci #BD const
!n elemente de soft5are care interac.ioneaz cu programele aplica.ie ale utilizatorului i cu "aza de date-
1.1.1.1.1. Baze de date distribuite
#istemele de "aze de date au evoluat de la stadiul !n care fiecare aplica.ie !i !ntre.inea propria "az de
date& la cel !n care datele sunt definite i gestionate centralizat- Acum !ns& tehnologia "azelor de date
distri"uite poate schim"a modul de lucru centralizat !ntr$unul descentralizat- Tehnologia #BDD
constituie una din realizrile ma2ore !n domeniul sistemelor de "aze de date-
6 "az de date distri"uit este o colec.ie de mai multe "aze de date intercorelate logic i distri"uite
!ntr$o re.ea-
Un sistem distri"uit de gestiune a "azelor de date3distri"uted data"ase management s7stem $distri"uted
DBM# $DDBM#4 este un sistem soft5are care permite managementul "azelor de date distri"uite i face
distri"u.ia transparent pentru utilizator-
Termenul de sistem de "aze de date distri"uite se refer la o com"ina.ie de "aze de date distri"uite i la
sisteme distri"uite de gestiune
#istemele de "aze de date distri"uite sunt similare sistemelor distri"uite de fiiere 3Distri"uted 8ile
#7stems $ D8#4& !n sensul c am"ele faciliteaz accesul la date stocate distri"uit& dar sunt i diferen.e:
9n D8# utilizatorul tre"uie s cunoasc loca.ia datelor:
DDBM# asigur accesul transparent la date: utilizatorul percepe "aza de date distri"uit ca pe o "az
de date unic& chiar dac aceasta este distri"uit pe mai multe site$uri i unele date sunt fragmentate sau
replicate-
Avantajele bazelor de date distribuite:
- #istemele de "aze de date distri"uite pot s ofere urmtoarele caracteristici:
2
- Independen.a datelor fa. de suportul fizic de memorare: schema conceptual definete structura
logic a datelor& independent de platforma de memorare i poate fi transpus !n diferite scheme fizice&
dependente de organizarea suportului de memorare:
- Transparen. a distri"u.iei 3!n re.ea4: !nseamn c utilizatorul nu tre"uie s cunoasc detalii ale
distri"u.iei datelor !n re.ea& at;t ca localizare c;t i ca nume ale entit.ilor:
- Transparen. privind replicarea i fragmentarea datelor:
- (olum de stocare a datelor crescut:
- #iguran. de func.ionare 3relia"ilit74 i disponi"ilitate 3availa"ilit74 crescut 3relia"ilit7 1!nseamn
pro"a"ilitatea ca sistemul s fie !n func.iune !ntr$un anumit moment de timp: availa"ilit7 1!nseamn
pro"a"ilitatea ca un sistem s fie disponi"il continuu !ntr$un anumit interval de timp4:
- Deoarece datele i sistemul de gestiune sunt distri"uite !n mai multe site$uri& atunci c;nd unul din
site$uri s$a defectat& alte site$uri pot s continue s func.ioneze i utilizatorii s acceseze cel pu.in o parte
din date-
Dezavantajele bazelor de date distribuite:
$ Comple0itate mai ridicat 3fa. de sistemele centralizate4 privind proiectarea& administrarea&
!ntre.inerea:
$ Dificult.i suplimentare 3fa. de sistemele centralizate4 datorit necesit.ii de prelucrare distri"uit
a interogrilor i de control al tranzac.iilor distri"uite:
$ #ecuritatea necesit mecanisme speciale de protec.ie 3autentificare& criptarea datelor4 datorit
comunica.iilor prin re.ea:
$ Dificultatea de men.inere a integrit.ii datelor 1 care necesit opera.ii !n re.ea& care pot !ncrca
mult capacitatea re.elei:
$ <ipsa de standarde pentru structurarea datelor i comunicarea !ntre site$uri pentru distri"uirea
datelor:
$ Imaturitatea tehnologiilor i a toolset$urilor:
$ <ipsa de e0perien. a personalului& datorit nout.ii tehnologiilor-
1.1.1.1.2. Tranzacii n sisteme de bazele de date
9n mod o"inuit& un sistem #BD deservete mai mul.i utilizatori& care acceseaz concurent datele din
ta"ele- Accesul concurent al utilizatorilor este asigurat prin capacitatea de multiprogramare a sistemului
de operare al calculatorului gazd& care permite e0ecu.ia concurent a mai multor procese- =0ecu.ia
concurent a mai multor procese poate avea loc at;t !ntr$un sistem uniprocesor& prin parta2area
3!mpr.irea4 timpului de e0ecu.ie al procesorului !ntre mai multe procese& c;t i !ntr$un sistem
multiprocesor !n care mai multe procese pot fi e0ecutate !n mod real simultan& pe mai multe procesoare
ale sistemului- Indiferent de numrul de procesoare ale sistemului& accesul concurent al mai multor
3
utilizatori la datele memorate !n ta"elele unei "aze de date necesit tehnici de men.inere a consisten.ei
3corectitudinii4 i a siguran.ei datelor memorate-
Men.inerea consisten.ei i a siguran.ei "azelor de date !n situa.ia !n care mai mul.i utilizatori le
acceseaz concurent i !n condi.iile !n care pot s apar erori de func.ionare 3defecte4 ale sistemului de
calcul se "azeaz pe conceptul de tranzac.ie-
O tranzacie (transaction) este o unitate logic de prelucrare indivizi"il 3atomic4 a datelor unei "aze
de date prin care se asigur consisten.a acesteia-
9n principiu& orice e0ecu.ie a unui program care acceseaz o "az de date poate fi considerat o
tranzac.ie& dac "aza de date este !ntr$o stare consistent at;t !nainte c;t i dup e0ecu.ie- 6 tranzac.ie
tre"uie s asigure consisten.a "azei de date indiferent dac a fost e0ecutat individual sau concurent cu
alte tranzac.ii precum i !n condi.iile !n care au aprut defecte ale sistemului hard5are !n cursul e0ecu.iei
tranzac.iei-
6 opera.ie indivizi"il de acces la "aza de date este numit tranzac.ie i ea fie e0ecut cu succes toate
ac.iunile i se termin cu o validare a modificrilor efectuate asupra "azei de date 3commit4& fie nu poate
efectua 3din diferite motive4 toate ac.iunile i este a"andonat i anulat 3a"ort& roll"ac>4-
9n cazul !n care o tranzac.ie a efectuat cu succes toate ac.iunile i este validat& !n momentul validrii
toate modificrile efectute asupra "azei de date devin permanente 3dura"ile4& vor fi vizi"ile altor tranzac.ii
i nu mai pot fi anulate- /;n !n momentul validrii& modificrile efectuate de tranzac.ie au un caracter
provizoriu& nu sunt vizi"ile altor tranzac.ii i pot fi oric;nd revocate 3anulate4-
9n cazul a"andonrii unei tranzac.ii& e0ecu.ia acesteia este oprit i efectele tuturor ac.iunilor e0ecutate
p;n !n momentul a"andonrii sunt anulate& astfel !nc;t "aza de date este adus !n starea de dinaintea
lansrii tranzac.iei-
1.2. Proriet!ile tranzaciilor
Cele mai importante propriet.i ale tranzac.iilor sunt identificate !n literatur prin acronimul ACID:-
Atomicitatea 3atomicity4 este proprietatea unei tranzacii de a reprezenta o unitate de execuie
indivizibil, adic de a executa totul sau nimic. Dac o tranzac.ie este !ntrerupt dintr$o cauz oarecare&
atunci sistemul #BD va asigura& dup eliminarea cauzei care a !ntrerupt e0ecutarea tranzac.iei& fie
completarea i validarea tranzac.iei& fie a"andonarea tranzac.iei i anularea tuturor efectelor ac.iunilor
efectuate de tranzac.ie p;n !n momentul !ntreruperii-
"onsistena 3consistency4 unei tranzacii nseamn proprietatea acesteia de a eectua modiicri
corecte ale bazei de date- !u alte cuvinte, o tranzacie transorm baza de date dintr-o stare consistent
n alt stare consistent. 9n strile intermediare prin care trece o "az de date !n cursul unei tranzac.ii& este
posi"il s e0iste unele inconsisten.e& dar starea final !n care a2unge "aza de date dup e0ecu.ia unei
tranzac.ii tre"uie s fie consistent- #tarea unei "aze de date este consistent dac respect toate
constr;ngerile de integritate implicite sau e0plicite- #istemul #BD nu verific consisten.a "azei de date
4
dup fiecare opera.ie 3tranzac.ie4& ci este sarcina proiectan.ilor aplica.iilor de "aze de date ca opera.iile
prevzute !n tranzac.ii s produc o stare consistent a "azei de date-
Izolarea 3isolation4 este proprietatea unei tranzacii de a ace vizibile modiicrile eectuate numai
dup ce a ost validat 3committed4- Dac !n acest timp sunt e0ecutate alte tranzac.ii concurente& acestea
nu ?vd@ modificrile par.iale efectuate de tranzac.ia respectiv p;n !n momentul validrii tranzac.iei-
/roprietatea de izolare a tranzac.iilor este important deoarece elimin fenomenul de a"andonare !n
cascad a tranzac.iilor- Dac rezultatele par.iale ale unei tranzac.ii sunt vizi"ile altor tranzac.ii !nainte de
validarea acesteia i dac se !nt;mpl ca aceast tranzac.ie s fie a"andonat i anulat 3rollbac"4& atunci
toate tranzac.iile care au accesat rezultatele par.iale ale acesteia vor tre"ui s fie anulate: aceste opera.ii
de anulare pot produce& la r;ndul lor alte anulri& -a- Acest fenomen de anulare !n cascad creeaz un
efect de ?domino@- Izolarea este impus prin metode de control al concuren.ei& pe diferite niveluri de
izolare-
Durabilitarea 3durability4 este proprietatea prin care& dup validarea unei tranzac.ii& modificrile
efectuate de aceasta !n "aza de date nu vor mai fi pierdute datorit unor defectri ulterioare a sistemului-
/roprietatea de dura"ilitate este asigurat prin metode de refacere 3recovery4 ale sistemului #BD-
1.#. $t!rile tranzaciilor
Dac opera.iile de acces la "aza de date ale unei tranzac.ii sunt numai opera.ii de citire& acea tranzac.ie
se numete tranzac.ie de citire 3read$onl7 transaction4 i controlul concuren.ei unor astfel de tranzac.ii
este mult mai simplu- 9n cele ce urmeaz se va studia cazul general& al tranzac.iilor de citire i scriere
3read$5rite transactions4 care efectueaz at;t regsiri de date 3prin opera.ii de citire4 c;t i actualizri 3prin
opera.ii de scriere4& i care necesit tehnici de control al concuren.ei mult mai comple0e-
6pera.iile efectuate de o tranzac.ie i !nregistrate de administratorul de refacere 3recover7 manager4&
pentru a asigura cele patru propriet.i importante ale tranzac.iilor 3ACID4& sunt urmtoarele:
%- "egin: aceast opera.ie marcheaz !nceputul e0ecu.iei unei tranzac.ii-
*- read sau 5rite: sunt opera.ii de citire sau scriere a articolelor !n "aza de date& e0ecutate !n cadrul
unei tranzac.ii-
A- end: aceast opera.ie marcheaz terminarea opera.iilor de scriere sau citire din "aza de date& ceea ce
!nseamn c tranzac.ia se poate termina: totui& este posi"il s fie necesare unele opera.ii de verificare
!nainte de validarea 3commit4 tranzac.iei-
,- commit: aceast opera.ie semnaleaz terminarea cu succes a tranzac.iei& validarea tuturor
modificrilor efectuate !n "aza de date i vizi"ilitatea modificrilor efectuate pentru alte tranzac.ii: din
acest moment& modificrile efectuate nu mai pot fi anulate& nici pierdute printr$o defectare ulterioar a
sistemului 3"ine!n.eles& dac mecanismul de refacere al #BD$ului func.ioneaz corect4-
5
B- roll"ac> 3sau a"ort4: aceast opera.ie semnaleaz faptul c tranzac.ia a fost a"andonat i c orice
efect pe care tranzac.ia l$a avut asupra "azei de date tre"uie s fie anulat 3printr$o ?rulare !napoi@ a
opera.iilor4-
C- undo: aceast opera.ie este similar opera.iei roll"ac>& dar se aplic unei singure opera.ii& nu unei
!ntregi tranzac.ii-
D- redo: aceast opera.ie specific faptul c unele opera.ii ale unei tranzac.ii tre"uie s fie e0ecutate din
nou pentru a se putea valida !ntreaga tranzac.ie-
Ultimele dou opera.ii sunt necesare numai !n anumite tehnici de refacere-
9n figura de mai 2os este reprezentat diagrama de stare a unei tranzac.ii folosind lim"a2ul UM<& unde
fiecare stare are o denumire i fiecare opera.ie provoac o anumit tranzi.ie !ntre stri-
9n starea ACTI(A se a2unge ca urmare a lansrii unei tranzac.ii prin opera.ia "egin& iar e0ecu.ia corect
a opera.iilor read sau 5rite nu modific aceast stare- Atunci c;nd o tranzac.ie se termin& ea trece !n
starea /A)TIA< (A<IDATA !n care se efectueaz opera.ii de verificare impuse de tehnicile
3protocoalele4 de control al concuren.ei i de refacere- Dac am"ele verificri sunt !ndeplinite cu succes&
atunci tranzac.ia este validat 3prin e0ecu.ia unei opera.ii commit4 i trecut !n starea (A<IDATA: dac
una sau am"ele condi.ii nu sunt !ndeplinite& tranzac.ia este trecut !n starea ABA'D6'ATE prin e0ecu.ia
opera.iei a"ort- #tarea T=)MI'ATE este consecin.a imediat a atingerii uneia din strile (A<IDATE sau
ABA'D6'ATE i nu necesit nici o alt opera.ie pentru efectuarea acestei tranzi.ii- 9n cursul strii
ACTI(E& orice tranzac.ie poate fi a"andonat 3i trecut !n starea ABA'D6'ATE prin e0ecu.ia unei
opera.ii a"ort4& dac diferite verificri efectuate nu sunt !ndeplinite-
8ig- % Diagrama de stare a unei tranzac.ii-
/entru refacerea "azei de date !n condi.iile !n care unele tranzac.ii sunt a"andonate sau !n care pot
aprea defecte de func.ionare& sistemul #BD men.ine un fiier 2urnal& !n care memoreaz opera.iile
6
efectuate de tranzac.ii- 8iierul 2urnal este memorat pe disc i nu este afectat de diferite erori de e0ecu.ie&
cu e0cep.ia unei defectri catastrofice a discului- 9n plus& fiierul 2urnal este salvat periodic pe un suport
au0iliar 3"and magnetic4& ca o msur de prevedere pentru astfel de defecte catastrofice-
9n fiierul 2urnal se !nregistreaz opera.iile efectuate de fiecare tranzac.ie 3cu e0ceptia tranzactiilor de
tip "cp respectiv insert into4& identificat printr$un identificator unic 3T4 generat de sistem-
/rima !nregistrare referitoare la o tranzac.ie cu identificatorul T este !nregistrarea de start a tranzac.iei:
F"egin&TG- <a fiecare opera.ie 5rite3H4 e0ecutat de o tranzac.ie T& !n fiierul 2urnal se memoreaz o
!nregistrare de tipul F5rite&T&H&vecheaIvaloare&nouaIvaloareG& dac pentru refacerea datelor se folosesc
opera.ii undo& sau o !nregistrare de tipul F5rite&T&H&nouaI valoareG& dac se folosesc opera.ii redo-
#istemele care nu evit a"andonarea !n cascad a tranzac.iilor !nregistreaz !n fiierul 2urnal i opera.iile
de citire read3H4& printr$o !nregistrare de tipul Fread&T&H&valoareG-
/entru fiecare tranzac.ie T& !n fiierul 2urnal se mai memoreaz starea de terminare: validat 3printr$o
!nregistrare Fcommit&TG 4 sau anulat 3printr$o !nregistrareFroll"ac>&TG4- Dup e0ecutarea validrii i
!nregistrarea ei !n fiierul 2urnal& efectul tranzac.iei este permanent memorat !n "aza de date-
Dac sistemul se defecteaz& la reluarea e0ecu.iei dup !ndeprtarea defectului& sistemul #BD va
aduce "aza de date !ntr$o stare consistent prin e0aminarea fiierului 2urnal- Dat fiind c fiierul 2urnal
con.ine o !nregistrare pentru fiecare opera.ie de scriere care a modificat valoarea unui articol al "azei de
date& este posi"il de a anula efectul tuturor opera.iilor de scriere efectuate de o tranzac.ie care a fost
lansat dar nu a fost validat& parcurg;nd !napoi fiierul 2urnal i !nlocuind valoarea e0istent a articolului
modificat cu vechea valoare& memorat !n fiierul 2urnal- 9n cazul a"andonrii !n cascad& tre"uie s fie
a"andonate i tranzac.iile care au citit valori modificate de tranzac.iile a"andonate-
1.#.1.1.1. Tranzaciile n sistemele de baze de date distribuite
9n cadrul unei "aze de date distri"uite !n nodurile unei re.ele& accesul la multitudinea de o"iecte de date
se realizeaz de o"icei prin intermediul tranzac.iilor& care tre"uie s respecte regulile ACID-
Deoarece tranzac.iile care sunt e0ecutate !ntr$un sistem distri"uit pot prelucra fie date rezidente !ntr$un
singur loc& fie date amplasate !n sisteme distincte& vom distinge tranzacii locale %i tranzacii &lobale-
/rimele au acces la informa.iile con.inute !n o singur "az de date local i pot prelucra aceste
informa.ii- Tranzac.iile glo"ale realizeaz accesul la informa.ii amplasate !n mai multe "aze de date locale
i& desigur& pot prelucra aceste informa.ii-
)espectarea propriet.ilor ACID !n procesul e0ecu.iei tranzac.iilor locale reclam& practic& participarea
tuturor componentelor sistemului de gestiune a "azei de date implicate !n gestiunea tranzac.iilor-
Asigurarea consisten.ei unei tranzac.ii oarecare tre"uie dat de programatorul de aplica.ie& care codific
tranzac.ia- /entru respectarea atomicit.ii tranzac.iei& chiar dac apar defec.iuni& se poate folosi tehnica de
modificare Jam;nat@& sau tehnica modificrii imediate a "azei de date- 9n primul caz& modificrile aduse
"azei de date sunt !nregistrate !ntr$un J2urnal@& !ns e0ecu.ia tuturor opera.iunilor de !nregistrare din
7
tranzac.ie este am;nat p;n la comiterea par.ial a tranzac.iei 3reamintim c prin comitere par.ial
!n.elegem situa.ia !n care ac.iunea final a tranzac.iei a fost e0ecutat4- Modificarea imediat a "azei de
date const !n efectuarea schim"rilor "azei de date atunci c;nd tranzac.ia este !nc !n stare activ:
schim"rile aduse de tranzac.ii ce se gsesc !n stare activ se numesc modificri ne$comise-
)esponsa"ilitatea opera.iunilor de mai sus revine controlorului 3sau Jmanager@$ului4 de tranzac.ii- 9n fapt&
acest controlor& prin o"servarea memoriei secundare 3disc4& urmrete valorile vechi ale tuturor o"iectelor
de date asupra crora tranzac.ia a efectuat !nregistrri& iar dac tranzac.ia nu a completat e0ecu.ia sa&
restaureaz vechile valori astfel !nc;t aparent tranzac.ia nu ar fi fost niciodat e0ecutat- Dura"ilitatea este
!n sarcina controlorului de revenire 3sau de recuparare4- /rin gr2a acestui su"$sistem& modificrile aduse
"azei de date de ctre o tranzac.ie sunt !nregistrate pe disc !naintea completrii tranzac.iei- De asemenea&
este asigurat disponi"ilitatea unei informa.ii suficiente privind modificrile efectuate i !nregistrate pe
disc& astfel !nc;t actualizrile fcute s poat fi reconstruite atunci c;nd sistemul de "aze de date este
repornit dup o defec.iune- 9n sf;rit& controlorul concuren.ei este su"$sistemul care& printre altele& asigur
respectarea propriet.ii de izolare- /rintre tipurile de planificare ce contri"ue la sigurarea acestei
propriet.i men.ionm serializa"ilitatea de conflict i serializa"ilitate de vedere-
9n cazul tranzac.iilor glo"ale& men.inerea propriet.ilor ACID este sensi"il mai complicat& av;nd !n
vedere faptul c la e0ecu.ia unei planificri de tranzac.ii iau parte mai multe noduri ale unei re.ele-
Defec.iunile aprute !n unul sau mai multe din noduri& ca i defec.iunile canalelor de comunica.ie& vor
conduce aproape sigur la prelucrri incorecte ale informa.iilor-
Din arhitecura unei "aze de date distri"uite fac parte dou componente principale: controlorul de
tranzacii %i coordonatorul tranzaciilor- Aceste su"$sisteme sunt amplasate !n nodurile re.elei de
calculatoare-
'uncia controlorului de tranzacii const !n respectarea propriet.ilor ACID ale tranzac.iilor care
prelucreaz informa.ii memorate !n nodul cu care controlorul este asociat- Deoarece avem !n vedere o
"az de date distri"uit& se !n.elege c !n re.ea vor fi e0ecutate i tranzac.ii glo"ale& care efectueaz
opera.iuni asupra datelor depuse !n mai multe noduri- 9n acest proces vor cola"ora controloare de
tranzac.ii amplasate !n nodurile corespunztoare- 9ntr$un nod dat al re.elei& !n care se desfoar
prelucrarea concurent a unui numr de tranzac.ii& controlorul de tranzac.ii ocup un loc specific !n
activitatea algoritmului de control al concuren.ei- De asemenea& acest su"$sistem are responsa"ilitatea
con.inutului 2urnalului men.inut !n vederea revenirii dup defec.iuni-
<a r;ndul su& coordonatorul de tranzacii asociat unui nod& diri2eaz e0ecu.ia tranzac.iilor locale i
glo"ale ce sunt ini.iate i func.ioneaz !n nodul respectiv- 8unc.ia de coordonare men.ionat este specific
numai mediului distri"uit- 9n sarcina coordonatorului intr ini.ierea e0ecu.iei fiecrei tranzac.ii&
segmentarea tranzac.iilor !n scopul distri"uirii su"$tranzac.iilor o".inute !n noduri adecvate& precum i
coordonarea !ncheierii activit.ii fiecrei tranzac.ii- #e su"liniaz faptul c tranzac.iile glo"ale fie comit !n
8
toate nodurile !n care sunt e0ecutate su"$tranzac.iile din care sunt formate& fie sunt a"andonate !n toate
nodurile-
9n legtur cu defectele ce apar uneori !n sistemele centralizate& inclusiv !n cele care prelucreaz "aze
de date& tre"uie men.ionate erorile de echipament 3Jhard5are@4& erorile programelor& deterioararea
sistemelor de discuri magnetice- Tema defec.iunilor posi"ile !ntr$un sistem distri"uit care gzduete o
"az de date are particularit.i evidente- Deterioarea componentelor unui nod& defec.iuni ale liniilor de
comunica.ie& pertur"area manierei ini.iale de parti.ionare a re.elei& coruperea mesa2elor prin erori sunt
tipurile principale de defecte ce au loc !n mediu distri"uit- Atunci c;nd se defecteaz mediul de
comunica.ie& mesa2ele transmise !ntre noduri sunt de o"icei re$rutate- 9n ipoteza dispari.iei cone0iunii
!ntre dou noduri& re.eaua va fi parti.ionat din nou- =rorile care apar !n mesa2e sunt tratate de
protocoalele de control al procesului de comunica.ie& de e0emplu TC/KI/-
/rocesarea tranzac.iilor are ca scop pstrarea integrit.ii "azei de date- Tre"uie !ns precizat c
mecanismele tranzac.ionale nu sunt singurele care se ocup de pstrarea integrit.ii- Mai precis&
procesarea tranzac.iilor se refer doar la dou aspecte:
)ecuperarea "azei de date dup un incident 3data"ase recover74 $ se "azeaz pe inducerea unui anumit
nivel de redundan. prin memorarea istoriei tranzac.iilor !ntr$un aa$numit L2urnalL 3log4- Desi acest
aspect nu face su"iectul lucrrii de fa.& anumite elemente tehnice privind 2urnalizarea vor fi utilizate !n
con.inuare-
Controlul interferen.elor care pot avea loc !ntre tranzac.iile care se e0ecut !n mod concurent
3concurrenc7 control4 $ este un aspect critic !n sistemele de aplica.ii 6<T/ 36n$<ine Transaction
/rocessing4- =ste vor"a despre LcontrolulL 3i nu neaprat LevitareaL4 interferen.elor deoarece& dei
!ntotdeauna nedorite& aceste interferen.e pot fi permise $ !n anumite forme "ine precizate $ pentru a crete
performan.ele sistemului-
/entru a echili"ra c;t mai "ine performan.a i siguran.a& constructorii de sisteme de gestiune a "azelor
de date au dezvoltat mai multe procedee prin care interferen.ele !ntre tranzac.iile concurente s poat fi
controlate- Cel mai rsp;ndit este mecanismul "azat pe "locarea 3loc>ing4 unor por.iuni ale "azei de date
pentru a interzice altor tranzac.ii accesul la datele respective pe durat unor opera.iuni critice efectuate de
o tranzac.ie- 6 alt metod este cea "azat pe aplicarea unor Lmrci de timpL 3timestamping4 asupra
tranzac.iilor i a o"iectelor implicate !n tranzac.ii- Am"ele procedee 3precum i procedeele Lhi"rideL4
pornesc de la premisa pesimist c interferen.ele nedorite sunt oric;nd posi"ile i chiar pro"a"ile& deci se
"azeaz pe prevenirea lor- =0ist !ns i o a"ordare optimist& care pleac de Lprezum.ia de nevinov.ieL
i care !ncearc doar s depisteze i s rezolve conflictele !n cazul !n care acestea apar- Toate metodele au
avanta2e i dezavanta2e& fiecare dintre ele se preteaz la anumite aplica.ii i sunt inaccepta"ile !n cazul
altora-
9
1.(. "oncurena si consistena datelor
/rincipala gri2 a unui sistem de gestiune a "azelor de date multiuser este modul cum controleaz
concuren.a sau accesul simultan la aceleai date de ctre mai mul.i utilizatori- 8r un control adecvat al
concuren.ei& datele pot fi actualizate i schim"ate necorespunzator compromi.;nd integritatea datelor-
Dac mai mul.i utilizatori acceseaz aceeai dat& o cale de a gestiona concuren.a este de a face ca
fiecare s$i astepte r;ndul-
#copul sistemului de gestiune a "azelor de date este de a face aceast ateptare ine0istent sau
negli2a"il pentru fiecare utilizator- Toate comenzile de manipulare a datelor 3DM<4 vor tre"ui efectuate
astfel !nc;t s fie prevenit interac.iunea distructiv !ntre tranzac.iile concurente-
Interac.iunea distructiv este oricare interac.iune care actualizeaz incorect date sau modific incorect
structura datelor-
Aceste pro"lem se rezolv folosind un tip variat de "locri i un modul de consisten. multiversiune:
$ !itirea consistent& face urmtoarele: garanteaz c setul de date consultate de o comanda este
consistent cu respectarea unui singur moment de timp i nu se schim" !n cursul e0ecu.iei comenzii 3citire
consistenta la nivel de comanda4: asigur c cititorii datelor nu ateapt pentru scriere sau dupa al.i cititori
ai aceleai date: asigur c cei care scriu !n "aza de date nu ateapt numai dup al.ii care scriu dac
acetia !ncearc s actualizeze r;nduri identice !n tranzac.ii concurente-
Modul simplu !n care se !n.elege implementarea citirii consistente este de a se imagina c fiecare
utilizator opereaz o copie privat a "azei de date& de aici modelul de consisten! multiversiune-
$ !itirea consistent, se#mentele rollbac" $i tranzaciile. /entru a gestiona modelul consisten.
multiversiune& se creaz un set de date citire consisten. c;nd o ta"el este interogat 3citit4 sau
actualizat 3scris4 simultan- Cind se intilneste o actualizare& valorile originale ale datelor schim"ate prin
actualizare s;nt scrise !n segmentul roll"ac> al "azei de date- At;ta timp c;t aceste actualizri ram;n parte
a unei tranzactii nerealizate& oricare utilizator care mai tirziu interogheaz datele modificate vede valorile
originale ale datelor- 'umai c;nd o tranzac.ie este comis schim"rile tranzac.iei s;nt fcute permanente-
Comenzile lansate dup ce tranzac.ia utilizatorului este realizat vd numai schim"rile fcute prin
intermediul tranzac.iei realizate-
$ %ranzactii read-only. Aceasta sta"ilete c setul de date returnat de o singur cerere este consistent
cu respectarea unui moment de tip- Totui& !n anumite situa.ii& se poate cere citire consistent la nivel de
tranzac.ie $ capacitatea de a rula mai multe cereri !ntr$o singur tranzac.ie& toate fiind citiri consistente cu
respectarea aceluiai moment de timp astfel inc;t cererile acestei tranzac.ii s nu vad efectele intervenite
prin tranzac.iile efectuate- Dac se doreste rularea unui numr de cereri !ntre ta"ele multiple i nu se
dorete actualizarea se prefer tranzac.iile read$onl7- Dup indicarea c tranzactia este read$onl7& se pot
10
e0ecuta mai multe cereri !ntre orice ta"ele& cunosc;nd c rezultatul oricrei cereri este consistent cu
respectarea aceluiai moment de timp-
$ &ecanismul de blocare. Blocarea este un mecanism cu inten.ia de a preveni interac.iunile
distructive !ntre utilizatorii care acceseaz date& ea realizeaz dou scopuri importante ale "azei de date:
consisten.a $ asigur c& datele unui utilizator sau schim"rile nu s;nt efectuate p;n c;nd utilizatorul nu
termin cu datele& integritatea $ asigur c datele "azei de date i structurile reflect toate schim"rile
fcute !n acestea !n secven.a corect- Blocarea garanteaza integritatea datelor prin furnizarea accesului
concurent ma0im la date pentru un numr nelimitat de utilizatori-
1.). Anomalii de e*ecuie concurent! a tranzaciilor
/entru studierea controlului concuren.ei i al refacerii datelor se vor a"orda opera.iile asupra "azei de
date la nivel de articol de date 3data item4 i "loc de memorare pe disc- <a acest nivel& opera.iile de acces
la "aza de date care pot s apar !n cursul unei tranzac.ii sunt:
M read3H4: citete articolul H din "aza de date !ntr$o varia"il a programului: pentru simplificarea
nota.iilor se va considera c varia"ila !n care se citete articolul H este notat& de asemenea& cu H-
M 5rite3H4: scrie varia"ila de program H !n articolul H al "azei de date-
Tranzac.iile lansate de diferi.i utilizatori se pot e0ecuta concurent i este posi"il s actualizeze aceleai
articole ale "azei de date- Dac e0ecu.ia concurent a tranzac.iilor este necontrolat& este posi"il ca "aza
de date s a2ung !ntr$o stare inconsistent 3incorect4& chiar dac fiecare tranzac.ie !n parte este un
program corect& a fost e0ecutat corect i nu au aprut defecte de func.ionare ale sistemului-
Actualizare ierdut! 3lost update4- 9n figura de mai 2os& este prezentat una din cele c;teva situa.ii
posi"ile de inconsisten. a datelor memorate atunci c;nd dou sau mai multe tranzac.ii sunt e0ecutate
concurent& dar !ntr$un mod necontrolat- Cele dou tranzac.ii T
%
i T
*
actualizeaz acelai articol 3H4 al
"azei de date i se e0ecut concurent prin parta2area 3i !ntre.eserea4 timpului de e0ecu.ie al procesorului-
8ig- * Inconsisten.a datelor provenit din e0ecu.ia concurent necontrolat a dou tranzac.ii: a $
actualizare pierdut: b $ citire improprie-
/entru modul de !ntre.esere !n timp a celor dou tranzac.ii prezentate !n figura de mai sus& a valoarea
memorat !n articolul H !n "aza de date este HNM& !n locul valorii corecte HO'NM 3H fiind valoarea
11
ini.ial a articolului& !nainte de lansarea tranzac.iilor4- Actualizarea efectuat de tranzac.ia T
%
a fost
pierdut& dat fiind c tranzac.ia T
*
folosete valoarea ini.ial a articolului H& !nainte ca valoarea calculat
de T
%
3HO'4 s fie memorat !n "aza de date- Acest tip de func.ionare concurent incorect se numete
actualizare pierdut-
Citire improprie 3dirty read4- 9n figura de mai sus unde in cazul b este e0emplificat o alt situa.ie de
inconsisten. a datelor& cunoscut su" denumirea de citire improprie - dirty read& sau dependen
nevalidat - uncommited dependence sau actualizare temporar - temporary update- Aceast anomalie
poate s apar atunci c;nd una din tranzac.ii este a"andonat& iar alt tranzac.ie concurent a utilizat
articolele modificate& !nainte de readucerea acestora la valoarea ini.ial- 9n acest e0emplu tranzac.ia T
%
a
modificat articolul H& dup care a fost a"andonat dintr$o cauz oarecare& dar tranzac.ia T
*
a citit i a
utilizat articolul modificat H& !nainte ca acesta s fie readus la valoarea sa ini.ial- )ezultatul celor dou
tranzac.ii este valoarea H 1 ' N M& !n locul valorii corecte& H N M-
Citire irepetabil 3nonrepetable read4- 6 alt pro"lem de inconsisten. a datelor& cunoscut su"
numele de citire irepetabil 3nonrepetable read& sau analiz inconsistent $ inconsistent analysis4& poate
s apar dac o tranzac.ie T citete un articol de dou ori& iar !ntre cele dou citiri& o alt tranzac.ie 3TP4 a
modificat chiar acel articol- 9n aceast situa.ie tranzac.ia T primete dou valori diferite ale aceluiai
articol-
Citire fantom 3p'antom read4- Asemntoare pro"lemei citirii irepeta"ile este pro"lema citirii
fantom& care apare atunci c;nd o tranzac.ie prelucreaz un set de linii rezultat al unei interogri: dac !n
timpul acestei prelucrri o alt tranzac.ie a inserat sau a ters o linie care satisface condi.ia interogrii
respective& atunci pot s apar sau s dispar linii din mul.imea de linii rezultat& comportare asemntoare
cu apar.ia sau dispari.ia fantomelor-
Diferen.a dintre citirea fantom i citirea irepeta"il este aceea c citirea fantom apare dac
tranzac.iile concurente modific numrul de linii utilizate de tranzac.ia curent 3prin instruc.iuni I'#=)T
sau D=<=T=4& pe c;t vreme citirea irepeta"il apare dac tranzac.iile concurente modific valorile din
liniile e0istente i prelucrate de tranzac.ia curent 3prin instruc.iuni U/DAT=4-
Astfel de anomalii& care pot s apar la e0ecu.ia concurent necontrolat a dou sau mai mai multor
tranzac.ii& eviden.iaz necesitatea controlului concuren.ei !n "azele de date-
Consisten.a datelor memorate !n "aza de date tre"uie s fie asigurat chiar !n condi.iile !n care o
tranzac.ie nu poate fi terminat cu succes& datorit apari.iei unei erori de func.ionare-
1.+. Te,nici de control al concurenei
Controlul e0ecu.iei concurente a mai multor tranzac.ii este necesar pentru a asigura propriet.ile
ACID- Controlul concuren.ei se poate realiza prin protocoale 3set de reguli4 impuse tranzac.iilor astfel
!nc;t& dac acestea sunt respectate de fiecare tranzac.ie& orice planificare !n care astfel de tranzac.ii
12
particip este serializa"il i& deci& corect- Cele mai utilizate tehnici de control al concuren.ei sunt cele
"azate pe "locarea datelor prin intermediul zvoarelor 3loc"s4 i cele "azate pe mrci de timp
3timestamps4- /rotocoalele de control al concuren.ei sunt implementate de sistemele de gestiune a "azelor
de date astfel !nc;t programatorii de aplica.ii nu opereaz !n mod e0plicit cu zvoare sau mrci de timp& ci
sta"ilesc op.iunile prin care sistemul #BD adopt anumite tehnici de control al concuren.ei-
1.+.1. "ontrolul concurenei
Controlul concuren.ei tranzac.iilor prin "locare 3concurrency control usin# loc"in# tec'ni(ue4 se
realizeaz folosind zvoare- Un zvor 3loc"4 este o varia"il asociat cu un articol al unei "aze de date
care descrie starea acelui articol !n raport cu opera.iile care se pot aplica acelui articol- /entru un articol
H& zvorul care controleaz accesul la acel articol va fi notat <3H4- 9n sistemele de gestiune a "azelor de
date se pot utiliza dou tipuri de zvoare& zvoare "inare i zvoare cu stri multiple- Un zvor binar
3binary loc"4 poate avea dou stri: li"er 3sau ne"locat $ ree& unloc"ed4 i ocupat 3sau "locat - busy&
loc"ed4 sau& mai simplu& strile % i +- Asupra unui zvor <3H4se pot e0ecuta dou opera.ii: opera.ia de
"locare& loc>3H4 i opera.ia de eli"erare& unloc>3H4-
Dac zvorul articolului H este de2a "locat 3<3H4Q+4& atunci opera.ia de "locare loc> pune !n ateptare
tranzac.ia p;n c;nd zvorul se eli"ereaz- Dac zvorul este li"er 3<3H4Q%4& atunci tranzac.ia
achizi.ioneaz zvorul& trec;ndu$l !n starea ocupat& dup care e0ecut opera.iile necesare asupra
articolului H- Dup terminarea opera.iilor asupra acelui articol& tranzac.ia eli"ereaz zvorul& prin
e0ecu.ia opera.iei unloc>-
Dac zvorul a fost ocupat& tranzac.ia ateapt p;n ce acesta este eli"erat 3de o alt tranzac.ie& care i$
a terminat opera.iile de acces la acel articol4& dup care e0ecut aceeai secven. de opera.ii: "locarea
zvorului& e0ecu.ia opera.iilor care acceseaz articolul respectiv i eli"erarea zvorului- /entru ca& !n orice
moment de timp& cel mult o tranzac.ie s de.in un anumit zvor& tre"uie ca opera.ia de "locare s fie
e0ecutat ca opera.ie indivizi"il- Acest cerin. este implementat prin instruc.iuni speciale ale
procesorului 3de tip TestAnd#et3T#44- #e pot preciza urmtoarele reguli 3protocolul4 pe care tre"uie s le
urmeze fiecare tranzac.ie care folosete zvoare "inare:
%- 6 tranzac.ie T tre"uie s lanseze o opera.ie de "locare a zvorului asignat articolului H 3loc>3H44&
!nainte de a efectua orice opera.ie de citire 3read3H44 sau de scriere 35rite3H44 a articolului H-
*- 6 tranzac.ie T tre"uie s eli"ereze zvorul unui articol H 3prin opera.ia unloc>3H44 dup ce a
efectuat toate opera.iile de citire 3read3H44 sau de scriere 35rite3H44 a articolului H-
A- 6 tranzac.ie T nu poate cere un zvor pe care !l de.ine de2a-
,- 6 tranzac.ie T nu poate eli"era un zvor pe care nu !l de.ine-
13
9ntre opera.ia de "locare 3loc>3H44 lansat de o tranzac.ie T i opera.ia de eli"erare 3unloc>3H44 a unui
zvor <3H4& tranzac.ia T deine zvorul respectiv- 9n cazul zvoarelor "inare& cel mult o tranzac.ie poate
de.ine un zvor la un moment dat& i nici o alt tranzac.ie nu poate accesa articolul respectiv- #e poate
spune c zvoarele "inare realizeaz un mecanism de excludere mutual& prin care accesul unei tranzac.ii
la un articol 3tranzac.ia care de.ine zvorul acelui articol4 e0clude accesul altor tranzac.ii la acel articol-
Dei este foarte general i relativ simplu de utilizat& tehnica zvoarelor "inare este prea restrictiv i
limiteaz !n mod ne2ustificat concuren.a !n e0ecu.ia tranzac.iilor- De e0emplu& mai multe tranzac.ii pot
efectua opera.ii de citire !n mod concurent& fr ca acest lucru s afecteze consisten.a "azei de date& dar
acest lucru este interzis !n tehnica zvoarelor "inare- De aceea& multe sisteme de gestiune a "azelor de
date utilizeaz zvoare cu stri multiple-
1.+.2. Analiza controlului concurenei
Dac fiecare tranzac.ie lucreaz pe r!nd& se pierde timp c;nd calculatorul st s atepte terminarea unei
opera.ii de intrareKieire& sau !n timpul altei !ntreruperi- /e de alt parte& dac lsm s lucreze deodat&
fiecare !n timpul lsat li"er de cel dinnainte& zicem c avem tranzac.ii concurente- Concuren.a va mri
randamentul timpului de lucru al calculatorului dar ea tre"uie controlat! pentru c altfel poate da natere
la inconsisten.-
)xemple de pierdere a consistenei.
$ =0emplu de ierdere a actualiz!rii-
# considerm dou tranzac.ii de tip L)ezervareL& )% i )*& care se e0ecut !n mod concurent i care&
!nt;mpltor& se refer la acelai z"or R- 6 posi"il succesiune temporal a evenimentelor ar putea fi
urmtoarea:
t% $ )%: )ead R
t* $ )*: )ead R
tA $ )%: Srite R
t, $ )*: Srite R
Citirile efectuate de cele dou tranzac.ii vor gsi linia !n aceeai stare- # presupunem c valoarea
c;mpului (I'DUT este *B- Am"ele tranzac.ii vor seta varia"ilele lor locale v!ndut la valoarea *B-
Actualizarea efectuat de tranzac.ia )% la momentul tA va modifica valoarea c;mpului la *C- <a
momentul t,& tranzac.ia )* actualizeaz i ea linia R& plas;nd !ns !n c;mpul (I'DUT aceeai valoare- #e
realizeaz dou rezervri& dar numrul locurilor v;ndute crete doar cu o unitate- Dac numrul
solicitrilor este mare& este foarte pro"a"il c va fi v;ndut un loc !n plus la cursa respectiv-
$ =0emplu de ?dirt7 read@ sau ?uncommitted dependency@-
t1 - R2: Read Z
t2 - R2: Write Z
t3 - R1: Read Z
t4 - R2: ROLLBACK
14
t5 - R1: Write Z
9n aceast situa.ie& tranzac.ia )% va avea !n varia"ilele locale rezultatul scris de tranzac.ia )* la
momentul t*- Anularea tranzac.iei )* va provoca revenirea liniei R la valorile dinainte de momentul t*- 9n
acest caz& tranzac.ia )% !i va "aza ac.iunile viitoare pe nite valori care& practic& nu au e0istat niciodat !n
"aza de dateT
$ =0emplu de ?inconsistent anal7sis@-
(om considera ta"ela C<I='T& asupra creia se e0ecut !n mod concurent dou tranzac.ii- Tranzac.ia
T% calculeaz suma total !ncasat de la pasagerii cursei R& !n timp ce tranzac.ia T* transfer o anumit
sum 0 din contul unui client CA !n contul unui client C% 3care s$a !nt;mplat c au z"urat !mpreun4- 9n
mod normal suma total ar tre"ui s fie aceeai indiferent !n care cont se afla suma 0- # presupunem c
soldurile clientilor C%& C* i CA sunt *++& %++ i respectiv A++& iar 0 este *+-
Dar iat ce se poate !nt;mpla:
t% $ T%: )ead C% 3sold Q *++& total Q *++4
t* $ T%: )ead C* 3sold Q %++& total Q A++4
tA $ T*: )ead CA 3sold Q A++4
t, $ T*: Srite CA 3sold Q *U+4
tB $ T*: )ead C% 3sold Q *++4
tC $ T*: Srite C% 3sold Q **+4
tD $ T*: Commit
tU $ T%: )ead CA 3sold Q *U+& total Q BU+4
---
/entru clientii C%& C* i CA totalul ar fi tre"uit s fie& desigur& C++- =ste evident c suma total va fi
greit- #pre deose"ire de celelalte dou cazuri prezentate& nu mai este vor"a despre citirea unor valori
actualizate de o tranzac.ie !nainte de comiterea acesteia- T% nu citete nimic !n timpul dintre momentul
!nceperii tranzac.iei T* i p;n la comiterea acesteia- /ro"lema provine din faptul c T% a citit unul dintre
conturi !nainte de transfer iar pe cellalt dup transfer-
9n toate cele trei cazuri& anomaliile sunt provocate de interferen.ele dintre tranzac.ii care se e0ecut !n
mod concurent- 6 metod simpl 3"a chiar simplist---4 de evitare a acestor interferen.e ar fi e0ecutarea
complet a tranzac.iilor !n ordinea !nceperii lor- 9n acest caz !ns performan.ele serverului de date ar fi
afectate !n mod inaccepta"il- Ar fi ca i cum !ntr$un mare magazin cu autoservire clien.ii ar fi lsa.i
!nuntru unul c;te unul& fiecare dup ce clientul precedent i$a terminat toate cumprturile-
'u putem& deci& lsa concuren.a necontrolat& dar nici nu este profita"il s o desfiin.m de tot- #punem
c un plan de tranzac.ii este serial c!nd tranzac.iile se e0ecut una dup alta fr a intercala opera.ii din
alt tranzac.ie- #punem c un plan de tranzac.ii este neserial c;nd tranzac.iile s!nt concurente& adic !ntre
opera.iile unei tranzac.ii se intercaleaz opera.iile alteia- (om spune c un plan de tranzac.ii este corect
atunci c;nd el are ca rezultat acelai cu unul e0ecutat serial: acesta se va numi serializabil- Ave.i de2a
e0emple de planuri neserializa"ile-
15
Am vzut c pro"lemele apar atunci c;nd o tranzac.ie VvedeP 3citete4 sau scrie !ntr$un moment
nepotrivit- Ideile de a controla concuren.a s!nt legate de a nu lsa pe cellalt 3de a bloca4 sau de a .ine
cont de momente 3de a marca timul4-
1.+.#. $erializabilitate
#e numete planificare 3sc'edule4 oricare ordine posi"il de e0ecutare a opera.iilor grupului de
tranzac.ii considerat-
Dac presupunem c fiecare tranzac.ie !n parte din grup este corect& atunci orice planificare serial a
tranzac.iilor 3una dup alta& indiferent de ordine4 este corect- Dei afirma.ia este intuitiv& se poate
2ustifica uor prin faptul c orice program e0ecut o secven. de tranzac.ii 3deci niciodat dou tranzac.ii
simultan4- Aadar& tranzac.iile din grupul considerat sunt e0ecutate de programe diferite 3sunt deci
independente4& ordinea e0ecu.iei lor fiind irelevant 3de regul 8I86: first in& first out4-
9n cazul !n care se e0ecut opera.ii ale unei tranzac.ii !n timp ce e0ecu.ia altor tranzac.ii nu a fost !nc
!ncheiat avem de$a face cu o planificare intercalat 3interleaved4& caz !n care este posi"il ca e0ecu.ia s
nu fie corect 3cum a fost cazul celor trei e0emple prezentate la !nceput4-
Dou planificri ale unui grup de tranzac.ii sunt echivalente dac vor produce mereu acelai rezultat&
oricare ar fi starea ini.ial a "azei de date 3aceasta !nseamn& de fapt& c opera.iile conflictuale sunt !n
aceeai ordine4-
6 planificare este serializa"il dac este echivalent cu o planificare serial- 6rice planificare serial
fiind corect& !nseamn c am gsit criteriul de corectitudine cutat- =0ecu.ia unui grup de tranzac.ii este
corect dac s$a fcut conform unei planificri serializa"ile- # remarcm c nici una dintre planificrile
utilizate ca e0emple pentru cele trei anomalii nu este serializa"il-
6 caracterizare mai pu.in riguroas& dar mult mai intuitiv a caracterului serializa"il este urmtoarea:
6ricare ar fi dou tranzac.ii A i B dintr$o planificare a unui grup de tranzac.ii concurente& fie A precede
logic pe B& fie B precede logic pe A- 8aptul c LA precede logic pe BL !nseamn c B poate vedea
rezultatele e0ecu.iei tranzac.iei A- Deci& dac considerm toate o"iectele vzute de tranzac.ia A& atunci B
vede toate aceste o"iecte fie modificate de2a de A& fie !n forma !n care erau !nainte ca modificrile s se
produc& dar niciodat ca un amestec de o"iecte modificate i o"iecte nemodificate-
LTeorema seria"ilittiiL 3sau La "locrii !n dou fazeL4:
*ac toate tranzaciile unui #rup de tranzacii concurente sunt bine ormate $i respect protocolul de
blocare n dou aze, atunci orice planiicare le#al este serializabil.
Demonstra.ia nu este dificil 3o variant se "azeaz pe graful de precedent al planificrii i se
desfsoar prin reducere la a"surd4- Importante sunt !ns condi.iile:
6 tranzac.ie este L"ine formatL dac orice opera.ie a tranzac.iei este acoperit de o "locare i toate
"locrile sunt eli"erate- 6 opera.ie 3citire sau scriere4 este Lacoperit de o "locareL dac tranzac.ia de.ine
o "locare suficient de puternic a o"iectului asupra cruia se desfsoar opera.ia-
16
6 planificare este LlegalL dac nu se desfsoar !n condi.iile unor "locri conflictuale-
1.+.(. Te,nici otimiste.
'u !ntotdeuna este necesar s pierdem timp !n calculator control;nd concuren.a- Atunci c;nd
conflictele !ntre tranzac.ii s!nt rare putem adopta aa$numitele tehnici optimiste- Asta !nseamn s lsm
tranzac.iile s ruleze fr s impunem !nt;rzieri care s asigure serializa"ilitatea& iar c;nd o tranzac.ie vrea
s fac VcommitP s efectum un control care s determine dac a avut loc un conflict- Dac a avut loc un
conflict& tranzac.ia tre"uie !ntrerupt i restartat- /entru c am spus c aceeste conflicte s!nt rare& aceste
!nteruperi i restartri vor fi& i ele& rare-
Distingem trei faze ale unui control optimist al concuren.ei-
+aza de citire. Aceast faz dureaz de la !nceputul tranzac.iei p;n !nainte de VcommitP- Tranzac.ia
citete valorile de care are nevoie din "aza de date i le stocheaz in varia"ile locale- Actualizrile nu s!nt
fcute direct !n "aza de date ci !ntr$o copie local-
+aza de validare. Urmeaz dup faza de citire i controleaz dac nu s1ar !nclca serializa"ilitatea !n
cazul c s$ar aplica actulizarea !n "aza de date- Dac avem o tranzac.ie care numai citete "aza 3adic nu
scrie4& controlul const !n a verifica dac datele citite s!nt !nc datele curente !n "az i& dac este aa&
atunci se face VcommitP& altfel se !ntrerupe i se reia mai t;rziu- Dac tranzac.ia face i rescrieri !n "az&
atunci se verific dac se pstreaz serializa"ilitatea i dac "aza de date rm;ne !ntr$o stare consistent:
dac acest lucru nu se !nt;mpl& atunci se !ntrerupe-
+aza de scriere. =ste o faz care este necesar numai la tranzac.iile care fac rescrieri- Dac faza
anterioar s$a terminat cu succes& atunci actualizrile efectuate !n copia local& s!nt !nregistrate definitiv !n
"aza de date-
Iat cum se desfoar acest tip de control:
8iecrei tranzac.ii !i este ataat& la !nceputul primei faze& un marca2 start3T4& la !nceputul celei de a
doua faze& valid3T4 i la sf;rit fin3T4& dup scriere !n copia local& dac este cazul- Ca s treac faza de
validare tre"uie s avem una din urmtoarele situa.ii:
Toate tranzac.iile cu un marca2 mai mic& tre"uie s se fi terminat !nainte ca tranzac.ia T s fi !nceput:
adic fin3#4 W start3T4-
Dac tranzac.ia start3#4 W start3T4 3# a !nceput !naintea lui T4 i nu s$a terminat adic fin3#4 W fin3T4
atunci datele scrise de tranzac.ia anterioar # nu s!nt cele citite de cea curent T i tranzac.ia anterioar #
!i completeaz faza de scriere !nainte ca tranzac.ia curent T s intre !n faza de validare adic start3T4 W
fin3#4 W valid3T4-
Dei tehnicile optimiste s!nt eficiente c;nd conflictele s!nt rare totui pot aprea multe reluri
3roll"ac>4: s re.inem c aceste reluri nu s!nt !n cascad pentru c se lucreaz pe o copie local-
17
Ce ne facem dac apar situa.ii inconsisten.eX Tre"uie s putem recupera "aza de date !ntr$o stare
anterioar consistent-
#.#.(. Bloc!ri
9n a"sen.a unor mecanisme de control al concuren.ei pot aprea fenomene nedorite& care pot conduce
la rezultate eronate sau la coruperea consisten.ei "azei de date-
9n toate cele trei e0emple & anomaliile sunt provocate de interferen.ele dintre tranzac.ii care se e0ecut
!n mod concurent- 6 metod simpl 3"a chiar simplist---4 de evitare a acestor interferen.e ar fi e0ecutarea
complet a tranzac.iilor !n ordinea !nceperii lor- 9n acest caz !ns performan.ele serverului de date ar fi
afectate !n mod inaccepta"il- Ar fi ca i cum !ntr$un mare magazin cu autoservire clien.ii ar fi lsa.i
!nuntru unul c;te unul& fiecare dup ce clientul precedent i$a terminat toate cumprturile-
/entru a echili"ra c;t mai "ine performan.a i siguran.a& constructorii de sisteme de gestiune a "azelor
de date au dezvoltat mai multe procedee prin care interferen.ele !ntre tranzac.iile concurente s poat fi
controlate- Cel mai rsp;ndit este mecanismul "azat pe "locarea 3loc"in#4 unor por.iuni ale "azei de date
pentru a interzice altor tranzac.ii accesul la datele respective pe durat unor opera.iuni critice efectuate de
o tranzac.ie- 6 alt metod este cea "azat pe aplicarea unor Lmrci de timpL 3timestampin#4 asupra
tranzac.iilor i a o"iectelor implicate !n tranzac.ii- Am"ele procedee 3precum i procedeele Lhi"rideL4
pornesc de la premisa pesimist c interferen.ele nedorite sunt oric;nd posi"ile i chiar pro"a"ile& deci se
"azeaz pe prevenirea lor-
Ideea pe care se "azeaz tehnica "locrii este foarte simpl: o tranzac.ie care a !nceput s opereze
asupra unor date tre"uie s interzic accesul altor tranzac.ii la datele respective p;n !n momentul !n care
opera.ia se !ncheie- 9n acest timp& datele sunt L.inute su" cheieL 3to loc" $ a !ncuia& a zvor!4- Controlul
"locrii datelor este asigurat de o component a #BD$ului numit ,oc" &ana#er 3<M4- 9n momentul !n
care o tranzac.ie T dorete s acceseze un anumit o"iect al "azei de date 3pies de date4& va cere
componentei <M "locarea o"iectului- Dac o"iectul este "locat de o alt tranzac.ie& tranzac.ia T va fi pus
!n stare de ateptare 3-ait4 p;n c;nd o"iectul este eli"erat-
# re$analizm a doua anomalie prezentat !n sec.iunea precedent 3uncommitted dependenc74- <a
momentul t% tranzac.ia )* "locheaz linia R- <a momentul tA& tranzac.ia )% cere la r;ndul ei "locarea
liniei R dar& linia fiind de2a "locat de )*& este pus !n stare de ateptare- <a momentul t,& tranzac.ia )*
se termin 3prin )6<<BACY4 i eli"ereaz linia R- A"ia acum )% o".ine "locarea liniei R i poate s o
acceseze- Datele asupra crora ac.ioneaz acum )% sunt LcurateL 3efectele tranzac.iei )* au fost anulate4&
deci anomalia a fost evitat-
#e poate o"serva cu uurin. c aceast modalitate de "locare este prea restrictiv- Anomaliile apar
doar !n cazul actualizrilor datelor& ceea ce sugereaz c o rafinare a tehnicii implic folosirea a dou
tipuri de "locri:
18
Blocare artajat! 3s'are loc" sau . loc"4 $ /ermite citirea o"iectului dar interzice modificarea
acestuia& motiv pentru care mai este numit L"locare pentru citireL 3read loc"4- Mai multe tranzac.ii pot
"loca simultan pentru citire un anumit o"iect-
Blocare e*clusiv! 3exclusive loc" sau / loc"4 $ Interzice accesul altor tranzac.ii la o"iectul "locat& fie
pentru citire& fie pentru modificare- Blocarea e0clusiv este mai LtareL dec;t "locarea parta2at& fiind
folosit doar pentru actualizri& motiv pentru care mai este numit L"locare pentru scriereL 3-rite loc"4-
#e poate o"serva c anumite cereri de "locare asupra unui o"iect pot fi compati"ile sau nu& !n functie
de tipul "locrii- Compati"ilitatea cererilor de "locare poate fi e0primat sintetic printr$o matrice de
compati"ilitate-
6 situa.ie special este cea !n care o tranzac.ie "locheaz pentru citire un o"iect i dorete s o".in o
"locare e0clusiv- Dac o"iectul respectiv nu este "locat parta2at i de ctre alte tranzac.ii& "locarea
e0clusiv este o".inut de tranzac.ia !n cauz- /rocedeul de numete Lpromovarea "locriiL 3loc"
promotion4-
# ne oprim pu.in pentru c;teva o"serva.ii:
a- 9n cazul celor mai multe #BD$uri& "locarea este implicit: orice opera.ie asupra datelor este
automat precedat de cererea pentru o".inerea "locrii datelor respective 3. loc" pentru citire& / loc"
pentru actualizare $ !nteleg;nd prin LactualizareL opera.iile U/DAT=& I'#=)T i D=<=T=4- 9ncheierea
tranzac.iei 3cu sau fr succes4 eli"ereaz !n mod automat "locrile pe care aceasta le de.inea- Anumite
sisteme 3de pild Ada"as D4 permit L!nln.uirea tranzac.iilorL 3transaction c'ainin#4 cu pstrarea
anumitor "locri 3prin clauza Y==/ <6CY a instruc.iunii C6MMIT4-
"- #tandardul #Z< nu face nici o prezum.ie legat de modul de implementare a mecanismelor de
control al accesului concurent 3prin "locare& prin mrci de timp sau alte metode4 i& !n consecin.& nu
prevede instruc.iuni e0plicite de "locare- Cu toate acestea& ma2oritatea #BD$urilor rela.ionale ofer !n
propriile dialecte #Z< instruc.iuni de "locare e0plicit 3<6CY4- Anumite sisteme non$rela.ionale 3)aima&
de e0emplu4 folosesc doar "locri e0plicite- De o"icei& aceste sisteme prevd i instruc.iuni de de"locare
e0plicit 3U'<6CY4-
c- Dei sunt cele mai uzuale& "locrile parta2ate i e0clusive nu sunt singurele posi"ile- Unele #BD$
uri 3IBM DB*& #7"ase #Z< #erver& )aima d"I(I#TA4 folosesc o aa$numit L"locare pentru actualizareL
3update loc"4& care este un nivel intermediar !ntre "locarea parta2at i cea e0clusiv-
Dac mai multe tranzac.ii "locheaz parta2at 3pentru citire4 un anumit o"iect& una dintre ele 3doar una4
poate o".ine o "locare pentru actualizare 3remarca.i c o "locare e0clusiv nu poate fi o".inut !n aceste
conditii4- De o"icei utilizarea "locrii pentru actualizare este posi"il doar !n situa.ia unui mecanism de
control special 3"azat !n general pe versiuni multiple ale datelor4 care s avertizeze o alt tranzac.ie care
solicit o "locare pentru actualizare c datele au fost modificate-
19
#.#.). Deadloc-
# revedem acum pro"lema Lactualizrii pierduteL& folosind "locrile parta2ate i e0clusive- <a
momentul t% tranzac.ia )% solicit o "locare parta2at a liniei R i 3presupun;nd c linia nu era "locat
pentru scriere de o alt tranzac.ie4 o o".ine- <a momentul t*& tranzac.ia )* solicit i ea o "locare
parta2at a liniei R i o o".ine la r;ndul ei- Am"ele tranzac.ii "locheaz !n acest moment pentru citire linia
R- <a momentul tA& tranzac.ia )% solicit "locarea e0clusiv a liniei R& pentru a face o actualizare-
'u o".ine "locarea& deoarece linia este "locat pentru citire de tranzac.ia )*& deci este pus !n stare de
ateptare- Tranzac.ia )* cere i ea "locarea e0clusiv i& evident& nu o o".ine din motive similare- 'ici
una dintre tranzac.ii nu poate continua& deoarece fiecare ateapt ca cealalt s eli"ereze linia R-
Aceast situatie se numeste deadloc" sau Linter"locareL- =ste uor de verificat c i !n situa.ia Lanalizei
inconsistenteL se va a2unge la o inter"locare- )ezultatul este c am rezolvat pro"lema anomaliilor 3!ntr$
adevr& acestea nu mai apar4 dar am o".inut o alt pro"lem& cea a inter"locrilor- )ezolvarea noii
pro"leme cuprinde dou aspecte:
%- Prevenirea interbloc!rii. Implic sta"ilirea unui protocol de acces la date care s fac imposi"il
apari.ia situa.iilor de deadloc"- 6 variant posi"il este ca fiecare tranzac.ie s "locheze L!n "locL toate
liniile de care are nevoie- Alta variant este sta"ilirea unei ordini a o"iectelor iar cererile de "locare s fie
rezolvate !n conformitate cu aceast ordine- Am"ele metode au dezavanta2ul c limiteaz semnificativ
performan.ele prin "locarea resurselor pe durate mai lungi dec;t cele strict necesare- /e de alt parte&
prima metod nu este aplica"il !ntotdeauna& deoarece este posi"il ca o tranzac.ie s nu cunoasc de la
!nceput toate datele de care are nevoie-
*- Detectarea interbloc!rii. Cea mai simpl metod de detectare a unei situa.ii de deadloc" este cea
"azat pe un mecanism de time-out: dac durata e0ecu.iei unei tranzac.ii depete o valoare presta"ilit&
sistemul deduce c a aprut o inter"locare- 6 alt metod se "azeaz pe construirea i men.inerea
dinamic a unui Lgraf de ateptareL 30ait-+or 1rap'4- 'odurile acestui graf reprezint tranzac.iile care se
e0ecut 3T%& T*& ---& Tn4 iar arcele reprezint rela.ia de dependen. 3ateptare4: e0isten.a unui arc de la Ti
la T2 semnific faptul c tranzac.ia Ti ateapt ca tranzac.ia T2 s eli"ereze anumite resurse- Detectarea
unei inter"locri revine la detectarea e0isten.ei unui ciclu !n graful de ateptare-
9n practic& cel mai adesea se utilizeaz o mi0tur de tehnici: se impune un protocol de acces care s
reduc posi"ilitatea inter"locrii 3fr s o previn total& dar i fr s inhi"eze semnificativ concuren.4&
se implementeaz un mecanism care s detecteze inter"locrile cele mai uzuale& ls;ndu$le pe celelalte pe
seama unui mecanism de time$out-
)ezolvarea efectiv a unei inter"locri revine la sta"ilirea unei LvictimeL dintre tranzac.iile implicate
!n deadloc> i anularea ei 3)6<<BACY4- Dup ce inter"locarea a fost !nlturat& tranzac.ia poate fi
lansat din nou !n e0ecu.ie-
6"serva.ii:
20
a- Desigur& !ntr$o inter"locare pot s intervin mai mult de dou tranzac.ii- 9n acest caz este posi"il ca
mai multe tranzac.ii s tre"uiasc anulate pentru a de"loca e0ecu.ia-
"- Cele mai multe sisteme reprogrameaz automat pentru e0ecu.ie tranzac.iile anulate- =0ist !ns i
sisteme care returneaz doar un cod de eroare aplica.iei& acesteia revenindu$i sarcina s se ocupe de
rezolvarea pro"lemei-
#.#.+. Blocare ierar,ic!
Ideea de la care se pleac este c pentru o o".ine o "locare la nivel de articol 3linie de ta"el4& o
tranzac.ie tre"uie s$i manifeste aceast inten.ie& cer;nd mai !nt;i o "locare la nivel de ta"el- 9n felul
acesta se simplific procesul de detectare a unor cereri conflictuale de "locare la nivel de linie& deoarece
ele tre"uie !nt;i s se manifeste la nivel de ta"el- /rotocolul "azat pe Linten.ii de "locareL 3intent loc"in#4
introduce trei noi tipuri de "locare 3la nivel de ta"el4& alturi de cele dou tipuri de "locri uzuale 3#$loc>
i H$loc>4 care& aa cum am artat de2a& au sens i la nivel de ta"el- Avem astfel cinci tipuri de "locri pe
care o tranzac.ie T le poate solicita la nivelul !ntregii ta"ele )& prezentate !n ordinea cresctoare a LtrieiL
lor relative:
I$ $ intent s'ared- Tranzac.ia T inten.ioneaz s "locheze pentru citire 3. loc"4 anumite linii ale ta"elei
)& pentru a garanta sta"ilitatea acestora !n timpul procesrilor pe care le va efectua-
I. $ intent exclusive- <a fel ca I#& dar T s$ar putea s vrea s modifice anumite articole i deci s
solicite "locarea e0clusiv a acestora-
$ $ s'ared- =ste o"inuita "locare parta2at- T admite citiri concurente ale ta"elei )& dar nu i scrieri- T
nu va face nici o scriere la nivelul liniilor ta"elei-
$I. $ s'ared intent exclusive- Com"in # i IH- 9n plus fa. de #& T s$ar putea s vrea s modifice
anumite linii din ) i& !n consecin.& s solicite "locarea e0clusiv a acestora-
. $ exclusive- T nu admite citiri concurente !n ta"ela )- T ar putea s actualizeze anumite linii ale
ta"elei )-
C;teva o"servatii:
a- 'o.iunea de LtrieL a "locrii se refer la faptul c o cerere de "locare de un anumit tip care eueaz&
va eua cu siguran. pentru orice tip mai LtareL-
"- Tipurile IH i # sunt egale din punct de vedere al LtrieiL-
c- [i aceste tipuri de "locri sunt !n mod o"inuit cerute !n mod implicit- Cu toate acestea& sistemele
care implementeaz aceste tipuri de "locare 3DB*& 6penIngres4 ofer de o"icei i o instruc.iune de
"locare e0plicit pentru aceste tipuri-
d- (arianta pe care am prezentat$o este mult simplificat- De fapt "locrile se pot referi la orice
granula.ii i orice o"iecte ale "azei de date 3inclusiv indeci4-
21
9n fine& protocolul "azat pe inten.ii de "locare 3intent loc"in# protocol4& impune dou reguli care
!m"in "locrile la nivel de ta"el i de articol !ntr$o com"ina.ie care adesea s$a dovedit mai eficient !n
aplicatii:
%- 9nainte de a o".ine o "locare parta2at 3#4 la nivel de linie& o tranzac.ie tre"uie s o".in o "locare de
tip I# 3sau mai tare4 la nivelul !ntregii ta"ele-
*- 9nainte de a o".ine o "locare de tip e0clusiv 3H4 la nivel de linie& o tranzac.ie tre"uie s o"tin o
"locare de tip IH sau mai tare la nivelul !ntregii ta"ele-
#.#./. Protocolul de blocare n dou! 0aze
)ezultatul final al e0ecu.iei unei tranzac.ii tre"uie s !ntruneasc Jacordul@ tuturor nodurilor& fapt !n
care const respectarea propriet.ii de atomicitate a tranzac.iei-
/entru asigurarea propriet.ii de atomicitate& coordonatorul tranzac.iei men.ionate este prevzut cu un
rotocol de comitere- Unul dintre sistemele de programe cele mai frecvent folosite& din aceast clas&
este rotocolul de comitere n dou! 0aze 1rescurtat2 2P"3. 6 variant mai comple0 este reprezentat
de protocolul de comitere !n trei faze 3A/C4-
Protocolul de comitere n dou faze (2P Commit)
9n cele ce urmeaz& n conte*tul unei baze de date distribuite& va fi descris activitatea protocolului
*/C p;n la finalizarea unei tranzac.ii& respectiv p;n la comiterea acesteia- De asemenea& protocolul */C
!ndeplinete func.ii specifice !n situa.iile de defect& de revenire dup defecte i de control al concuren.ei
tranzac.iilor-
Aciunea de comitere-
8ie o tranzacie T care intr !n lucru !n nodul 4i & unde coordonator este T"i- (om distinge dou
faze !n desfurarea procesului de !ncheiere a e0ecu.iei tranzac.iei T- Aa cum se va vedea& procesul se
poate sf;ri fie prin comiterea tranzac.iei& fie prin a"andonarea acesteia- /rotocolul */C intr !n lucru
atunci c;nd& prin decizia coordonatorului TCi& tranzac.ia T !ncheie 3sau completeaz4 e0ecu.ia sa&
respectiv atunci c;nd toate nodurile !n care a fost prelucrat T anun. coordonatorul TCi c tranzac.ia a
fost completat-
2rima az- 6dat cu intarea !n faza de !nceput a procesului& coordonatorul TCi introduce !n 2urnal
!nregistrarea cu con.inutul Wprepare T\ i& totodat& !nmagazineaz 3sau& cu un termen folosit frecevnt&
Jfor.eaz@4 con.inutul 2urnalului !n memoria Jsta"il@ 3pe discuri magnetice4 a sistemului- 9n continuare&
TCi transmite mesa2ul privind pregtirea tranzac.iei tuturor nodurilor !n care aceasta a fost prelucrat- 9n
aceste noduri& !n urma recep.ionrii mesa2ului& fiecare controlor de tranzac.ii asociat decide asupra
comiterii por.iunii de tranzac.ie care !i corespunde- 9n situa.ia !n care rspunsul este afirmativ& controlorul
de tranzac.ii din nod introduce !n 2urnal !nregistrarea cu con.inutul Wread7 T\& iar apoi Jfor.eaz@
con.inutul 2urnalului !n memoria sta"il& inclusiv toate !nregistrrile din 2urnal care se refer la tranzac.ia
T- Apoi& controlorul de tranzac.ii transmite coordonatorului TCi mesa2ul Jread7 T@- Atunci c;nd decizia
22
este negativ& controlorul de tranzac.ii din nod !nscrie !nregistrarea Wno T \ !n 2urnal& !n continuare
transmi.;nd coordonatorului TCi mesa2ul Ja"ort T@-
3 doua az. Coordonatorul de tranzac.ii TCi poate sta"ili dac tranzac.ia T va fi comis sau
a"andonat& de !ndat ce a primit rspunsuri de la toate nodurile la mesa2ul su de pregtire a tranzac.iei-
Decizia respectiv poate fi luat de TCi i atunci c;nd de la transmiterea mesa2ului Wprepare T\ a trecut
un timp dat-
Dac toate nodurile ce particip !n proces au rspund prin mesa2ul Jread7 T@& tranzac.ia T poate fi
comis& !n 2urnal se introduce !nregistrarea Wcommit T\& iar con.inutul 2urnalului este !nmagazinat !n
memoria sta"il- 9n situa.ia contrar& T este a"andonat& urm;nd ca !n 2urnal s fie !nscris informa.ia
Wa"ort T\& iar 2urnalul$ for.at !n memoria sta"il- /otrivit e0primrii din literatura de specialitate !n acest
moment evolu.ia tranzac.iei este definitiv- Ca urmare& sistemul coordonator TCi transmite tuturor
nodurilor ce au luat parte la e0ecu.ie mesa2u Jcommit T@ sau Ja"ort T@- /rimind unul din aceste mesa2e&
nodurile !l !nscriu !n 2urnal-
"omentarii:
9n primul r;nd& de !ndat ce controlor de tranzac.ii emite un mesa2 Jread7 T@ ctre coordonator&
tranzac.ia se va gsi !n situa.ia numit Jread7 state@ !n nodul corespunztor- 9n fapt& mesa2ul transmis
coordonatorului este o Jpromisiune@ formulat la nivelul nodului privind invita.ia de comitere sau de
a"andonare e0primat de TCi- 9n acest conte0t& tre"uie remarcat c pentru a formula un asemenea
rspuns& este necesar !nscrierea unei informa.ii corespunztoare !n memoria sta"il- Dac informa.ia
men.ionat nu va fi dispono"il& este posi"il ca !n situa.ia !n care& !n urma apari.iei unui defect& nodul !n
cauz iese din func.iune dup ce a transmis mesa2ul Jread7 T@& inten.ia de comitere sau a"andonare s nu
mai poat fi realizat !n mod corespunztor-
9n al doilea r;nd& drepturile de !nchidere ale tranzac.iei rm;n vala"ile p;n la comiterea acesteia&
precum i faptul c T poate fi a"andonat !n orice moment& anterior celui !n care controlorul de tranzac.ii
din nod trimite coordonatorului mesa2ul Jread7 T@-
9n al treilea r;nd& de !ndat ce un nod a declarat a"andonarea tranzac.iei T prin rspunsul Ja"ort T@&
evolu.ia tranzac.iei este definitiv& drept urmare a condi.iei de unanimitate pentru comitere- 9n legtur cu
aceasta& o"servm c decizia de a"andonare a tranzac.iei T poate fi luat !n mod unilateral de ctre
coordonatorul TCi& al nodului !n care s$a produs prelucrarea tranzac.iei- Decizia final asupra evolu.iei
tranac.iei T este luat !n momentul !n care TCi !nscrie hotr;rea de comitere sau a"andonare adoptat !n
2urnal& apoi !n memoria sta"il- Unele implementri ale protocolului */C prevd ca& la sf;ritul celei de a
doua faze& controlorul de tranzac.ii din nod s transmit coordonatorului mesa2ul Jac>no5ledge T@&
urm;nd ca dup recep.ionarea mesa2ului din partea tuturor nodurilor& TCi s introduc !n 2urnal
!nregistrarea Wcomplete T\-
23
8unc.ionarea protocolului de comitere !n dou faze poate fi descris !n o manier alternativ&
prezentat succint !n cotinuare- 8ie o "az de date distri"uit !n ' noduri- Mai 2os& vor fi folosite nota.iile:
W]]\ pentru reprezentarea !nregistrrilor& iar ?]]-@ pentru mesa2e- #e admite c din componen.a unui
nod ?i@ fac parte o unitate central de prelucrare UC/i& o memorie central MCi& o memorie de tip cache
MC^i& !n nod fiind !nmagazinat codul tranzac.iilor locale i su"tranzac.iilor ce apar.in unor tranzac.ii
glo"ale& precum i sistemele de programe corespunztoare controlorului Tctri& respectiv coordonatorului
de tranazac.i TCi- <a elementele de mai sus se adaug memoria secundar M#=Ci- 9n continuare& este
prezentat schematic o desfurare posi"il a activit.ii protocolului */ Commit& la momentele de timp t%&
t*& etc-
Prima 0az!
t1 TCi WprepareT\ $\ 2urnal
t2 TCi W2urnal\ $\ memoria sta"il M#=Ci
t# TCi WprepareT\ $\ noduri
t( Tctr2 decizie privind comiterea por.iunii proprii de tranzac.ie
t) decizie Q Da& Tctr2 Wread7T\ $\ memoria sta"il&
sau
decizie Q 'u& Tctr2 WnoT\ $\ 2urnal
t+ decizie Q Da& Tctr2 mesa2 ?read7T@ $\ TCi&
sau
decizie Q 'u& Tctr2 mesa2 ?a"ort@ $ \ TCi-
A doua 0az!
t/ TCi analizeaz rspunsurile Tctr2 din momentul tC
t5 toate Tctr2 $\ mesa2 Jread7T@& TCi WcommitT\ $\ 2urnal&
sau
nu toate Tctr2 $\ mesa2 Jread7@& TCi Wa"ort\ $\ 2urnal
t6 TCi W2urnal\ $\ memoria sta"il M#=C2
t17 TCi WcommitT\ !n toate nodurile& sau Wa"ortT\ !n toate nodurile
t11 fiecare Tctr2 participant !n prelucrarea tranzac.iei WcommitT\ $\ 2urnal sau
Wa"ortT\ $\ 2urnal-
9n ipoteza c unul sau mai multe din nodurile re.elei 3respectiv dintre controloarele de tranzac.ie4 nu
Jvoteaz@ favora"il& tranzac.ia nu poate comite- 9n aceast situa.ie& pentru tranzac.ie tre"uie s se a2ung
!n final la decizia JA"ortISor>34@- _urnalul tranzac.iei va fi citit !napoi& su" controlul coordonatorului de
tranzac.ii- 9n acest proces& pentru fiecare !nregistrare din 2urnal coordonatorul apeleaz nodul
3controlorul4 care a operat ultima actualizare& determin;ndu$l s ini.ieze o opera.iune de Jdistrugere@ a
informa.iei respective- Atunci c;nd !n procesul inspectrii Jinverse@ a 2urnalului se a2unge !n punctul de
!nceput al tranzac.iei& respectiv acolo unde tre"uie s se afle comanda BeginISor>34& va fi efectuat
opera.iunea de Jdistrugere@ a acestei ultime comenzi& apoi !n 2urnal se introduce o !nregistrare de
a"andonare- 9n sf;rit& !n 2urnal este introdus o nou !nregistrare& care consemneaz Jcompletarea@
a"andonrii- Mai men.ionm c 2urnalului tranzac.iei i se asociaz un controlor propriu& a crui sarcin
este de a gestiona !nregistrrile din 2urnal& prin intermediul unei liste !nln.uite& !n care fiecrei !nregistrri
i se atri"ue o cheie unic- Unul din o"iectivele pentru care !n procesul de inspectare a con.inutului
24
2urnalului se folosete o list !nln.uit este asigurarea eficien.ei opera.iunilor de Jdistrugere@ evocate mai
sus-
Protocolul de blocare n dou! 0aze 128PL3
/rotocolul de "locare !n dou faze3t5o$phase loc>ing4 impune ca fiecare tranzac.ie s respecte
protocolul de utilizare a "locrilor: toate opera.iile de "locare s precead prima opera.ie de de"locare-
6 astfel de tranzac.ie poate fi divizat !n dou faze:
faza de cretere 3gro5ing phase4& !n care se pot face noi "locri& dar nu se fac de"locri:
faza de descretere 3shrin>ing phase4& !n care se fac toate de"locrile& dar nu se mai pot face "locri
noi:
Dac o tranzac.ie poseda o "locare de tip H asupra unui o"iect& nici o alt tranzac.ie nu va putea prelua
o alt "locare asupra sa- 9naintea unei opera.ii de citire se va o"tine o "locare #& iar a unei operatii de
scriere o "locare de tip H-
6 tranzactie tre"uie sa o".ina o "locare !naintea e0ecu.iei opera.iei dorite & o tranzactie ce a o".inut o
"locare nu va mai putea o".ine altele-
#$a demonstrat c& dac fiecare tranzac.ie a unei planificri respect protocolul de "locare !n dou faze&
atunci planificarea este serializa"il-
Acest protocol ne garanteaz serializa"ilitatea: dac toate tranzac.iile respect cerin.ele protocolului se
poate demonstra c orice planificare a lor e serializa"il- De asemenea se poate demonstra c dac o
tranzac.ie nu respect protocolul pot e0ista e0ecu.ii neserializa"ile ale acelei tranzac.ii !n con2unc.ie cu
alte tranzac.ii-
/entru o tranzactie care contine secven.:
94L:"; A
L:"; B
/utem avea o planificare care contine:
T% T*
94L:"; A
88888888888888888888888888888888888888888888888888888888888
L:"; A
L:"; B
94L:"; A
94L:"; B
8888888888888888888888888888888888888888888888888888888888888
L:"; B
Care are un graf de preceden. care con.ine un ciclu-
/rotocolul de "locare !n * faze implic !nsa uneori opera.ii de roll$"ac> !n cascad:
T1 < T2
L:"; A
L:"; B
=>AD A
?=IT> A
25
94L:"; A
88888888888888888888888888888888888888888888888888888888888888888888888
L:"; A
=>AD A
?=IT> A
94L:"; A
88888888888888888888888888888888888888888888888888888888888888888888888
=>AD B
?=IT> B
888888888888888888888888888888888888888888888888888888888888888888888888
=:LLBA";
9n momentul )oll"ac> pentru T% este necesar )oll"ac> i pentru T* deoarece T* a citit date scrise de
T%& date care prin opera.ia de )oll"ac> se pierd- 6 astfel de planificare se numeste planificare cu roll"ac>
!n cascad 3eng-: cascading a"orts4 -
Dac facem un grafic al numrului de !ncuietori posedate de o tranzac.ie& el tre"uie s arate cam ca !n
figura urmtoare: s ai" o faz de cretere 3gro5ing phase4 i una de descretere 3shrin>ing phase4-
growing shrinking
^ ____
| / \
numar de | / \____
blocri | __/ |
| / \
0----------------------->
Timp
Protocolul de blocare strict! n dou! 0aze
=0ist pentru a evita i astfel de cazuri varianta rotocolului de blocare strict! n dou! 0aze care
implic eli"erarea toturor articolelor "locate la sfaritul tranzac.iei- 9n acest caz tranzac.ia T* din
e0emplul anterior pornete a"ia dupa terminarea complet a tranzac.iei T%-
#e o"serv c */< nu este acelai lucru cu serializa"ilitatea& ci c */< doar o implic-
=0ist un dezavanta2 al lui */< i o implementare care !l evit- # considerm urmtorul scenariu: o
tranzac.ie T% "locheaz o valoare 0& o modific i apoi o de"locheaz- T* vine la r!nd& "locheaz i
citete 0- Dac acum T% vrea s e0ecute A"ort& valoarea lui 0 tre"uie pus cum era !nainte ca T% s o fi
modificat- Dar T* a citit$o de2aT Asta !nseamn nimic altceva dec!t c dac T% e0ecut A"ort& T* tre"uie
s fie ``ucisaa de sistem& pentru a respecta proprietatea de izolareT = clar c lan.ul poate fi mai lung: TA
poate a citit la r!ndul ei 0& i atunci tre"uie ucis i ea-
6 astfel de situa.ie foarte neplcut 3pentru c o mul.ime de opera.ii tre"uie ``terseaa4 se
numete cascaded abort 3a"ort !n cascad4- 6 alt consecin. neplcut este c T* nu se poate termina
!nainte de T%& pentru c dac T* face !ommit iar T% A"ort se stric tranzac.ia& cci T* a promis c
valoarea lui 0 este permanent& dar nu avea voie s$o citeascT Deci T* tre"uie s atepte ca T% s se
termine-
26
#olu.ia este simpl: se restr!nge concuren.a& dar nimeni nu este lsat s vad modificrile- 'u se
de"locheaz nimic p!n la sf!rit& c!nd se de"locheaz totul dintr$o micare 3de e0emplu folosind =nd
Transaction& care eli"ereaz "lochrile4- raficul ar arta atunci cam aa:
growing shrinking
^ _________
| / |
numar de | / |
blocri | __/ |
| / |terminare
0----------------------->
timp
":@PA=AAI> B4T=> 2 P" $I 2 PL
At;t protocolul de comitere in dou faze3* /C4 c;t i protocolul de "locare !n dou faze3* /<4 sunt
protocoale folosite in con2unctura sistemelor de "aze de date distri"uite-
/rotocolul de "locare in dou faze 3*/<4 se ocupa doar de managementul "locrilor !n timpul unei
tranzacii& !n timp ce protocolul de comitere !n dou faze3*/C4 decide daca o anumit tranzacie este
scrisa3se comite4 sau nu 3se face a"ord4-
/rotocolul */< spune c e0ist mai !nt;i o faz in care se fac toate "locrile 3faza de cretere4 i apoi
e0ista o faza !n care se fac toate de"locrile3faza de descretere4- 6dat !nceput faza de descretere& nu
se mai pot face "locri pe parcursul respectivei tanzacii- 8aza de descretere are loc de o"icei dupa ce s$
a fcut a"ord sau comit !n sistemul de "aze de date-
/rotocolul */C spune& !n esen& c odata finalizat o tranzacie si se ateapta commitarea acesteia&
!ncepe Jvotul@- 8iecare nod care face parte din tranzac.ie trece !ntr$o stare bprepare to commit@- 'odul
verific daca este posi"il s se faca un commit local& i !n acest caz voteaz Jread7 to commit@ 3)TC4&
insa la acest moment nu sunt !nc scrise modificrile !n "aza de date- 6data ce un nod a votat cu )TC&
sistemul tre"uie pstrat !ntr$o stare !n care tranzacia respectiva s fie mereu o> pentru commit- Atunci
cand toate nodurile voteaz cu )TC& se face commit& ins daca un singur nod nu voteaz )TC& toate
tranzaciile locale vor fi a"ordate-
#.#.5. Prototocolul send8on8demand
#istemele de "aze de date distri"uite au caracteristici unice !n mediile de mare vitez- Cel mai
important criteriu de studiere a performan.elor !ntr$o re.ea de mari dimensiuni este latenta de comunica.ie
3!nt;rzierile de propagare a semnalului4- #uccesul oricrui protocol !n aceste medii depinde de modul !n
care acesta tie s bascundP aceste !nt;rzieri-
9n aceast nou schem& elementele de date nu mai sunt ?limitate@ la un anumit calculator& !n mod
special- 8iecare calculator& ce face parte din BDD& !ntre.ine o coad de preten.ii& pentru fiecare element de
date care este localizat !n mod curent pe acel calculator- Coada de preten.ii pentru un element de date
con.ine o list a tranzac.iilor 3cu identificatoarele calculatoarelor unde este e0ecutat tranzac.ia4 care cer
acel element de date i de asemenea specific ac.iunea inclus !n tranzac.ie asupra acelui element de date
27
3cititKscris4- #etul de opera.ii de acces& impreun cu marca timpului de sosire al tranzac.iei T $ T#3T4 a
fiecarei tranzac.ii care vine este transmis ctre toate calculatoarele din BDD-
Un mesa2 tipic de transmisie& trimis de un calculator ce proceseaz o tranzac.ie cu > elemente de date
!n setul sau de opera.ii de acces este dat mai 2os:
#etul de opera.ii de acces al tranzac.iei este introdus !n coada de preten.ii& al unui calculator !n ordinea
marcilor de timp ale sosirii tranzac.iei- 'ici o ac.iune nu este luat p;n; cand nu este sigur c toate
calculatoarele din BDD au primit aceast informa.ie- 9n acest punct& tranzac.ia este confirmat i durata
pe care un calculator tre"uie s$o atepte p;n c;nd o tranzac.ie e confirmat se numete durat de
confirmare 3B4- 6 coad de preten.ii& !n orice moment de timp& con.ine un set de tranzac.ii confirmate i
un set de tranzac.ii neconfirmate-
9n figura de mai 2os este descris o coad de preten.ii pentru un element de date cu m tranzac.ii din
care n sunt tranzac.ii confirmate:
Durata confirmrii unei tranzac.ii este un timp mai mare sau egal cu cel necesar trimiterii informa.iei
setului de opera.ii acces spre toate calculatoarele din BDD- Acest lucru asigur ca la fiecare calculator&
coada de preten.ii s ai" intrri !n ordine 3!n timp4& i !n acest fel nu pot aprea inter"locri-
<a pornirea sistemului& toate elementele de date se afl pe calculatoare oarecare- Cand tranzac.iile
!ncep s soseasc& cozile de preten.ii !ncep s se ocupe- Toate calculatoarele ii transmit elementele de
date rezidente spre sistemul care a ini.iat prima tranzac.ie confirmat& complet;nd cozile de preten.ii
respective- 9n timp ce coada de preten.ii este transmis& alte tranzac.ii& necesit;nd acelai element de date&
pot sosi !n sistem- Informa.ii despre aceste tranzac.ii pot fi o".inute din informa.ia de transmisie 3vezi
formatul unui mesa2 de transmisie4- 8iecare calculator care ini.iaz o tranzac.ie ateapt pentru ca !ntregul
set de opera.ii de acces s a2ung la loca.ia lui& termina procesarea tranzac.iei i apoi transmite elementele
de date la alte calculatoare care se afl la r;nd !n cozile de preten.ii respective- Acest mecanism elimin
necesitatea de de"locare a elementelor de date& fa. de sistemele tradi.ionale& !n care& pentru a se men.ine
atomicitatea tranzac.iilor& se implementeaz protocoale speciale de validare 3commit4- 'oul algoritm are
nevoie doar de un protocol de validare local- At;ta timp c;t fiecare calculator !ntre.ine cozi de preten.ii
28
ID-ul
cal0063ulatorului
TS(T)
Alte
inforatii
D1 !"#
$
D% !"#
T

$ 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