Sunteți pe pagina 1din 26

I.

Introducere
1.1 Conceptul de baze de date
Baza de date reprezint una sau mai multe colecii de date aflate n interdependen mpreun cu
descrierea datelor i a relaiilor dintre ele. Colecia de date reprezint un ansamblu de date organizat dup
anumite criterii. Descrierea datelor se ntlnete sub denumirile de catalog de sistem, dicionar de date sau
meta-date ceea ce reprezint date despre date. Relaiile logice reprezint asociaiile dintre mai multe entiti.
entitate este un obiect distinct ce trebuie reprezentat n baza de date. !n atribut este o proprietate ce
descrie un anumit aspect al obiectului ce se nregistreaz n baza de date.
"n sistemele de baze de date definirea datelor se separ de programele aplicaie, utilizatorii #d doar
definiia e$tern a unui obiect fr a cunoate modul n care e definit acesta i cum funcioneaz. "n acest
mod, definiia intern a obiectului poate fi modificat fr a afecta utilizatorii acestuia dac nu se modific
definiia e$tern. De e$emplu, dac sunt adugate noi structuri de date sau sunt modificate cele e$istente,
atunci programele aplicaie nu sunt afectate dac nu depind direct de ceea ce se modific.
"n bazele de date are loc o integrare a datelor, n sensul c mai multe fiiere sunt pri#ite n ansamblu,
eliminndu-se pe ct posibil informaiile redondante. De asemenea, se permite accesul simultan la aceleai
date, situate n acelai loc sau distribuite spaial, a mai multor persoane de pregtiri diferite, fiecare cu stilul
personal de lucru. %istemul de programe care permite construirea unor baze de date, introducerea
informaiilor n bazele de date i dez#oltarea de aplicaii pri#ind bazele de date se numete sistem de
gestiune a bazelor de date &%'BD(.
!n %'BD d posibilitatea utilizatorului s aib acces la date folosind un limba) de ni#el nalt, apropiat
de modul obinuit de e$primare, pentru a obine informaii, utilizatorul fcnd abstracie de algoritmii
aplicai pri#ind selecionarea datelor implicate i a modului de memorare a lor. %'BD- ul este o interfa
ntre utilizatori i sistemul de operare.
"n esen un %'BD permite*
+. definirea bazei de date printr-un limba) de definire a datelor &DD,( prin care se specific tipurile de
date i structurile precum i constrngerile asupra datelor.
-. e$tragerea, inserarea, tergerea i actualizarea datelor din baza de date cu a)utorul unui limba) de
manipulare a datelor &D.,( care ofer o facilitate de interogare general a datelor, denumit limba) de
1
interogare. /cest limba) elimin dificultile sistemelor bazate pe fiiere unde utilizatorul este constrns s
lucreze cu un set fi$ de interogri pentru a e#ita apariia de programe noi ce creaz probleme ma)ore pri#ind
gestionarea lor.
1.2 Bazele de date relaionale
Cel mai folosit model de stocare a datelor este baza de date relaional. /cest nou model s-a dez#oltat
pornind de la un articol, 0/ Relational .odel of Data for ,arge %1ared Data Ban2s3 &!n model relaional al
datelor pentru bnci mari de date folosite n comun(, scris de Dr. 4. 5. Codd n anul +678. 9deea lui Codd
pentru un sistem de administrare a bazelor de date relaionale folosete conceptele matematice de algebr
relaional pentru a grupa datele n mulimi i a stabili relaii ntre submulimile &domeniile( comune. "n plus
fa de dez#oltarea unui model de baz de date relaional, alte dou te1nologii au condus la dez#oltarea
rapid a ceea ce acum este numit un sistem de baze de date client:ser#er. ;rima te1nologie important a fost
calculatorul personal, care a fcut posibil ca aplicaii ieftine, uor de folosit, s permit utilizatorilor crearea
documentelor i administrarea datelor rapid i corect. !tilizatorii s-au obinuit s modernizeze continuu
sistemele, deoarece rata sc1imbului a fost ec1ilibrat rapid de scderea preului celor mai a#ansate sisteme.
/ doua te1nologie important a fost dez#oltarea reelelor locale de calculatoare &,/<(. Dei utilizatorii erau
obinuii cu terminalele conectate la calculatorul mainframe comun, acum fiierele procesate puteau fi
stocate local i accesate de la orice calculator ataat n reea. =otodat, cantiti mari de date puteau fi
transferate la ser#erele de date departamentale.
"n acest conte$t, sistemul, denumit client:ser#er deoarece procesarea este separat ntre calculatoarele
client i un ser#er de baze de date, constituie o modificare radical de la programarea aplicaiilor bazat pe
calculatoarele mainframe. /ceast ar1itectur este total recursi#, pe rnd sau cand> ser#erele putnd de#eni
clieni i cere ser#icii de la alte ser#ere din reea. Datorit puterii crescute a 1ard?are-ului calculatoarelor
personale, informaiile critice &importante( ale bazei de date pot fi memorate pe un ser#er independent, care
poate fi nlocuit mai trziu cu foarte puine &sau c1iar fr( modificri.
!ltima dintre ar1itecturile dez#oltate este cea a aplicaiilor distribuite pe ?eb. Clientul de#ine o
aplicaie ct mai simpl posibil, accesat de obicei printr-un banal bro?ser de internet. %er#erul de date
i cel de aplicaii ?eb preiau cea mai mare parte a sarcinilor, fiind plasate in general pe calculatoare
puternice. %e re#ine astfel la structura &oarecum( centralizat, dar pe o spiral e#ident a te1nologiei.
Comple$itatea actual a aplicaiilor de management al bazelor de date face necesar o combinaie a
procesrii tranzaciilor on-line, a ncrcrii i a creterii spri)inului decizional. "n scopul satisfacerii acestor
2
necesiti, este ne#oie de baze de date scalabile i performante care pot fi a)ustate dinamic pentru a realiza
un compromis ntre bazele de date &mai mari( i utilizatorii simultani &mai muli(. De asemenea, sunt
necesare te1nologii pentru baze de date proiectate pentru a ma$imiza capacitile configuraiei
1ard?are:soft?are disponibile &incluznd ar1itecturi simplu i multi-procesor(, precum i pentru
#alorificarea unor ar1itecturi 1ard?are &cum ar fi clustere cuplate larg i maini paralele puternice(.
%er#erele de date de astzi se apropie de aceste cerine - o ar1itectur paralel &de nou generaie( a bazelor
de date care furnizeaz scalabilitate, mane#rabilitate i performan@ o regie minimal a sistemului de
operare@ i o distribuire automat a ncrcrilor de lucru. /r1itectura multifilar este proiectat pentru a
utiliza ct mai bine resursele 1ard?are i poate fi reconfigurat dinamic on-line pentru a urmri cererile n
sc1imbare.
;erformana este aspectul critic al succesului, i a#nd n #edere creterea dramatic a numrului de
utilizatori, date fiind aplicaiile de comer electronic i noile modele de calcul, presiunea e$ercitat asupra
bazelor de date este mai mare ca oricnd.
1.3 Baze de date distribuite
baz de date distribuit &BDD( se poate defini ca o colecie de mai multe baze de date logic
interconectate i care sunt dispersate ntr-o reea de calculatoare. %istemul de gestiune al bazei de date
distribuite &%'BDD( este ansamblul soft?are care realizeaz gestiunea BDD i face ca distribuirea s
fie transparent fa de utilizator. =ermenul AtransparenB din definiia de mai sus nseamn c orice
aplicaie utilizator opereaz, din punct de #edere logic, asupra BDD ca i cnd aceasta ar fi o baz de
date centralizat pe un singur calculator.
BDD poate fi pri#it ca o colecie de noduri interconectate printr-o reea de comunicaii, n
care fiecare nod este o baz de date local i nodurile comunic i coopereaz ntre ele pentru a asigura
accesul utilizatorilor la datele oricrui nod la fel de uor ca la nodul local. 5iecare nod are bazele de
date proprii, %'BD-ul propriu i un sistem de gestiune al comunicaiilor &%'C( propriu. !tilizatorii
locali ai fiecrui nod pot e$ploata baza de date local n mod independent &la fel ca orice baz de date
centralizat( sau pot e$ploata baza de date distribuit prin solicitarea accesului i la alte noduri ale
reelei.
/stfel BDD apare ca un obiect #irtual, rezultat al cooperrii dintre mai multe baze de date
locale. /ceast cooperare este realizat prin %'BDD care este o e$tensie logic a %'BD - urilor locale.
BDD poate fi compus din mai multe noduri dispersate geografic n care funcioneaz diferite tipuri de
%'BD locale, sub diferite sisteme de operare i pe platforme 1ard?are diferite. 4ste rolul %'BDD de a
3
asigura conlucrarea acestor noduri i compatibilitatea dintre sistemele locale care funcioneaz n
fiecare nod.
"ntr-un sistem de baze de date distribuite &%BDD(, informaiile sunt mprite n baze de date
mai mici distribuite fiecare pe calcultoare n reea. "n %BDD se ndeplinesc funcii de procesare a
interogrilor i de control al concurenei. "n mod tradiional, n cercetrile asupra %BDD, reelele de
calcultoare au fost considerate ca fiind #ino#ate de performanele reduse, astfel c s-a depus mult efort
n proiectarea Aoperaiilor bazei de dateB, ceea ce ar duce la minimizarea costului de transmisie al
datelor. dat cu dez#oltarea reelelor de mare #itez &'b:s(, costurile de transmisie a datelor n reea
au sczut i a de#enit necesar dez#oltarea unor noi algoritmi, care s utilizeze eficient lrgimea de
band disponibil &mai mare dect n cazul reelelor obinuite C .b:s(, adic s obin la ieirea
sistemului o producti#itate mai mare n rezol#area tranzaciilor.
n figura 1 se observ c fiecare site este un sistem centralizat de baze de date, care conine o
parte a bazei de date. Fiecare tranzacie poate fi format din unul sau mai multe procese care se execut
pe unul sau mai multe site-uri.
Adevaratul sens al atributului distribuit n contextul !"#$-urilor corespunde nu faptului c%
sistemul permite accesarea datelor de la distan&a 'prin re&ea(, ci a acelor implement%ri care ng%duie
aplica&iilor )i utilizatorilor s trateze baza de date ca pe un singur depozit logic, c*iar dac datele
constituente sunt repartizate n mai multe locaii ale reelei 'transparena complet a localizrii datelor(.
+otui problema este delicat i pentru c , din punctul de vedere al analizei - se poate oricnd crea o
aplicaie care s trateze unitar tabele de date situate pe calculatoare diferite. $ar pentru c se dorete
independena de limba-e 'sau de mediile de dezvoltare( sunt apreciate acele !"#$-uri care conin
integrate functionaliti care s asigure ditribuirea datelor in nodurile reelei.
.in/nd cont c de obicei, volumul i complexitatea datelor spulbera idealul 0un computer foarte
performant cumulnd ntreaga baz de date i deservind toti utilizatorii organizaiei0 i trebuie gasit o
soluie de compromis, devine foarte interesant colecia de criterii practice de ditribuire a datelor n
cazul fiecrei implementri, particularitile cernd un optim -alonat de urmatoarele aspecte1
-nu trebuie pierdut din #edere dezideratul #itezei@
-limita de stocare i puterea calculatoarelor gazd@
2
-limita de transfer a reelei@
-preferabil ca fiecare aplicaie s acceseze uzual un singur depozit de date &far a mpiedica
accesarea sau frec#ena redus a celorlalte noduri ale reelei(@
-folosirea funciilor t?o-p1ase-commit e$istente pentru a asigura integritatea datelor actualizate
ditribuite
-planificarea, controlul i minimizarea duplicrii de obiecte ale bazelor de date
-corelarea organizrii cu faciliti de optimizare distribuit ale %'BD-ului.
Cercetatorul C1ris Date, coleg de proiecte cu Codd, a enumerat cele +- cerine crora trebuie s li se
supun bazele de date ditribuite@ dintre acestea 6 sunt urmatoarele*
-. /utonomia local* datele locale sunt deinute i administrate local - nici un post nu depinde de
altele pentru a funciona.
D. =oate posturile sunt egale* nici un post nu se bazeaz pe o staie central. 5uncionare nentrerupt*
nu trebuie s fie necesar o oprire planificat &instalrile: tergerile efectuate la un post nu afecteaz
funcionarea celorlalte(.
E. =ransparena amplasrii* utilizatorii nu sunt obligai s tie unde sunt amplasate datele pentru a le
e$trage.
F. =ransparena duplicrii* relaiile dintre componentele bazei de date pot fi fragmentate pentru
stocare, dar acest lucru rmne transparent pentru utilizator.
G. ;relucrarea interogarilor distribuite* operaiile de citire:scriere se pot desfasura la mai multe posturi
permind optimizarea local i global a interogrilor
7. /ctualizrile distribuite* tranzaciile singulare pot e$ecuta codul la mai multe posturi.
H. 9ndependena 1ard?are* toate posturile particip ca membrii egali.
6. 9ndependena de sistem de operare* sunt suportabile mai multe sisteme de operare conectabile la
retea.
9ndependea de reea* sunt suportate mai multe reele prin protocoale comune.
+8. 9ndependena de bazele de date* se asigur accesul uniform &interfaa unic( pentru datele
pro#enind de la %'BD-uri diferite.I-J
!n sistem de baze de date este prin definiie* Aun sistem al crui scop principal este
acela de a ntreine informaia i de a o face disponibil la cerereB. Deseori, structurile de date
interne i plasrile fizice ale datelor n interiorul sistemului de baze de date sunt optimizate
pentru a atinge performane pentru acele cereri cunoscute ca fiind critice pentru aplicaie.
/plicaia este responsabil pentru manipularea informaiilor, n timp ce sistemul de baze de
date trebuie s asigure operaii de gestiune a datelor, independente de aplicaie. ;entru aplicaii
particulare orientate pe cerere, ca de e$emplu filtrarea informaiei, managementul bazelor de
date poate fi indi#idualizat complet pentru a ndeplini ne#oile aplicaiei.
1.4 Tranzacii
3
tranzacie reprezint e$ecuia unui program care acceseaz o baz de date. %copul
controlului concurenei i al procesului de reco#erK este acela da a pstra atomicitatea
tranzaciilor, astfel*
+. fiecare tranzacie acceseaz datele far a interfera cu celelelalte
-. dac tranzacia e terminat normal, atunci toate efectele rezultante sunt
fcute permantente@ altfel acestea nu au nici un efect.
tranzacie este o e$ecuie particular a unui program care manipuleaz baza de date
prin intermediul operaiilor de Read i Lrite. Din punctul de #edere al teoriei seriabilitii,
tranzacia face e$ecuia identificnd operaia de Read i pe cea de Lrite ct i ordinea e$ecuiei
acestora. ;entru fiecare Read i Lrite, tranzacia specific numele, dar nu i #aloarea
elementului n care se scrie i care se citete. De asemenea, fiecare tranzacie poate face
operaiile de Commit sau /bort pentru a indica dac e$ecuia pe care o reprezint este
terminat cu succes sau nu. I-J
De obicei se folosesc notaiile r
1
[x] sau w
1
[x] pentru a face diferenierea ntre operaiile de
?rite i cele de read asupra elementului de date x, e$ecutate de tranzacia =. De e$emplu,
urmatoarea figur prezint ordinea n care se #or e$ecuta D tranzacii*
IDJ
"n figura de mai sus, se obser# c w
2[z]
ateapt e$ecuia lui r
2
[x] i a lui r
2
[y], ns nu
conteaz n ce ordine se e$ecut r
2
[x] i r
2
[y].
rice tranzacie trebuie s satisfac un set de E condiii Matomicitate, consisten,
izolare, durabilitate.
/tomicitatea se refer la faptul c o tranzacie este considerat ca o unitate elementar
de prelucrare. /ceasta nseamn c e$ecuia unei tranzacii se face dup regula Atotul sau
nimicB, adic ori sunt e$ecutate toate operaiile din tranzacie, ori nu se e$ecut nimic. Dac o
tranzacie este ntrerupt datorit unor cauze oarecare, i re#ine %'BD-ului sarcina de a
asigura, ntr-un fel sau altul, terminarea tranzaciei. Dup eliminarea cauzei care a dus la
ntreruperea tranzacei, n funcie de stadiul de e$ecuie n care s-a aflat aceasta n momentul
apariiei ntreruperii, %'BD-ul poate proceda n dou moduri*
4
+( 5ie completeaz operaiile rmase nee$ecutate din cadrul tranzacei, terminnd
tranzacia cu succes@
-( 5ie anuleaz toate efectele operaiilor tranzaciei pn n momentul ntreruperii,
terminnd tranzacia prin abandonare.
Consistena unei tranzacii const pur i simplu n corectitudinea sa. rice tranzacie,
dac este e$ecutat independent, trebuie s menin consistena bazei de date. "n concluzie, o
tranzacie este un program corect care transform baza de date dintr-o stare consistent ntr-o
alt stare consistent a sa. ;rin consistena bazei de date nelegem satisfacerea tuturor
constrngerilor de integritate, e$plicite, cum ar fi*
-. !nicitatea c1eilor primare@
D. 9ntegriatatea referenial@
E. rice predicat e$primat n sens de constrngere de integritate asupra bazei de date.
Bineneles c este de neconceput #erificarea tuturor acestor condiii dup e$ecutarea
fiecrei tranzacii. De aceea unicul criteriu pentru stabilirea proprietii de consisten a unei
tranzacii rmne corectitudinea sa din punct de #edere logic. %pre deosebire de celelalte
proprieti din comple$ul /C9D care sunt asigurate de ctre sistem, proprietatea de consisten
a tranzaciei cade n sarcina programatorului de aplicaii. %trile intermediare prin care trece
baza de date n timpul e$ecuiei unei tranzacii nu sunt neaprat consistente.IFJ
9zolarea se refer la proprietatea oricrei tranzacii de a a#ea acces doar la strile
consistente ale bazei de date. /ceasta nseamn c modificrile efectuate de ctre o tranzacie
sunt inaccesibile altor tranzacii concurente pn n momentul #alidrii acesteia. ;rin
proprietatea de izolare se creeaz iluzia c fiecare tranzacie este e$ecutat singur n sistem.
!tilizatorul care a lansat o tranzacie nu #a percepe n nici un fel &cel putin n ceea ce pri#ete
rezultatele( faptul c alte tranzacii sunt e$ecutate n acelai timp n sistem. 9zolarea
tranzaciilor este asigurat prin algoritmii de control al concurenei. Conceptul de izolare este
apro$imat adesea prin cel de serializabilitate, dei nu se confund cu acesta. %erializabilitate,
dei este o condiie suficient pentru realizarea izolrii, nu este i necesar.
;roprietatea de izolare este important deoarece elimin fenomenul de abordare n
cascad.
Durabilitatea unei tranzacii este proprietatea prin care se garanteaz faptul c odat
tranzacia #alidat, rezultatele sale de#in permanente i sunt nscrise n baza de date. C1iar
dac dup momentul #alidrii apare un defect care mpiedic nscrierea normal a rezultatelor
tranzaciei n baza de date, acestea #or fi trecute n baza de date dup reluarea acti#itii.
Rezultatele tranzaciilor #alidate #or supra#ieui unor cderi de sistem.
5
Conceptul de gestiune a tranzaciilor se refer la problematica meninerii ntr-o stare
consistent a bazei de date n condiiile n care accesul la date se face n regim concurent i este
posibil apariia unor defecte. tranzacie este o unitate logic de prelucrare care asigur
consisten i siguran bazei de date. "n principiu orice e$ecuie a unui program se poate
considera o tranzacie dac baza de date este ntr-o stare consistent att nainte ct i dup
e$ecuia sa.
Consistena bazei de date este garantat independent de faptul c*
+. tranzacia a fost e$ecutat n mod concurent cu alte tranzacii
-. au aprut defecte n timpul e$ecutrii tranzaciei.
"n general, o tranzacie const dintr-o sec#en de operaii de citire i scriere a bazei de
date, la care se adaug o serie de operaii de calcul. Baza de date poate fi ntr-o stare temporar
inconsistent n timpul e$ecutrii tranzaciei, dar trebuie s fie n stri consistente att nainte
ct i dup e$ecuia tranzaciei.
=ranzacia n cauz nu se poate termina ntotdeauna cu succes, ci trebuie analizate i
celelalte alternati#e. =otui, orice tranzacie trebuie s se termine, indiferent de situaia
e$istent &c1iar i n cazul unor defecte(. Dac tranzacia reuseste s e$ecute cu succes toate
operaiile pre#zute, atunci aceasta se #a termina printr-o operaie de #alidare &commit(. "n
sc1imb, dac dintr-un moti# sau altul tranzacia nu reuseste sa-i e$ecute complet operaiile
pre#azute, atunci se #a termina printr-o operaie de abortare &abort sau rollbac2(. .oti#ele
pentru care o tranzacie se aborteaz sunt numerose, ele pot fi interne tranzaciei sau e$terne
acesteia &e$* detectarea de ctre %'BD a unei situaii de interblocare( I-J. "n cazul anularii,
e$ecuia tranzaciei este oprit, iar efectele tuturor operaiilor pe care le-a e$ecutat pn n acel
moment sunt anulate, astfel nct baza de date re#ine la starea dinaintea lansrii tranzaciei.
Comanda #alidrii unei tranzacii are dublu rol*
-. indic %'BD-ului momentul de la care efectele tranzaciei pot fi reflectate n baza de date i
de#in #izibile altor tranzacii@
D. marc1eaz momentul, ncepnd de la care efectele tranzaciei nu mai pot fi anulate
&tranzacia nu se mai poate aborta( i modificrile efectuate n baza de date de#in
permanente.
peraia de #alidare este #ital n cazul sistemelor concurente, deci acolo unde este
posibil e$ecutarea n acelai timp a mai multor tranzacii, care acceseaz aceeai baz de date.
;rin #alidare se pot pre#eni o serie de fenomene nedorite cum este abortarea n cascad a
tranzaciilor.
% presupunem c o tranzacie = este anulat dup ce a efectuat una sau mai multe
6
operaiuni de actualizare a bazei de date. "n acest caz datele alterate de ctre tranzacia = #or fi
readuse la #alorile pe care le-au a#ut nainte de a fi modificate de aceasta. 4ste ns posibil ca
unele dintre tranzaciile e$ecutate n mod concurent cu tranzacia = s fi accesat aceste date
nainte de abortarea lui =. /ceste tranzacii #or trebui s fie la rndul lor abortate, deoarece au
a#ut acces la date inconsistente din baz, ceea ce nseamn c rezultatele produse de ele pot fi
compromise. /cest efect se poate propaga n continuare i asupra altor tranzacii, pe un numr
nedefinit de ni#ele, conducnd la abortarea n cascad a tranzaciilor. 5enomenul este cunoscut
n literatura de specialitate sub numele de efect domino.
Dac se foloseste un mecanism de #alidare care respect cele dou reguli de mai sus,
atunci apariia fenomenului de abortare n cascad de#ine imposibil. "ntr-ade#ar, conform
primei reguli, nici o tranzacie nu #a putea accesa datele modificate de catre tranzacia = dect
dupa #alidarea acesteia. ;e de alt parte, conform regulii a doua, dup #alidarea sa, tranzacia =
nu mai poate fi abortat, deci nu poate declana un lan de abortri n cascad.
Nalidarea unei tranzacii marc1eaz, din punct de #edere logic, terminarea acesteia. Nalidarea
nu se poate face nainte ca operaiile specificate prin codul tranzaciei s fie e$ecutate integral i nainte
ca tranzacia s a)ung ntr-o stare ncepand de la care e$ist certitudinea ca nu mai poate fi abortat.
;n n momentul #alidrii, actualizrile efectuate de tranzacie sunt in#izibile altor
tranzacii, au caracter tentati# i pot fi oricnd re#ocate &odat cu abortarea tranzaciei(. Dup
#alidare actualizrile se nscriu cu caracter permanent n baza de date i de#in ire#ocabile.
Dup #alidare nu mai este posibil abortarea tranzaciilor.
%istemul bazei de date suporta operatii ale tranzactiilor precum* %tart, Commit si
Renuntare. !n program spune sistemului bazei de date ca este pe punctul de a incepe e$ecutia
unei noi tranzactii, folosind operatia %tart. /cesta indica teminarea unei tranzactii folosind
operatiile Commit sau /bort. 5olosind Commit, programul spune sistemului ca tranzactia a fost
terminata normal si toate efectele ulterioare ar trebui facute permanente. Daca operatia
Renuntare a fost trimisa %BD-ului atunci, tranzactia a fost terminata intr-un mod anormal, si ar
trebui ca efectele acesteia sa nu fie sal#ate
1.5 Elemente de date
baza de date este partitionata in mai multe elemente de date &data items(. /cestea sunt
portiuni ale bazei de date care pot constitui obiectul unei operatii de blocare &loc2(. ;rin
blocarea unui element de date, o tranzactie poate impiedica accesul altor tranzactii la elementul
de date blocat pana in momentul deblocarii acestui element de date de catre tranzactia care a
efectuat blocarea. 'estiunea operatiilor de blocare, precum si arbitrarea cererilor de blocare
#enite din partea tranzactiilor este realizata de catre o componenta speciala a %'BD numita
7
loc2 manager.
<atura si dimensiunea elementelor de date este stabilita de proiectantul sistemului. De
e$emplu, in cazul modelului de date relational elementele de date pot fi de dimensiuni mari,
cuprinzand relatii intregi ale bazei de date, pot fi grupuri de tuple, tuple indi#iduale sau c1iar
componente ale tuplelor. ;rin alegerea unor elemente de date de mari dimensiuni se reduce
numarul actiunilor de blocare ceea ce inseamna reducerea e$cesului de timp consumat de
sistem pentru gestiunea acestor operatii, precum si reducerea spatiului de memorie necesar
inregistrarii bloca)elor. 9n sc1imb folosind elemente de date de mici dimensiuni creste gradul de
concurenta suportat de sistem deoarece #or putea fi e$ecutate in paralel un numar mai mare de
tranzactii care opereaza pe elemente de date diferite. 9n practica dimensiunea potri#ita a
elementelor de date este data de e$tinderea operatiilor efectuate de tranzactiile cu cea mai mare
frec#enta. /stfel daca tranzactia tipica presupune efectuarea unor operatii de cuplare, atunci
elementul de date #a fi relatia. Daca insa ma)oritatea tranzactiilor efectueaza operatii asupra
unor tuple indi#iduale, atunci este con#enabil ca tupla sa fie aleasa ca element de date.
II. Controlul concurenei
2.1 Conceptul de concuren
Controlul concurentei este acti#itatea de coordonare a actiunilor proceselor care
opereaza in paralel, accesand date comune. ;rocesul de reco#erK este acti#itatea prin care se
asigura ca esecurile 1ard?are sau soft?are nu afecteaza datele e$istente. ;roblema controlului
concurentei si problema de reco#erK se pun in design-ul 1ard?are, al sistemelor de operare , al
sistemelor in timp real, al sistemelor de comunicatii si al celor de baze de date.
baza de date este constituita dintr-o colectie de elemente de date. 5iecare element al
bazei are o #aloare. 9n practica, acest element al bazei de date poate fi un cu#ant al memoriei
principale, o pagina pe disc, un fisier, sau un camp al unei inregistrari. Dimnesiunea datelor
continute intr-un element este numita granularitatea elementului de date.IDJ
!n sistem de baze de date &%BD( reprezinta o colectie de module 1ard?are si soft?are
care suporta comenzi de acces al bazelor de date , numite operatii ale bazei de date. Cele mai
importante operatii sunt Read &citire( si Lrite &?rite(*
peratia Read&x( #a returna #aloarea stocata in elementul de date x.
peratia Lrite&x,val( sc1imba #aloarea elementului x in val.
18
%istemul de baze de date e$ecuta fiecare operatie atomic. /ceasta inseamna ca sistemul se
comporta ca si cand e$ecuta operatiile sec#ential &cate una la un moment dat(. 9nsa, de obicei
aceste operatii sunt e$ecutate concurential&mai multe operatii ruleaza in acelasi timp(.
,a sistemele in care o baza de date este accesata simultan de catre mai multi utilizatori
apar situatii de conflict datorate accesului concurent la datele care constituie o resursa comuna.
.odul de rezol#are al conflictului depinde de natura cererilor de acces la date , functie de care
putem distinge doua cazuri e$treme*
D( Daca cererile de acces sunt de tipul 0regasire3, atunci sec#entializarea accesului la
mediul de memorare este suficienta pentru a nu mai fi ne#oie de alte precautii. /sa
sunt bazele de date statistice, unde mai multi utilizatori interog1eaza baza de date
simultan. /tata timp cat nici unul dintre utilizatori nu face modificari asupra datelor,
nu are importanta prea mare ordinea in care se asigura accesul utilizatorilor la date.
Ca urmare, rezol#area situatiilor conflictuale cauzate de operatiunile de citire
simultana poate fi lasata in seama sistemului de operare care stabileste ordinea de
satisfacere a cererilor dupa criteriul asigurarii concurentei ma$ime de operare,
minimizand timpul global de satisfacere a cererrilor.
E( Daca cererile de acces sunt de tipul 0actualizare3, atunci este necesara aplicarea
unor strategii adec#ate de tratare a acestora. 4$emplul tipic pentru aceasta situatie il
constituie sistemele de rezer#are a locurilor, unde mai multi agenti fac rezer#ari
simultan si deci modifica permanent lista locurilor libere si lista rezer#arilor. 9n lipsa
unui control adec#at al cererilor de acces e$ista pericolul ca acelasi loc sa fie
rezer#at de mai multe ori. /cest lucru e posibil deoarece in inter#alul de timp de la
acceptarea unei anumite cereri de rezer#are a unui loc anume si pana la rezol#area
acesteia &eliminarea locului solicitat din lista locurilor libere( ar putea fi acceptate si
rezol#ate alte cereri de rezer#are pentru acelasi loc. Deci doua procese care citesc si
modifica #aloarea aceluiasi obiect ar putea interactiona in mod nedorit atunci cand
sunt e$ecutate simultan. ;entru a e#ita interactiunile nedorite este necesara
impunerea unor restrictii asupra e$ecutiei concurente a proceselor care e$ecuta
operatii de citire si modificare a datelor.IGJ
Calea cea mai simpla de e#itare a interactiunilor este de a e$ecuta tranzactiile in mod
independent una de cealalta. 4ste clar ca o asemenea alternati#a prezinta interes doar din punct
de #edere teoretic si este practic inacceptabila, deoarece micsoreaza eficienta sistemului. De
fapt, ni#elul de concurenta , masurat prin numarul de ttranzactii e$ecutate concurent, este unul
dintre cei mai importanti parametri pentru caracterizarea unui asemenea sistem. Din acest
moti#, mecanismele de control ale concurentei urmaresc realizarea unui compromis intre
mentinerea consistentei bazei de date si obtinerea unui ni#el de concurenta cat mai ridicat.
Din punctul de #edere al tranzactiilor, controlul concurentei asigura proprietatile de
11
izolare si consistenta ale acestora, c1iar si in conditiile e$ecutarii concurente a mai multor
tranzactii. 9n cele ce urmeaza #om presupune ca sistemul in discutie este absolut sigur, deci ne
aflam in situatia ideala in care nu sunt posibile nici un fel de defecte &1ard?are sau soft?are(.
Desi ipoteza este total nerealista, ea constituie o simplificare necesara deoarece permite
izolarea aspectelor legate de controlul concurentei fata de cele relati#e la rezistenta la defecte.
2.2 Mecanisme de control
;rincipalele categorii de mecanisme de control sunt*
1.Mecanisme de blocare
2.ptimistic M prete sincronizarea tranzaciilor pana cnd toate operaiile sunt efectuate. Conflictele sunt
rare , dar nu pot fi anticipate.
3.!esimistic M posibilele e$ecuii concurente sunt sincronizate de#reme n ciclul lor de e$ecuie. 4ste foarte
probabil s apar bloca)e, dar acestea pot fi anticipate din timp.
Mecanismul optimistic de control este o metoda de control al accesului concurenial la baze de date
relaionale, care nu folosete blocarea &loc2ing(. /cest mecanism se bazeaz pe faptul ca ma)oritatea
tranzaciilor din baza de date nu intr n conflict cu alte tranzacii, permind mecanismului optimistic s fie
ct de permisi# posibil, permind e$ecutarea tranzaciilor.
4$ista trei faze n Controlul ptimistic al accesului Concurenial*
+ . Citire " Clientul citete #alori din baza de date, le stoc1eaz intr-un cac1e pe care clientul
l poate apoi edita.
-. #alidare M Dup terminarea editrii de ctre client a #alorilor din cac1e, clientul iniiaz
stocarea sc1imbrilor napoi n baza de date. n timpul #alidrii, un algoritm #erifica daca sc1imbrile
datelor intra n conflict cu*
- tranzacii de)a comise n cazul sc1emei cu #alidare in#ersa
- tranzacii care sunt n e$ecuie n cazul sc1emei cu #alidare directa
Daca e$ista un conflict, un algoritm de rezol#are al conflictului trebuie folosit pentru a rezol#a
conflict& ideal prin minimizarea numrului de sc1imbri fcute de user(, sau ca ultima soluie, se poate opri
ntreaga tranzacie rezultnd pierderea tuturor sc1imbrilor fcute de user.
D. $criere M Daca nu e$ista posibilitatea apariiei conflictelor tranzacie ncepe e$ecuia.
Cnd conflictele sunt rare, #alidarea se poate face n mod eficient, ducnd la performante mai mari
dect alte metode de control al accesului concurenial e$istente. =otui, daca aceste conflicte apar des, costul
12
tranzaciilor restartate repetat, afecteaz performanta intr-un mod semnificati#, a#nd performante mult mai
sczute dect alte mecanisme fr blocare ale controlului concurenei.
.ulte aplicaii a#ansate pe calculator, cum ar fi proiectarea asistat i e$ecuia asistat de calculator
&C/D:C/. (, managementul de reea, comercializarea instrumentelor financiare, informaia medical,
automatizarea lucrrilor de birou i mediile de dez#oltare soft?are & %D4-urile (, pot fi considerate baze de
date de #olum mare & de e$.* toate componentele soft?are dintr-un %D4 (. 4ste de dorit ca aceste tipuri de
sisteme de aplicaii s se bazeze pe capabiliti de management de date similare celor asigurate de sistemele
de management ale bazelor de date & DB.% ( pentru procesare traditional a datelor.
/ceste capabiliti includ adugarea, eliminarea, ncrcarea i actualizarea datelor dintr-o stocare on-
line, i meninerea compatibilitii informaiilor stocate intr-o baza de date. Compatibilitatea dintr-o baza de
date se menine daca fiecare item de date respecta:ndeplinete condiiile specifice compatibilitii.
/cestea sunt n mod tipic implicite n procesarea datelor n sensul ca acestea sunt cunoscute
implementatorilor de aplicaii, i programate n uniti atomice numite tranzacii care transforma baza de
date dintr-o stare consistenta n alta. Compatibilitatea poate fi atacata de accesul concurent la acelai item
de date prin tranzacii multiple.
!n DB.% rezol# aceasta problem prin #alidarea politicii de control al concurenei care permite s
fie e$ecutate:efectuate numai programe de conser#are a compatibilitii, ale tranzaciilor concurente.
,a aplicaiile tradiionale, natura datelor i operaiilor efectuate asupra datelor sunt supuse
mecanismelor de control al concurentei care aplica modelul tranzaciei clasice.
/plicaiile a#ansate, prin contrast, au tipuri diferite de condiii de consistenta, si, n general, modelul
tranzaciei clasice nu se aplica. De e$emplu, aplicaiile gen management de reea i informatica medicala
pot necesita procesare n timp real. /ltele gen C/D:C/. i automatizarea lucrrilor de birou implica
sesiuni lungi interacti#e ale bazelor de date i colaborarea intre multipli utilizatori de baze de date.
2.3. %eadloc&'uri
.anager-ul de date trebuie sa gaseasca o strategie pentru a detecta deadloc2-urile pentru ca
o tranzactie sa nu fie blocata pentru totdeauna. strategie ar putea fi timeout* daca manager-ul obser#a
ca o tranzactie a asteptat prea mult, atunci acesta #a crede ca tranzactia respecti#a este implicata intr-un
deadloc2, si de aceea o restarteaza. Din moment ce manager-ul nu este +88O sigur de faptul ca
tranzactia este implicata in deadloc2, ar putea sa restarteze o tranzactie care nu face parte dintr-un ciclu
deadloc2, insa asteapta o alta tranzactie care se e$ecuta pe o perioada mai mare de timp. /ceasta
problema se poate rezol#a cum#a printr-o perioada de timeout mai mare.Cu cat perioada de timeout
13
este mai mare, cu atat cresc sansele ca o tranzactie anulata sa fie parte a unui deadloc2.9n acest caz,
apare o alta problema, faptul ca manager-ul nu restarteaza o tranzactie implicata in deadloc2 pana cand
timeout-ul nu este terminat.%e obser#a ca alegerea timpului de timeout este un punct c1eie in cazul
acestei metode.
alta metoda este de a detecta deadloc2-urile intr-un mod precis. ;entru aceasta manager-ul
tine in graf . !n deadloc2 este cel mai bine ilustrat cu graful ?ait-for care este astfel construit* ;entru
toate perec1ile de tranzactii T
i
si

T
j
, este trasata o muc1ie de la T
i
la T
j
daca T
i
asteapta un element de
date care este blocat de T
j .
Daca graful ?ait-for contine deseneaza un ciclu, atunci e$ista posibilitatea
aparitiei deadloc2-ului. ;entru rezol#area problemei deadloc2-ului,se poate aplica detectia deadloc2-
ului sau pre#enirea acestora.9n modelul pe care-l tratam, se presupune ca e$ista un mecanism de
detectie deadloc2 care se e$ecuta periodic. 9n momentul in care este detectat un ciclu, mecanismul
alege tranzactia a carei anulare costa cel mai putin, apoi o anuleaza.
5actorii care influenteaza aceasta alegere sunt*
1) 4fortul care a fost in#estit in tranzactie. /cest efort este pierdut daca tranzactia este anulata.
2) Costul anularii tranzactiei. /cesta depinde de obicei de numarul de updeate-uri pe care le-a
facut de)a tranzactia.
3) 4fortul necesar pentru a termina e$ecutia tranzactiei. .anager-ul e#ita de obicei tranzactia a
carei e$ecutie este aproape terminata.De aceea, acesta trebuie sa fie capabil sa estimeze
modul in care #a e#olui tranzactia& de e$emplu* bazandu-se pe tipul tranzactiei- depozitul
este scurt, auditul necesita mai multe timp(
4) <umarul de cicli in care este implicata tranzactia.
tranzactie poate fi implicata in deadloc2-uri in moduri repetate.9n fiecare deadloc2, aceasta
este aleasa #ictima pentru a fi restartata, ca apoi sa fie implicata intr-un nou deadloc2. ;entru a e#ita
aceste restarturi ciclice, algoritmul de selectare al #ictimei are trebui sa tina cont si de numarul de
anulari ale fiecarei tranzactii.I-J
Deadlockuri distribuite
Ca si in cazul bazelor de date centralizate, un planificator -;, distribuit trebuie sa detecteze si sa
rezol#e deadloc2-urile.=imeout-ul poate fi folosit pentru intuirea deadloc2-urilor, sau se poate folosi
graful ?ait-for pentru o detectare e$plicita a deadloc2-urilor.
;lanificatorul site-ului i poate detine un graf ?ait-for local, L5'
i
, ce contine tranzactiile care
astepta ca alte tranzactii sa desfaca o blocare a elementelor de date tratate de acel planificator.!n graf
?ait-for global, L5' reprezinta suma tuturor grafurilor ?ait-for locale.Din pacate, este posibil ca
L5' sa contina un ciclu, si de aceea sistem-ul este in stare de interblocare, desi fiecare graf local este
aciclic.
12
Detectia globala de deadlock
maniera simpla de a detecta deadloc2-ul este ca fiecare planificator sa trimita sc1imbarile
inter#enite in graful sau !"#
i
unui proces special numit detecor global de deadloc2. /cest detector
global de deadloc2 tine ultimile copii ale grafurilor L5' locale pe care le primeste de la fiecare
planificator. /cest detector face periodic suma acestor grafuri ?ait-for pentru a construi un graf ?ait-
for global, pe care-l #erifica daca contine cicli.
'raful ?ait-for global este analizat periodic, ceea ce inseamna ca deadloc2-urile raman
nedetectate pentru o perioada de timp.Ca si in cazul bazelor de date distribuite, principala problema in
cazul deadloc2-urilor este ca tranzactiile implicate in interblocare folosesc resurse. 9ntarzierea in
construirea grafului ?ait-for global este mai mare ca in cazul bazelor de date centralizate.
9n momentul in care detectorul global de deadloc2 gaseste un deadloc2, #a trebui sa selecteze o
#ictima pentru a o anula. /ceasta selectie este facuta ca in cazul bazelor de date centralizate.De aceea,
detecorul global de deadloc2 necesita informatii de la fiecare site pentru a selecta o #ictima buna.;entru
a face ca aceasta informatie sa circule in sistem, sunt necesare mai multe mesa)e, deci un cost mai
mare.;entru micsorarea acestui cost este folosita o te1nica $iggybacking.
9n cazul te1nicii piggKbac2ing, n mesa)e care isi au origine intr-un site comun, adresate unui alt site,
sunt cuplate intr-un pac1et mai mare./stfel, numarul de mesa)e este cu mult redus. Costul de
comunicatie este o functie de numarul de mesa)e care circula in sistem.
/ceasta te1nica poate fi aplicata detectiei globale de deadloc2.5iecare site trimite graful sau
?ait-for detectorului global de deadloc2, impreuna cu detaliile despre fiecare tranzactii.=oate aceste
informatii sunt trimise intr-un singur mesa), reducand astfel costul de trimitere.I-J

3. T(o p)ase loc&in*
3.1 %escrierea al*oritmului
Cnd multiple tranzacii sunt e$ecutate simultan pe diferite procese &in diferite procesoare(, a#em
ne#oie de mecanisme pentru a e#ita conflictele ce ar putea apare intre ele. /ceste mecanisme se numesc
0algoritmi de control concurent3, iar t?o-p1ase loc2ing este unul dintre ei. 4ste cel mai #ec1i i cel mai des
folosit algoritm de control concurent. 9n forma sa simpl, cnd un proces are ne#oie s citeasc sau s scrie
un fiier, mai nti bloc1eaz &loc2s( acel fiier. Blocarea se face folosind un singur manager de blocare
central, sau cte un manager de blocare local pe fiecare main, pentru administrarea local a fiierelor. "n
ambele cazuri, managerul de blocare menine o lista cu fiierele blocate i ignor toate ncercrile de blocare
asupra fiierelor care sunt de)a blocate de alte procese.
%c1ema de baza este mult prea restricti#a i poate fi mbuntit prin distingerea blocrilor de citire
13
de blocrile de scriere. Daca s-a efectuat un bloca) de citire asupra unui fiier , un alt bloca) de citire poate fi
permis. Bloca)ele de citire sunt fcute pentru a ne asigura ca fiierul nu se sc1imba&e$clude toate citirile(, i
nu are nici un moti# pentru a interzice alte tranzacii de la citire. 9n contrast, cnd un fiier este blocat pentru
scriere, nici un fel de blocri nu mai sunt premise. /stfel blocrile de citire sunt distribuite, mprite, dar
cele de scriere trebuiesc s fie e$clusi#e.
;entru simplitate, am presupus c unitatea de blocare este ntreg fiierul. 9n realitate, unitatea de
blocare poate fi mai mica, de e$emplu o nregistrare indi#iduala sau o pagina, sau mai mare, ntreaga baza
de date. .odul in care se face blocarea se numete granularitatea blocrii. Cu ct este mai fin
granularitatea, cu att mai precisa poate fi fcut blocarea, deci gradul de paralelizare este mai ridicat&de
e$emplu prin neblocarea unui proces care #rea s foloseasc sfritul unui fiier doar pentru c un alt
proces folosete nceputul aceluiai fiier(.
;e de alta parte, o granularitate fin de blocare necesit mai multe blocri, este mai costisitoare i are
o probabilitate mai mare de blocare. Blocnd i elibernd elementele e$act atunci cnd este necesar poate
duce la inconsistent i blocarea total. 9n =?o-;ase ,oc2ing ilustrat mai )os, procesul ac1iziioneaz mai
nti toate elementele de care are ne#oie in timpul fazei de cretere, dup care le elibereaz in timpul fazei
de descretere. Daca un proces nu realizeaz actualizarea unui fiier pana a)unge in faza de eliberare, atunci
neblocarea unui element poate fi tratata pur i simplu prin eliberarea tuturor elementelor i reluarea
procedeului dup un scurt timp. .ai mult, poate fi demonstrat &4s?aran , +67G ( ca daca toate tranzaciile
folosesc t?o-p1ase loc2ing, atunci toate planificrile realizate prin ntreeserea lor pot fi serializabile. De
aceasta t?o-p1ase loc2ing este foarte rspndit.
14
5ig D.+ %c1ema =?o-;1ase ,oc2ing
"n multe sisteme, faza de eliberare nu are loc pn cnd tranzacie nu a terminat de rulat, i a fost
realizat cu succes sau abortat. /ceast politic se numete strict t?o-p1ase loc2ing i are dou a#anta)e.
;rimul este acela c o tranzacie ntotdeauna citete o #aloare scris de o tranzacie de)a realizat@ astfel nu
este posibil abortarea unei tranzacii deoarece calculele fcute s-au bazat pe un fiier pe care nu l-au #zut.
/l doilea a#anta) este ca toate blocrile i eliberrile de elemente pot fi tratate de sistem fr ca tranzacia s
fie contienta de ele* blocrile se realizeaz de fiecare dat cnd un fiier este accesat i sunt eliberate cnd
tranzacia s-a nc1eiat. /ceasta politica elimina abortrile in cascada* nu mai este ne#oie s aborteze o
tranzacie de)a fcut deoarece a citit un fiier necorespunztor.
=?o-;1ase ,oc2ing poate duce la blocarea totala. Daca doua procese ncearc fiecare s bloc1eze
aceeai perec1e de elemente, dar in ordine in#ersa, poate rezulta o blocare totala. =e1nicile uzuale aplicate
aici, cum ar fi ac1iziionarea tuturor elementelor intr-o ordine bine stabilita pentru a pre#eni ciclii de oprire
i ateptare. ,a fel de posibila este i determinarea bloca)elor prin meninerea unui graf e$plicit, in care este
inut e#identa proceselor i a elementelor asupra crora opereaz. /stfel, cnd se tie apriori ca un element
nu poate fi inut mai mult de = secunde, o sc1ema de e$pirare a timpului poate fi folosita* daca un element
este blocat de un proces mai mult de = secunde, atunci a#em o blocare totala.
9mplementarea -;, pentru orice sistem depinde foarte mult de design-ul sistemului i de
15
accesibilitatea facilitailor sistemului de operare. 9mplementarea se realizeaz, de obicei, cu a)utorul unei
combinaii dintre managerul de blocare &,. M ,oc2 .anager( i managerul de tranzacii &=. M =ranzaction
.anager(. .anagerul de blocare ser#ete la blocarea i deblocarea operaiilor. Cnd =. primete o operaie
de citire sau scriere de la o tranzacie , trimite operaia corespunztoare de blocare ctre ,.. Dup ce ,.
#erifica setarea bloca)ului, =. trimite mesa)ul de citire sau scriere ctre managerului bazei de date.
3.1.1 Mana*erul de bloca+

.anagerul de bloca) menine un tabel de blocri i suporta operaiile de blocare&id-ul tranzaciei ,
item-ul datei , modul ( i deblocare&id-ul tranzaciei , item-ul datei(, unde idul tranzac%iei este
identificatorul tranzaciei care cere blocarea, itemul datei reprezint numele date ce urmeaz a fi blocata ,
iar modul poate fi 0citire3 sau 0scriere3. ;entru a procesa o operaie de blocare, managerul de blocare
ncearc s seteze bloca)ul specificat prin adugarea unei intrri in tabelul de bloca)e. Daca o alta tranzacie
deine un bloca) ce poate intra in conflict cu cel ce urmeaz fi introdus, atunci ,. adug cererea de
blocare intr-o coada de cereri in ateptare pentru respecti#e data. Deblocarea elibereaz bloca)ul specificat i
permite orice cerere de blocare care nu mai este blocata.
peraiile de blocare i deblocare sunt in#ocate frec#ent. 9n ma)oritatea sistemelor de procesare de
tranzacii fiecare tranzacie face foarte puine calcule pentru fiecare data pe care o acceseaz. De aceea, daca
blocarea nu este foarte rapida, consuma o parte semnificati# din timpul procesorului. .anagerul de bloca)
este adesea optimizat pentru cazuri speciale, cum ar fi eliberarea tuturor bloca)elor imediat. Deoarece
managerul de tranzacii elibereaz toate bloca)ele de citire ale unei tranzacii de ndat ce tranzacie se
nc1eie, eliberarea bloca)elor de citire ar trebui s fie o operaie de baza a managerului. De asemenea
eliberarea bloca)elor de scriere este o operaie de baza a managerului de bloca)e.
=abelul de bloca)e trebuie prote)at, astfel nct s fie accesat doar de programele care
implementeaz blocarea i deblocarea. /ceasta protecie poate fi asigurata prin integrarea managerului de
bloca)e in sistemul de operare sau prin implementarea managerului ca monitor sau dri#er .
3.1.2 Blocarea ,i -ntreruperea tranzaciilor
9n momentul in care ,. elibereaz un bloca) pentru o data $, el poate acorda cereri de bloca)e care
16
ateptau in coada de bloca)e a datei $. Daca e$ista astfel de cereri in ateptare , atunci ,. trebuie s le
programeze in mod corect, altfel e$ista riscul ca unele s fie ntrziate pentru totdeauna. .ecanismul prin
care managerul de bloca)e ntrzie tranzacia =
i
i apoi o debloc1eaz depinde de sincronizarea proceselor
oferit de sistemul de operare i de modul de organizare a tranzaciilor i a modulelor bazei de date. De
e$emplu, presupunem ca fiecare tranzacie este e$ecutata ca un proces, i sistemul de baze de date este de
asemenea un proces. Baza de date primete cereri de citire i scriere ca mesa)e. ;entru fiecare asemenea
mesa), trimite managerului de bloca)e comenzi pentru a seta bloca)ele respecti#e. Daca baza de date nu
rspunde la mesa)ele unei tranzacii =
i
, tranzacia #a fi blocata. Deblocarea poate fi realizata prin trimiterea
mesa)ului de rspuns.
3.1.3 .tomicitatea citirilor ,i scrierilor
4$ista patru operaii folosite pentru e#idenierea corectitudinii pentru -;,* Blocare, Deblocare,
Citire i %criere. /ceste operaii trebuiesc implementate in mod atomic. ;entru a ne asigura ca e$ecuiile
concurente ale blocrilor i deblocrilor sunt atomice, accesele la tabelul de bloca)e trebuie s fie
sincronizat folosind un mecanism de sincronizare al sistemului de operare, cum ar fi semafoarele i
monitoarele. Daca accesele la tabel sunt sincronizate de un sigur semafor &sau monitor(, atunci o rata foarte
mare de blocri pot face ca semaforul s bloc1eze sistemul. /cest lucru poate fi corectat prin mprirea
tabelului in cte#a tabele component, fiecare a#nd un semafor pentru serializarea acceselor pentru fiecare
component. ;entru a introduce o intrare pentru un bloca) , operaia de blocare selecteaz component
potri#ita prin analizarea parametrilor i apoi trimind o cerere ctre semaforul corespunztor acelei
componente.
3.1.4 !rocesul de sosire a tranzaciilor
=ranzaciile pro#in dintr-un numr finit de surse &notate cu %(, astfel nct rata de sosire pentru un
numr . de tranzacii este* P&.( C &% - .(:Q , unde Q este timpul mediu de ateptare. %e #or considera
tranzaciile ca fiind unilaterale, astfel inct user-ul nu #a mai fi implicat dup ce tranzacia #a fi e$ecutata,
17
adic nu inter#in timpi de ateptare legai datorai user-ilor I/gra?al et al. +6H7aJ.9n cadrul testelor de
#erificare a tranzaciilor este adoptata o distribuite e$ponenial pentru a e#ita timpi de ateptare foarte mari
I'raK+66DJ.
!n sistem cu un % suficient de mare este considerat a fi desc1is cu o rata de sosiri a tranzaciilor
independenta de numrul de tranzacii din sistem. ;rocesul de sosire a tranzaciilor intr-un sistem este , de
obicei, considerat a fi o distribuie ;oisson &determinarea numrului de apariii ale unui e#eniment intr-un
inter#al de timp specificat, sau intr-un anumit spaiu( cu o rata de sosiri R ISleinroc2 +67FJ. Caracteristica
timpului de rspuns mediu poate fi folosita pentru compararea performanelor unor metode de control al
concurentei.
!n sistem cu % C . surse este considerat a fi &nc'is cnd Q C 8. tranzacie completata este apoi
nlocuit de o nou tranzacie astfel nct gradul de concurena a tranzaciilor din sistem este ntotdeauna ..
/cest model de sistem nc1is este util pentru comparaia metodelor de control al concurentei deoarece*
a(. %oluia unui model nc1is poate fi folosita ca un sub-model pentru e#aluarea performantelor unui
sistem cu sosiri e$terne I,azo?s2a et al. +6HEJ@
b(. este mai uor de estimat #rful de performanta al metodelor de control al concurentei prin
simularea unui model nc1is in locul unuia desc1is.
!n model bazat pe frec#enta descrie fraciunea f
2
de tranzacii din C
2
procesate de sistem. 9ntr-un
sistem desc1is rata de sosire a tranzaciilor in C
2
este
, +T 2 TS , unde S este mrimea celei mai mari tranzacii.
<umrul mediu de tranzacii din C
2
este .
2
C UR
2
, unde R
2
este timpul mediu de rspuns al
tranzaciilor din C
2
.
3.1.5 Blocarea ,i analiza per/ormanelor blocrii
9n cazul blocrii standard , bloca)ele sunt de obicei cerute , ceea ce poart numele de blocare
dinamica, iar blocarea statica presupune ca toate obiectele bazei de date, necesare pentru e$ecuia unei
tranzacii, s fie cunoscute nainte i sunt cerute nainte ca tranzacia s i nceap e$ecuia. ,ucrarea de
fata se ocupa cu studierea metodei -;, %trict pentru care bloca)ele sunt eliberate la completarea tranzaciei .
.etoda de ateptare generala, conform creia o tranzacie , care are o cerere de bloca) ce intra in conflict cu
alte bloca)e, este blocata i ateapt eliberarea bloca)ului, insa este susceptibila s a)ung intr-un impas daca
doua tranzacii sunt blocate pe timp nelimitat , fiecare ateptnd de la cealalt eliberarea bloca)elor.
28
3.2 %eadloc&'uri
.anager-ul de date trebuie sa gaseasca o strategie pentru a detecta deadloc2-urile pentru ca
o tranzactie sa nu fie blocata pentru totdeauna. strategie ar putea fi timeout* daca manager-ul obser#a
ca o tranzactie a asteptat prea mult, atunci acesta #a crede ca tranzactia respecti#a este implicata intr-un
deadloc2, si de aceea o restarteaza. Din moment ce manager-ul nu este +88O sigur de faptul ca
tranzactia este implicata in deadloc2, ar putea sa restarteze o tranzactie care nu face parte dintr-un ciclu
deadloc2, insa asteapta o alta tranzactie care se e$ecuta pe o perioada mai mare de timp. /ceasta
problema se poate rezol#a cum#a printr-o perioada de timeout mai mare.Cu cat perioada de timeout
este mai mare, cu atat cresc sansele ca o tranzactie anulata sa fie parte a unui deadloc2.9n acest caz,
apare o alta problema, faptul ca manager-ul nu restarteaza o tranzactie implicata in deadloc2 pana cand
timeout-ul nu este terminat.%e obser#a ca alegerea timpului de timeout este un punct c1eie in cazul
acestei metode.
alta metoda este de a detecta deadloc2-urile intr-un mod precis. ;entru aceasta manager-ul
tine in graf . !n deadloc2 este cel mai bine ilustrat cu graful ?ait-for care este astfel construit* ;entru
toate perec1ile de tranzactii T
i
si

T
j
, este trasata o muc1ie de la T
i
la T
j
daca T
i
asteapta un element de
date care este blocat de T
j .
Daca graful ?ait-for contine deseneaza un ciclu, atunci e$ista posibilitatea
aparitiei deadloc2-ului. ;entru rezol#area problemei deadloc2-ului,se poate aplica detectia deadloc2-
ului sau pre#enirea acestora.9n modelul pe care-l tratam, se presupune ca e$ista un mecanism de
detectie deadloc2 care se e$ecuta periodic. 9n momentul in care este detectat un ciclu, mecanismul
alege tranzactia a carei anulare costa cel mai putin, apoi o anuleaza.
5actorii care influenteaza aceasta alegere sunt*
D. 4fortul care a fost in#estit in tranzactie. /cest efort este pierdut daca tranzactia este
anulata.
E. Costul anularii tranzactiei. /cesta depinde de obicei de numarul de updeate-uri pe care
le-a facut de)a tranzactia.
F. 4fortul necesar pentru a termina e$ecutia tranzactiei. .anager-ul e#ita de obicei
tranzactia a carei e$ecutie este aproape terminata.De aceea, acesta trebuie sa fie capabil sa
estimeze modul in care #a e#olui tranzactia& de e$emplu* bazandu-se pe tipul tranzactiei-
depozitul este scurt, auditul necesita mai multe timp(
G. <umarul de cicli in care este implicata tranzactia.
tranzactie poate fi implicata in deadloc2-uri in moduri repetate.9n fiecare deadloc2, aceasta
este aleasa #ictima pentru a fi restartata, ca apoi sa fie implicata intr-un nou deadloc2. ;entru a e#ita
aceste restarturi ciclice, algoritmul de selectare al #ictimei are trebui sa tina cont si de numarul de
anulari ale fiecarei tranzactii.I-J

Deadlockuri distribuite
21
Ca si in cazul bazelor de date centralizate, un planificator -;, distribuit trebuie sa detecteze si sa
rezol#e deadloc2-urile.=imeout-ul poate fi folosit pentru intuirea deadloc2-urilor, sau se poate folosi
graful ?ait-for pentru o detectare e$plicita a deadloc2-urilor.
;lanificatorul site-ului i poate detine un graf ?ait-for local, L5'
i
, ce contine tranzactiile care
astepta ca alte tranzactii sa desfaca o blocare a elementelor de date tratate de acel planificator.!n graf
?ait-for global, L5' reprezinta suma tuturor grafurilor ?ait-for locale.Din pacate, este posibil ca
L5' sa contina un ciclu, si de aceea sistem-ul este in stare de interblocare, desi fiecare graf local este
aciclic.

Detectia globala de deadlock
maniera simpla de a detecta deadloc2-ul este ca fiecare planificator sa trimita sc1imbarile
inter#enite in graful sau !"#
i
unui proces special numit detecor global de deadloc2. /cest detector
global de deadloc2 tine ultimile copii ale grafurilor L5' locale pe care le primeste de la fiecare
planificator. /cest detector face periodic suma acestor grafuri ?ait-for pentru a construi un graf ?ait-
for global, pe care-l #erifica daca contine cicli.
'raful ?ait-for global este analizat periodic, ceea ce inseamna ca deadloc2-urile raman
nedetectate pentru o perioada de timp.Ca si in cazul bazelor de date distribuite, principala problema in
cazul deadloc2-urilor este ca tranzactiile implicate in interblocare folosesc resurse. 9ntarzierea in
construirea grafului ?ait-for global este mai mare ca in cazul bazelor de date centralizate.
9n momentul in care detectorul global de deadloc2 gaseste un deadloc2, #a trebui sa selecteze o
#ictima pentru a o anula. /ceasta selectie este facuta ca in cazul bazelor de date centralizate.De aceea,
detecorul global de deadloc2 necesita informatii de la fiecare site pentru a selecta o #ictima buna.;entru
a face ca aceasta informatie sa circule in sistem, sunt necesare mai multe mesa)e, deci un cost mai
mare.;entru micsorarea acestui cost este folosita o te1nica $iggybacking.
9n cazul te1nicii piggKbac2ing, n mesa)e care isi au origine intr-un site comun, adresate unui alt site,
sunt cuplate intr-un pac1et mai mare./stfel, numarul de mesa)e este cu mult redus. Costul de
comunicatie este o functie de numarul de mesa)e care circula in sistem.
/ceasta te1nica poate fi aplicata detectiei globale de deadloc2.5iecare site trimite graful sau ?ait-for
detectorului global de deadloc2, impreuna cu detaliile despre fiecare tranzactii.=oate aceste informatii sunt
trimise intr-un singur mesa), reducand astfel costul de trimitere.I-J
3.3 $tatic 2!0
4$ista posibilitatea de a construi un planificator de blocari care nu anuleaza niciodata
tranzactiile. /ceasta te1nica este cunoscuta sub numele de -;, Conser#ati#, sau -;, static. %e stie ca
-;, anuleaza tranzactiile din cauza deadloc2-urilor. -;, conser#ati# e#ita deadloc2-urile, cerand
22
fiecarei tranzactii sa obtina toate blocarile inainte ca orice operatie sa fie trimisa la managerul de date.
/ceasta se face prin faptul ca fiecare tranzactie isi predeclara setatile de ?rite si de read./stfel, fiecare
tranzactie T
i
spune planificatorului de blocari ce elemente de date #rea sa citeasca sau sa scrie &de
e$emplu, ca parte a operatiei de %tart(. ;lanificatorul incearca sa seteze toate blocarile de care are
ne#oie tranzactia T
i.
4l poate face asta asigurandu-se ca nici o blocare nu intra in conflict cu o alta
blocare detinuta de o alta tranzactie.Dupa ce planificatorul reuseste sa seteze toate blocarile lui T
i
, #a
trimite operatiile mangerului de date. Dupa ce managerul de date #a informa planificatorul ca
tranzactia T
i
s-a e$ecutat , planificatorul #a elibera toate blocarile detinute de T
i.
(lgoritmul 2)* distribuit
baza de date distribuita este o colectie de site-uri care comunica intre ele, fiecare site fiind o
baza de data centralizata.9n cazul -;, distribuit, planificatorul este responsabil numai pentru controlul
elementelor de date de pe site-ul respecti#.
tranzactie trimite operartia managerului de tranzactie..anagerul de tranzactii trimite apoi
operatiile de Read&$( si Lrite&$( , planificatorului responsabil de elementrul x.Daca planificatorul
decide sa e$ecute operatiile de Read sau Lrite, #a trimite operatia managerului de date local, care
acceseaza elementul x si returneaza #aloarea&pentru Read( sau il updateaza&pentru Lrite(. peratiile de
Commit si /nulare sunt trimise tuturor site-urilor unde tranzactia a accesat elemente de date.
;lanificatoarele tuturor site-urilor, luate impreuna, constituie un planificator distribuit. /cest
s1eduler distribuit trebuie sa proceseze operatiile care #in de la managerii de tranzactii intr-o maniera
globala si serializabila.5iecare panificator se ocupa de blocarile elementelor de date aflate pe site-ul
sau, programandu-le conform regulilor -;,.4$ista o problema in ceea ce pri#este momentul in care
trebuie anulata o blocare de pe un anumit site.!n planificator nu poate desface o blocare pana nu stie
e$act ca T
i
nu #a mai trimite nici o operatie nici unui planificator. 9n aceste conditii, se presupune ca
planificatoarele diferitelor site-uri trebuie sa comunice intre ele.
)entru 2)* +trict aceasta regula nu este #alabila deoarece managerul tranzactiei T
i
trimite
Commit-ul pentru =
i
la toate site-urile care contin date blocate de catre =
i
.Daca managerul trimite
aceasta instiintare, inseamna ca a primit de)a raspunsuri de blocare de la toate site-urile, deci =
i
a
obtinut toate blocarile de care are ne#oie.IFJ
baza de date este o colectie de granule de date care sunt folosite si impartite de utilizatori
multipli care acceseaza baza te date prin intermediul tranzactiilor./ceste tranzactii ruleaza concurential
sub controlul aceluiasi mecanism de control al concurentei. Definitia notiunii de corectitudine a bazei
de date este aceea de seriabilitate. sec#enta de tranzactii intr-un sistem de baze de date se spune ca
este serializabila daca efectul sec#entei asupra bazei de date este ec1i#alent cu e$ecutia sec#entiala a
tranzactiilor indi#iduale..odelele analitice e$istente sunt de obicei bazate pe analize ale retelelor de
coada sau analize .ar2o#iene. De obicei, pentru a simplifica analiza, cele mai multe modele e$istente
23
ignora problema deadloc2-urilor care este intrinseca algoritmilor de blocare. Desi deadloc2-urile nu se
intampla foarte des, odata ce se intampla acestea #or bloca si celelalte tranzactii,iar performantele
sistemului scad dramatic.%e obser#a ca de obicei modele de performanta e$istente sunt limitate la
sistemele centralizate,pentru cele distribuite nu au fost propuse foarte multe modele de testare a
performantelor sistemelor.

9n cazul blocarii statice,o tranzactie #a solicita toate blocarile inainte de a incepe e$ecutia propriu-
zisa. 9n acest mod, se asigura terminarea e$ecutiei tranzactiei, din moment ce nu #or e$ista restartari
din cauza deadloc2-urilor.Blocarea statica este gandita ca o modalitate de a e#ita deadloc2-urile si ca o
alternati#a a blocarii dinamice in cazul carora cererea de blocari se face pe parcursul e$ecutiei
tranzactiei. 4ste recomandat a se folosi blocari statice in momentul in care e$ista in sistem o incarcatur
mare de tranzactii, e#itandu-se astfel posibilitatile de conflict si deadloc2.'ranularitatea unei blocari se
refera la ce cantitate de date se bloc1eaza, ea poate fi grosiera daca fiecare blocare acopera o cantitate
mare de date sau fina in caz contrar. Daca granularitatea este grosiera doar putine tranzactii pot rula
concurent. Daca este fina o tranzactie trebuie sa instaleze multe blocari implicand astfel multi timpi
consumati pentru blocare si de asemenea cresc sansele de conflict. Blocarea, asemeni tuturor
algoritmilor de control ai concurentei rezol#a conflictele printr-o combinatie de reporniri si blocari.
4ste usor de obser#at de ce repornirile degradeaza performanta M calculul efectuat inainte de restart este
pierdut. Degradarea performantei datorata blocarii este mai subtila* in cazul unei blocari, datele nu mai
pot fi accesate de nici o tranzactie.
!n a#anta) ma)or al blocarii statice este faptul ca acesta e#ita posibilitatea aparitiei
interblocarilor.De asemenea, in acest caz nu se pune problema algoritmilor de detectie a deadloc2-
urilor si nici consumarea resurselor si al timpului pentru e$ecutia acestor algoritmi.I+J
3.4 2!0 %inamic
9n practica, o tranzactie #a bloca numai in momentul in care are ne#oie de acele date - aceasta
este blocarea dinamica. /lternati#a blocarii dinamice este blocarea statica, in cazul in careia o
tranzactie #a solicita toate blocarile inainte de a incepe e$ecutia propriu-zisa. 9n acest mod, se asigura
terminarea e$ecutiei tranzactiei, din moment ce nu #or e$ista restartari din cauza deadloc2-
urilor.Blocarea statica este gandita ca o modalitate de a e#ita deadloc2-urile. Blocarea dinamica insa are
a#anta)ul de a nu bloca data inainte de a a#ea ne#oie de ea, insa se a)unge mai usor la restartarea
tranzactiilor / fost demonstrat ca blocarile statice sunt superioare pentru o incarcatura de tranzactii
mai mare. De asemenea,CareK a demonstrat in urma simularilor sale ca blocarile statice sunt mai bune
c1iar si pentru o incarcatura a tranzactiilor mai mare.
9n aceasta lucrare a fost propus un model analitic nou pentru baze de date distribuite cu blocari statice.
9n cazul blocarilor dinamice, inainte de a accesa orice data , trazactia trebuie sa bloc1eze granula
care contine acea data. Daca granula este de)a blocata&se a)unge la un conflict( tranzactia #a trebui sa
22
astepte intr-o coada pentru ca granula de date sa fie libera. Daca acest proces duce la un deadloc2,
tranzactia #a fi restartata* #a elibera ceea ce a blocat, #a astepta un timp pentru a lasa tranzactia in
conflict sa termine , apoi incepe din nou. =ranzactiile #or elibara blocarile facute dupa ce termina. Cand
o blocare este anulata, prima tranzactie din coada care astepta pentru acea granula, #a bloca datele
pentru care astepta. 9n sc1imb, daca sistemul functioneaza cu blocari statice nu #or e$ista restartari din
cauza deadloc2-urilor, deoarece tranzactia #a cere arbitrului toate blocarile inainte de a-si incepe
e$ecutia. /ceasta abordare a problemei duce intr-ade#ar la o intarziere a obtinerii blocarilor, insa este
mai sigura din punctul de #edere al deadloc2-urilor. 9nsa, accesarea sistemului de baze de date cu
blocari dinamice poate duce la o micsorare a timpului de acces in cazul in care nu apare un deadloc2 in
sistem. 9n conditiile in care acesta se intampla, timpul pierdut in aceasta situatie poate sa fie mult mai
mare decat in cazul tratarii cu blocari statice
%e obser#a ca in ambele situatii e$ista a#anta)e cat si deza#anta)e, cea mai buna alegere facandu-se insa
in functie de proprietatile, resursele si scopul in care a fost proiectata baza de date aleasa.
%e #a constata ca*
alegerea adec#ata a granularitatii depinde de care parte a unei curbe generale de
granularitate se #ede sistemul
conflictele ar trebui rezol#ate prin blocare daca #olumul de munca este mic, dar,
repornirile ar putea fi preferabile daca #olumul de munca este mare. 9n continuare, o
politica pura de repornire, in care toate conflictele sunt rezol#ate, poate a#ea
performante bune .
daca concurenta resursei nu este e$cesi#a atunci blocarea dinamica este mai buna decat
blocarea statica daca #olumul de munca este mic dar blocare statica este buna daca
#olumul de munca este mare.IDJ
23
4. ptimistic ran*e 0oc&in* 102
, este un algoritm optimistic , adic operaiile nu sunt niciodat ntrziate de algoritm. .ai mult,
cnd o tranzacie este gata de e$ecuie, algoritmul #erifica programul&planul-%c1edule( s #ad daca este
corect. Daca nu este, atunci tranzaciile sunt oprite i urmeaz a fi rulate mai trziu dup ce se fac corecturi
asupra programului.
Daca o tranzacie =) cu prioritate mare pune blocri la citire pe un set de date i o tranzacie cu
prioritate sczuta ncearc s pune blocri de scriere pe acelai set de date, 9 se acorda imediat accesul la
blocri de scriere tranzaciei =) i se sc1imba bloca)ul la citire al lui =) intr-un range-loc2, indicnd
posibilitatea unei citiri incorecte.
peraiile de citire pot fi in#alidate de scrierile cu conflicte care au fost realizate intr-un mod
neserializabil. %e pot obine programe serializabile prin simpla abandonare a tranzaciei cnd prima citire
este blocata 0orange3. Daca ma)oritatea tranzaciilor e$ecuta operaii de citire pentru puine date i
tranzaciile sunt mai uor de restartat.
%e pot obine rezultate mai bune , insa cu deza#anta)ul creterii comple$itii, prin reducerea
numrului de abandonuri i fcnd repornirile mai uoare. .ai inti, adugm un spaiu de lucru
local pentru fiecare tranzacie. %paiul de lucru local conine spaiu de stocare pentru toate #alorile
unei tranzacii. 5iecare tranzacie ncepe cu un proces de citire nainte de a ncepe orice procesare.
Dup ce toate datele din spaiul local sunt citite, tranzacia ncepe ca o tranzacie con#enional,
citind i scriind direct n baza de date, cu condiia s fie n clasa de securitate a tranzaciei. Citirile
din timpul procesrii se realizeaz din spaiul local de lucru al tranzaciei.
24

S-ar putea să vă placă și