Sunteți pe pagina 1din 48

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 metadate ceea ce reprezint date
despre date. !elaiile 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, eliminnduse 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
1
de memorare a lor. ')BD ul este o interfa ntre utilizatori i sistemul de operare.
$n esen un ')BD permite definirea bazei de date printrun limba+ de definire a datelor
(DD,* prin care se specific tipurile de date i structurile precum i constrngerile asupra
datelor precum i 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 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./ Bazele de date relaionale
Cel mai folosit model de stocare a datelor este baza de date relaional. .cest nou
model sa dez%oltat pornind de la un articol, 0. !elational -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 1678. Ideea 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 client9ser%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 sau 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.
2
$n acest conte&t, sistemul, denumit client9ser%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>areului 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 printrun 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 online, a ncrcrii i a creterii spri+inului
decizional. $n scopul satisfacerii acestor 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>are9soft>are disponibile (incluznd ar1itecturi simplu i multiprocesor*, 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 online 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.
3
1.@ 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 ntro 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 printro 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, ')BDul 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.
Astfel BDD apare ca un obiect virtual, rezultat al cooperrii dintre mai multe baze de date
locale. Aceast cooperare este realizat prin SGBDD care este o extensie loic a SGBD ! urilor
locale. BDD poate fi compus din mai multe noduri dispersate eorafic "n care func#ioneaz
diferite tipuri de SGBD locale, sub diferite sisteme de operare $i pe platforme %ard&are diferite.
'ste rolul SGBDD de a asiura conlucrarea acestor noduri $i compatibilitatea dintre sistemele
locale care func#ioneaz "n fiecare nod.
$ntrun 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 sa 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 ()b9s*, 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 -b9s*, adic
s obin la ieirea sistemului o producti%itate mai mare n rezol%area tranzaciilor.
$n figura 1 se obser% c fiecare site este un sistem centralizat de baze de date, care
conine o parte a bazei de date. 5iecare tranzacie poate fi format din unul sau mai multe
procese care se e&ecut pe unul sau mai multe siteuri.
.de%aratul sens al atributului AdistribuitA n conte&tul ')BDurilor corespunde nu
faptului c sistemul permite accesarea datelor de la distana (prin reea*, ci a acelor
implementri care ngduie aplicaiilor i utilizatorilor s trateze baza de date ca pe un
singur depozit logic, c1iar dac datele constituente sunt repartizate n mai multe locaii ale
reelei (transparena complet a localizrii datelor*. <otui problema este delicat i pentru
c D din punctul de %edere al analizei se poate oricnd crea o aplicaie care s trateze
unitar tabele de date situate pe calculatoare diferite. Dar pentru c se dorete independena
de limba+e (sau de mediile de dez%oltare* sunt apreciate acele ')BDuri care conin
integrate functionaliti care s asigure ditribuirea datelor in nodurile reelei.
)
Einnd cont c de obicei, %olumul i comple&itatea datelor spulbera idealul Bun
computer foarte performant cumulnd ntreaga baz de date i deser%ind toti utilizatorii
organizaieiB i trebuie gasit o soluie de compromis, de%ine foarte interesant colecia de
criterii practice de ditribuire a datelor n cazul fiecrei implementri, particularitile
cernd un optim +alonat de urmatoarele aspecteF
nu trebuie pierdut din %edere dezideratul %itezei?
limita de stocare i puterea calculatoarelor gazd?
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>op1asecommit 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 ')BDului.
Cercetatorul C1ris Date, coleg de proiecte cu Codd, a enumerat cele 1/ cerine crora
trebuie s li se supun bazele de date ditribuite? dintre acestea 6 sunt urmatoareleF
.utonomia localF datele locale sunt deinute i administrate local nici un post nu
depinde de altele pentru a funciona.
<oate posturile sunt egaleF nici un post nu se bazeaz pe o staie central.
5uncionare nentreruptF nu trebuie s fie necesar o oprire planificat (instalrile9
tergerile efectuate la un post nu afecteaz funcionarea celorlalte*.
<ransparena amplasriiF utilizatorii nu sunt obligai s tie unde sunt amplasate
datele pentru a le e&trage.
<ransparena duplicriiF relaiile dintre componentele bazei de date pot fi
fragmentate pentru stocare, dar acest lucru rmne transparent pentru utilizator.
:relucrarea interogarilor distribuiteF operaiile de citire9scriere se pot desfasura la
*
mai multe posturi permind optimizarea local i global a interogrilor
.ctualizrile distribuiteF tranzaciile singulare pot e&ecuta codul la mai multe
posturi.
Independena 1ard>areF toate posturile particip ca membrii egali.
Independena de sistem de operareF sunt suportabile mai multe sisteme de operare
conectabile la retea.
Independea de reeaF sunt suportate mai multe reele prin protocoale comune.
Independena de bazele de dateF se asigur accesul uniform (interfaa unic* pentru
datele pro%enind de la ')BDuri diferite.G/H
#n sistem de baze de date este prin definiieF 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.I <ranzacii
" tranzacie reprezint e&ecuia unui program care acceseaz o baz de date. 'copul
controlului concurenei i al procesului de reco%erJ este acela da a pstra atomicitatea
tranzaciilor, astfelF
1. 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 !ead i Krite. Din punctul de %edere al teoriei
seriabilitii, tranzacia face e&ecuia identificnd operaia de !ead i pe cea de Krite ct i
ordinea e&ecuiei acestora. :entru fiecare !ead i Krite, 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. G/H
De obicei se folosesc notaiile r1G&H sau >1G&H pentru a face diferenierea ntre
operaiile de >rite i cele de read asupra elementului de date &, e&ecutate de tranzacia <.
De e&emplu, urmatoarea figur prezint ordinea n care se %or e&ecuta @ tranzaciiF
"rice tranzacie trebuie s satisfac un set de I condiii Datomicitate, 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 ')BDului
sarcina de a asigura, ntrun fel sau altul, terminarea tranzaciei. Dup eliminarea cauzei
care a dus la ntreruperea tranzacei, n funcie de stadiul de e&ecuie n care sa aflat
aceasta n momentul apariiei ntreruperii, ')BDul poate proceda n dou moduriF
1* 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 dintro stare
consistent ntro alt stare consistent a sa. :rin consistena bazei de date nelegem
satisfacerea tuturor constrngerilor de integritate, e&plicite, cum ar fiF
1. #nicitatea c1eilor primare?
/. Integriatatea referenial?
@. "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 .CID 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.GLH
Izolarea 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.
Izolarea 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. !ezultatele tranzaciilor %alidate %or supra%ieui unor cderi de sistem.
Conceptul de gestiune a tranzaciilor se refer la problematica meninerii ntro 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 ntro stare consistent att nainte ct i
dup e&ecuia sa.
Consistena bazei de date este garantat independent de faptul cF
1. tranzacia a fost e&ecutat n mod concurent cu alte tranzacii
/. au aprut defecte n timpul e&ecutrii tranzaciei.
$n general, o tranzacie const dintro 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 ntro 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 printro operaie de %alidare
(commit*. $n sc1imb, dac dintrun moti% sau altul tranzacia nu reuseste sai e&ecute
complet operaiile pre%azute, atunci se %a termina printro 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&F detectarea de ctre ')BD a unei situaii de
interblocare* G/H. $n cazul anularii, e&ecuia tranzaciei este oprit, iar efectele tuturor
1.
operaiilor pe care lea 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 ')BDului momentul de la
care efectele tranzaciei pot fi reflectate n baza de date i de%in %izibile altor tranzacii i
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
operaiuni de actualizare a bazei de date. $n acest caz datele alterate de ctre tranzacia <
%or fi readuse la %alorile pe care leau 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. $ntrade%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.
11
Malidarea unei tranzacii marc1eaz, din punct de %edere logic, terminarea acesteia.
Malidarea nu se poate face nainte ca operaiile specificate prin codul tranzaciei s fie
e&ecutate integral i nainte ca tranzacia s a+ung ntro 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 precumF 'tart, Commit si
!enuntare. #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 !enuntare a fost trimisa 'BDului atunci, tranzactia a fost terminata intrun
mod anormal, si ar trebui ca efectele acesteia sa nu fie sal%ate
1.L 4lemente 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 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
12
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. In 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. In
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.
13
II. Controlul concurenei
/.1 Conceptul de concuren
Controlul concurentei este acti%itatea de coordonare a actiunilor proceselor care
opereaza in paralel, accesand date comune. :rocesul de reco%erJ 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%erJ se pun in designul 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 dintro colectie de elemente de date. 5iecare element
al bazei are o %aloare. In 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 intrun element este numita granularitatea elementului de
date.
#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 !ead (citire* si Krite (>rite*F
"peratia !ead(&* %a returna %aloarea stocata in elementul de date &.
"peratia Krite(&,%al* sc1imba %aloarea elementului & in %al.
'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*.
Insa, de obicei aceste operatii sunt e&ecutate concurential(mai multe operatii ruleaza in
acelasi timp*.
1(
,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&tremeF
1* 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.
/* 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. In 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.GNH
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
1)
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
izolare si consistenta ale acestora, c1iar si in conditiile e&ecutarii concurente a mai multor
tranzactii. In 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.
/./ -ecanisme de control
:rincipalele categorii de mecanisme de control suntF
Mecanismul de blocare optimistic D "prete sincronizarea tranzaciilor pana cnd
toate operaiile sunt efectuate. Conflictele sunt rare , dar nu pot fi anticipate.
Mecanismul de blocare pesimistic D 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.
-ecanismul 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.
1*
4&ista trei faze n Controlul "ptimistic al accesului ConcurenialF
1 . Citire D Clientul citete %alori din baza de date, le stoc1eaz intrun cac1e pe
care clientul l poate apoi edita.
/. Validare D 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 cuF
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.
@. Scriere D 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 tranzaciilor restartate repetat, afecteaz
performanta intrun 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.D9C.- *, managementul de reea, comercializarea instrumentelor
financiare, informaia medical, automatizarea lucrrilor de birou i mediile de dez%oltare
soft>are ( 'D4urile *, pot fi considerate baze de date de %olum mare ( de e&.F toate
componentele soft>are dintrun '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
dintro stocare online, i meninerea compatibilitii informaiilor stocate intro baza de
1+
date. Compatibilitatea dintro baza de date se menine daca fiecare item de date
respecta9ndeplinete 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 dintro 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&ecutate9efectuate 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.D9C.-
i automatizarea lucrrilor de birou implica sesiuni lungi interacti%e ale bazelor de date i
colaborarea intre multipli utilizatori de baze de date.
/.@.Bloca+e
-anagerul de date trebuie sa gaseasca o strategie pentru a detecta deadloc2urile
pentru ca o tranzactie sa nu fie blocata pentru totdeauna. " strategie ar putea fi timeoutF
daca managerul obser%a ca o tranzactie a asteptat prea mult, atunci acesta %a crede ca
tranzactia respecti%a este implicata intrun deadloc2, si de aceea o restarteaza. Din moment
ce managerul nu este 188O sigur de faptul ca tranzactia este implicata in deadloc2, ar
putea sa restarteze o tranzactie care nu face parte dintrun 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 printro 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.In acest caz,
1,
apare o alta problema, faptul ca managerul nu restarteaza o tranzactie implicata in
deadloc2 pana cand timeoutul 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 deadloc2urile intrun mod precis. :entru aceasta
managerul tine in graf . #n deadloc2 este cel mai bine ilustrat cu graful >aitfor care este
astfel construitF :entru toate perec1ile de tranzactii <i si < + , este trasata o muc1ie de la
<i la < + daca <i asteapta un element de date care este blocat de < + . Daca graful >aitfor
contine deseneaza un ciclu, atunci e&ista posibilitatea aparitiei deadloc2ului. :entru
rezol%area problemei deadloc2ului,se poate aplica detectia deadloc2ului sau pre%enirea
acestora.In modelul pe carel tratam, se presupune ca e&ista un mecanism de detectie
deadloc2 care se e&ecuta periodic. In 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 suntF
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 updeateuri
pe care lea facut de+a tranzactia.
3) 4fortul necesar pentru a termina e&ecutia tranzactiei. -anagerul 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&empluF bazanduse
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 deadloc2uri in moduri repetate.In 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.G/H
1-
Bloca+e distribuite
Ca si in cazul bazelor de date centralizate, un planificator /:, distribuit trebuie sa
detecteze si sa rezol%e deadloc2urile.<imeoutul poate fi folosit pentru intuirea deadloc2
urilor, sau se poate folosi graful >aitfor pentru o detectare e&plicita a deadloc2urilor.
:lanificatorul siteului i poate detine un graf >aitfor local, K5)i, ce contine
tranzactiile care astepta ca alte tranzactii sa desfaca o blocare a elementelor de date tratate
de acel planificator.#n graf >aitfor global, K5) reprezinta suma tuturor grafurilor >ait
for locale.Din pacate, este posibil ca K5) sa contina un ciclu, si de aceea sistemul este in
stare de interblocare, desi fiecare graf local este aciclic.
Detecia globala de bloca+e
" maniera simpla de a detecta deadloc2ul este ca fiecare planificator sa trimita
sc1imbarile inter%enite in graful sau K5)i unui proces special numit detecor global de
deadloc2. .cest detector global de deadloc2 tine ultimile copii ale grafurilor K5) locale
pe care le primeste de la fiecare planificator. .cest detector face periodic suma acestor
grafuri >aitfor pentru a construi un graf >aitfor global, pe carel %erifica daca contine
cicli.
)raful >aitfor global este analizat periodic, ceea ce inseamna ca deadloc2urile
raman nedetectate pentru o perioada de timp.Ca si in cazul bazelor de date distribuite,
principala problema in cazul deadloc2urilor este ca tranzactiile implicate in interblocare
folosesc resurse. Intarzierea in construirea grafului >aitfor global este mai mare ca in
cazul bazelor de date centralizate.
In 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
2.
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 piggJbac2ing.
In cazul te1nicii piggJbac2ing, n mesa+e care isi au origine intrun site comun,
adresate unui alt site, sunt cuplate intrun 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 >aitfor detectorului global de deadloc2, impreuna cu detaliile despre fiecare
tranzactii.<oate aceste informatii sunt trimise intrun singur mesa+, reducand astfel costul
de trimitere.G/H
Comandarea mrcii de timp
#na din problemele mecanismelor de blocare este posibilitatea de interblocare.
Interblocarea apare cnd doua sau mai multe tranzacii ateapt n comun una resursele
celeilalte. .ceasta problema poate fi rezol%ata prin atribuirea unui numr mic fiecrei
tranzacii, numit marca de timp, ales dintrun ir cu cretere monotona. .cest sir este
adesea o funcie de timp a zilei G Po1ler Q1 H. #tiliznd marca de timp, un mecanism de
control al concurentei poate solicita n totalitate comenzi de la tranzacii conform mrcilor
de timp ale tranzaciilor G !osen2rantz et al. 7Q H.
-ecanismul foreaz o tranzacie <1 care solicita s acceseze un articol de date R
care este deinut de ctre o alta tranzacie </, ( 1 * fie s atepte pana se termina </, ( / *
fie s renune singura i s rencep dac nu i se poate da acces la R, sau ( @ * s controleze
</ i sal retina pe R. #n protocol de programare decide care din aceste trei aciuni %a
a%ea loc dup compararea amprentelor de timp <1 i </.
Dou din posibilele protocoale de programare alternati%e utilizate de mecanismele
pe baza de marc de timp sunt? ( 1 * protocolul K.I< D DI4, care foreaz o tranzacie s
atepte daca este n conflict cu o tranzacie ce ruleaz i a crei marca de timp este mai
recenta, sau s nceteze ( renune i s restarteze * daca marca de timp a tranzaciei care
21
ruleaz este mai %ec1e? i ( / * protocolul K"#;D D K.I<, care permite unei tranzacii s
0 nfoare3 (controleze prin suspendare 8 o tranzacie n rula+ cu o marca de timp mai
recenta sau n caz contrar foreaz tranzacia solicitanta s atepte. Blocrile sunt utilizate
implicit la ambele protocoale deoarece unele tranzacii sunt forate s atepte ca i cum au
fost blocate. .mbele protocoale garanteaz ca nu %a aprea o situaie de interblocare.
Comandarea mrcii de timp multi%ersiune
-ecanismul de comand a mrcii de timp de mai sus presupune c e&ista numai o
%ersiune a articolului de date. :rin urmare, numai o tranzacie poate accesa un articol de
date ntrun moment. .ceasta restricie poate fi negli+at permind tranzaciilor multiple
s citeasc i s scrie diferite %ersiuni ale aceluiai articol de date, att timp cat fiecare
tranzacie %ede un set con%enabil de %ersiuni pentru toate articolele de date pe care le
acceseaz. .ceasta este ideea de principiu a primei sc1eme de comanda a mrcii de timp
multi%ersiune prezentate de !eed G !eed 7Q H.
In mecanismul lui !eed, fiecrei tranzacii I se aloca o marca de timp unica atunci
cnd aceasta ncepe? toate operaiunile tranzaciei primesc aceeai marca de timp. n plus,
fiecare articol de date are un set de %ersiuni tranzitorii, fiecare o perec1e S marca de timp
scrisa, %aloare T i un set de mrci de timp pentru citit. Daca o tranzacie citete un articol
de date, marca de timp a tranzaciei este adugat la setul de mrci de timp pentru citit al
articolului de date. " operaie de scriere daca este permisa de protocolul de control al
concurentei, genereaz crearea unei noi %ersiuni tranzitorii cu aceeai marca de timp ca i
tranzacia ce solicita operaia de scriere.
-ecanismul de control al concurentei lucreaz dup cum urmeazF
5ie o tranzacie <i cu marca de timp <'(I*, i fie !(&* o operaie de citire solicitata de <i
( adic, !(&* %a mai primi marca de timp <'(i * *. !(&* este prelucrata prin citirea %alorii
%ersiunii lui & a crui marca de timp este cea mai mare marca de timp mai mica dect
<'(!* (adic ultima %aloare scrisa nainte de a ncepe <i *. <'(i * este apoi adugata la
setul de mrci de timp de citire a lui &. "peraiile de citire sunt ntotdeauna permise. n
contrast, operaiile de citire ar putea pro%oca un conflict. 5ie <+ o alta tranzacie cu marca
22
de timp <'(+* i fie K(&* o operaie de scriere solicitata de <+ ce aloca %aloarea %
articolului &. K(&* %a fi permisa numai daca alte tranzacii cu o marca de timp mai recenta
dect <'(+* nu au citit o %ersiune a lui & a crui marca de timp este mai mare dect <'(+*.
" situaie ca aceasta poate aprea datorita ntrzierilor n e&ecuia operaiilor din
cadrul unei tranzacii. Ceea ce nseamn ca, o operaie "+ aparinnd tranzaciei <+ este
e&ecutata dup ce tranzacia <+ a nceput de o perioada de timp. Intre timp pot s fi fost
efectuate alte operaii dintro tranzacie cu o marca de timp mai recenta. :entru a detecta
astfel de situaii, fie inter%alul (K* de la <'(+* pana la cea mai mica marca de timp a unei
%ersiuni a lui & mai mare dect <'(+* ( adic o %ersiune a lui & care a fost scrisa de o
tranzacie a crei marca de timp este mai recenta dect marca de timp a lui <+ *. Daca
oricare marca de timp de citire se afla n inter%al ( adic, o tranzacie a citit de+a o %aloare
a lui & scrisa printro operaiune de scriere mai recenta dect K(&*, atunci K(&* este
respinsa ( i se renun la tranzacie *. n caz contrar, I se permite lui K(&* s creeze o noua
%ersiune a lui & cu marca de timp <'(+*.
4&istenta %ersiunilor multiple eliminnd necesitatea sincronizrii scris D scris
deoarece fiecare operaie de scriere produce o noua %ersiune i astfel nu poate intra n
conflict cu o alta operaie de scriere.
'ingurele conflicte posibile sunt cele ce corespund relaiei citit D din GBernstein et al. Q7H,
dup cum demonstreaz protocolul de mai sus.
23
@. <>o p1ase loc2ing
@.1 Descrierea algoritmului
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>op1ase loc2ing
este unul dintre ei. 4ste cel mai %ec1i i cel mai des folosit algoritm de control concurent.
In 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 de blocrile de scriere. Daca sa 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. In 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. In
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
2(
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. In <>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 , 167N * ca daca toate tranzaciile folosesc t>op1ase loc2ing, atunci toate
planificrile realizate prin ntreeserea lor pot fi serializabile. De aceasta t>op1ase loc2ing
este foarte rspndit.
5ig @.1 '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>op1ase
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 sau bazat pe un fiier pe care nu lau %zut. .l doilea a%anta+
2)
este ca toate blocrile i eliberrile de elemente pot fi tratate de sistem fr ca tranzacia s
fie contienta de eleF blocrile se realizeaz de fiecare dat cnd un fiier este accesat i
sunt eliberate cnd tranzacia sa nc1eiat. .ceasta politica elimina abortrile in cascadaF
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 intro 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 folositaF daca un element este blocat de un proces mai mult de < secunde,
atunci a%em o blocare totala.
Implementarea /:, pentru orice sistem depinde foarte mult de designul sistemului
i de accesibilitatea facilitailor sistemului de operare. Implementarea se realizeaz, de
obicei, cu a+utorul unei combinaii dintre managerul de blocare (,- D ,oc2 -anager* i
managerul de tranzacii (<- D <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.
<impul mediu de rspuns este suma timpului mediu de e&ecuie i timpul mediu de
blocare cnd este ntlnit un conflict de blocare.
<impul mediu de rspuns al unei tranzacii esteF

in careF
2*
2 reprezinta numarul de bloca+e pentru o tranzactie
K reprezinta timpul de asteptare
:c reprezinta probabilitatea apariiei de conflicte intre bloca+e pentru cererea de bloca+
numrul i
este durata medie de procesare a tranzactiilor acti%e.
- C numarul de tranzactii
D C numarul de date
@.1.1 -anagerul de bloca+

-anagerul de bloca+ menine un tabel de blocri i suporta operaiile de blocare(id
ul tranzaciei , itemul datei , modul * i deblocare(idul tranzaciei , itemul datei*, unde
idul tranzaciei 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
intro coada de cereri in ateptare pentru respecti%e data. Deblocarea elibereaz bloca+ul
2+
specificat i permite orice cerere de blocare care nu mai este blocata.
"peraiile de blocare i deblocare sunt in%ocate frec%ent. In 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 .
@.1./ Blocarea i ntreruperea tranzaciilor
In momentul in care ,- elibereaz un bloca+ pentru o data &, el poate acorda cereri
de bloca+e care 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.
2,
@.1.@ .tomicitatea citirilor i scrierilor
4&ista patru operaii folosite pentru e%idenierea corectitudinii pentru /:,F 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.
@.1.I :rocesul de sosire a tranzaciilor
<ranzaciile pro%in dintrun numr finit de surse (notate cu '*, astfel nct rata de
sosire pentru un numr - de tranzacii esteF U(-* C (' -*9V , unde V este timpul mediu
de ateptare. 'e %or considera tranzaciile ca fiind unilaterale, astfel inct userul nu %a mai
fi implicat dup ce tranzacia %a fi e&ecutata, adic nu inter%in timpi de ateptare legai
datorai userilor G.gra>al et al. 16Q7aH.In cadrul testelor de %erificare a tranzaciilor este
adoptata o distribuite e&ponenial pentru a e%ita timpi de ateptare foarte mari
G)raJ166@H.
#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 intrun sistem este , de obicei, considerat a fi o distribuie :oisson
(determinarea numrului de apariii ale unui e%eniment intrun inter%al de timp specificat,
2-
sau intrun anumit spaiu* cu o rata de sosiri W GPleinroc2 167LH. 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 nc1is cnd V 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 deoareceF
a*. 'oluia unui model nc1is poate fi folosita ca un submodel pentru e%aluarea
performantelor unui sistem cu sosiri e&terne G,azo>s2a et al. 16QIH?
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 f2 de tranzacii din C2 procesate de
sistem. Intrun sistem desc1is rata de sosire a tranzaciilor in C2 este
, 1X 2 XP , unde P este mrimea celei mai mari tranzacii.
;umrul mediu de tranzacii din C2 este -2 C Y!2 , unde !2 este timpul mediu de
rspuns al tranzaciilor din C2.
@.1.L Blocarea i analiza performanelor blocrii
In 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 intrun impas daca doua tranzacii sunt blocate pe timp nelimitat ,
fiecare ateptnd de la cealalt eliberarea bloca+elor.
3.
@./ 'tatic /:,
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 deadloc2urilor. /:, conser%ati%
e%ita deadloc2urile, cerand 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 <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 <i. 4l poate face asta asiguranduse 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 <i , %a trimite operatiile mangerului de date. Dupa ce managerul de date %a
informa planificatorul ca tranzactia <i sa e&ecutat , planificatorul %a elibera toate blocarile
detinute de <i.
.lgoritmul /:, distribuit
" baza de date distribuita este o colectie de siteuri care comunica intre ele, fiecare
site fiind o baza de data centralizata.In cazul /:, distribuit, planificatorul este responsabil
numai pentru controlul elementelor de date de pe siteul respecti%.
" tranzactie trimite operartia managerului de tranzactie.-anagerul de tranzactii
trimite apoi operatiile de !ead(&* si Krite(&* , planificatorului responsabil de elementrul
&.Daca planificatorul decide sa e&ecute operatiile de !ead sau Krite, %a trimite operatia
managerului de date local, care acceseaza elementul & si returneaza %aloarea(pentru !ead*
sau il updateaza(pentru Krite*. "peratiile de Commit si .nulare sunt trimise tuturor site
urilor unde tranzactia a accesat elemente de date.
31
:lanificatoarele tuturor siteurilor, luate impreuna, constituie un planificator distribuit.
.cest s1eduler distribuit trebuie sa proceseze operatiile care %in de la managerii de
tranzactii intro maniera globala si serializabila.5iecare panificator se ocupa de blocarile
elementelor de date aflate pe siteul sau, programandule 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 <i nu %a mai trimite
nici o operatie nici unui planificator. In aceste conditii, se presupune ca planificatoarele
diferitelor siteuri trebuie sa comunice intre ele.
:entru /:, 'trict aceasta regula nu este %alabila deoarece managerul tranzactiei <i
trimite Commitul pentru <i la toate siteurile care contin date blocate de catre <i.Daca
managerul trimite aceasta instiintare, inseamna ca a primit de+a raspunsuri de blocare de la
toate siteurile, deci <i a obtinut toate blocarile de care are ne%oie.GLH
" 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 intrun 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 ignora problema deadloc2urilor care este intrinseca algoritmilor de
blocare. Desi deadloc2urile 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.

32
In cazul blocarii statice,o tranzactie %a solicita toate blocarile inainte de a incepe
e&ecutia propriuzisa. In acest mod, se asigura terminarea e&ecutiei tranzactiei, din
moment ce nu %or e&ista restartari din cauza deadloc2urilor.Blocarea statica este gandita
ca o modalitate de a e%ita deadloc2urile 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%itanduse 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 printro combinatie de reporniri si blocari. 4ste usor de obser%at de ce
repornirile degradeaza performanta D calculul efectuat inainte de restart este pierdut.
Degradarea performantei datorata blocarii este mai subtilaF 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
deadloc2urilor si nici consumarea resurselor si al timpului pentru e&ecutia acestor
algoritmi.G1H
@.@ /:, Dinamic
In 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
propriuzisa. In acest mod, se asigura terminarea e&ecutiei tranzactiei, din moment ce nu
33
%or e&ista restartari din cauza deadloc2urilor.Blocarea statica este gandita ca o modalitate
de a e%ita deadloc2urile.
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,CareJ a
demonstrat in urma simularilor sale ca blocarile statice sunt mai bune c1iar si pentru o
incarcatura a tranzactiilor mai mare.
In aceasta lucrare a fost propus un model analitic nou pentru baze de date distribuite cu
blocari statice.
In 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 astepte intro coada pentru ca granula de date sa fie libera.
Daca acest proces duce la un deadloc2, tranzactia %a fi restartataF %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. In sc1imb, daca sistemul functioneaza cu blocari statice nu %or e&ista restartari
din cauza deadloc2urilor, deoarece tranzactia %a cere arbitrului toate blocarile inainte de
asi incepe e&ecutia. .ceasta abordare a problemei duce intrade%ar la o intarziere a
obtinerii blocarilor, insa este mai sigura din punctul de %edere al deadloc2urilor. Insa,
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. In 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 facanduse insa in functie de proprietatile, resursele si scopul in care a fost
proiectata baza de date aleasa.
3(
'e %a constata caF
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. In
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.G@H
3)
I. "ptimistic "range ,oc2ing ("",*
$n multe aplicaii, sa constatat c blocarea condiioneaz concurenta i adaug o
suprasarcina inutile. .bordarea blocrii are urmtoarele deza%anta+e G Pung i !obinson
Q1HF
$ntreinerea blocrii reprezint o suprasarcin inutil pentru tranzaciile read D onlJ
( numai citire* care nu afecteaz integritatea bazei de date.
;u e&ista mecanisme de blocare care s asigure concurenta mare n toate cazurile.
-a+oritatea mecanismelor uni%ersale de blocare fr interblocare lucreaz foarte
bine numai n unele cazuri dar lucreaz mai degrab slab n alte cazuri.
Cnd pri mari ale bazei de date se afl localizate intro stocare secundar,
blocarea obiectelor care sunt accesate frec%ent ( denumite noduri congestionate *, n
timp ce ateapt accesarea memoriei secundare, cauzeaz o descretere
semnificati% a concurenei.
;epermiterea blocrilor s fie eliberate dect la finalizarea tranzaciei, care dei nu
se cere se face ntotdeauna n practica pentru a e%ita renunrile n cascada,
micoreaz concurenta.
In ma+oritatea timpului nu este necesar s se utilizeze blocarea pentru a garanta
compatibilitatea deoarece ma+oritatea tranzaciilor ce se suprapun? blocarea poate fi
necesara numai n cel mai ru caz
:entru a e%ita aceste deza%anta+e, Pung i !obinson au prezentat conceptul de
control 0optimist3 al concurentei G Pung i !obinson Q1 H. 4i cer ca fiecare tranzacie s
fie compusa din / sau @ fazeF o faza de citire, o faza de %alidare i posibil o faza de scriere.
n timpul fazei de citire, toate scrierile au loc n copii locale ( numite de asemenea %ersiuni
tranzitorii * ale nregistrrilor ce %or fi scrise. .poi, daca se poate stabili n timpul etapei
de %alidare ca modificrile pe care lea efectuat tranzacia nu %or %iola serialitatea cu
3*
pri%ire la toate tranzaciile anga+ate, copiile locale se fac globale. ;umai atunci n faza de
scriere, aceste copii de%in accesibile altor tranzacii.
Malidarea se face prin atribuirea unei mrci de timp fiecrei tranzacii la finalul fazei
de citire i prin sincronizare utiliznd comandarea mrcii de timp. Criteriile de
corectitudine utilizate pentru %alidare sunt bazate pe noiunea de ec1i%alen serial. "rice
program produs prin aceasta te1nica asigura ca daca tranzacia <i are o marca de timp mai
%ec1e dect marca de timp a tranzaciei <+, atunci programul este ec1i%alent cu programul
serial <i urmat de <+. .cest lucru poate fi asigurat daca menine oricare din cele trei
condiii.
1. <i i finalizeaz faza de scriere nainte ca <+ sasi nceap faza de citire.
/. 'etul articolelor de date scris de <i nu se intersecteaz cu setul de articole de date
citit de <+, iar <i i finalizeaz scrierea nainte ca <+ sasi nceap faza de scriere.
@. 'etul de articole de date scrise de <i nu intersecteaz setul de articole de date citit
sau scris de <+, iar <i i finalizeaz faza de citire nainte ca <+ sasi finalizeze faza
de citire.
Dei controlul optimist al concurentei permite mai mult concurenta n anumite situaii,
acesta micoreaz concurenta cnd seturile de citire i scriere ale tranzaciilor concurente
se suprapun. De e&emplu, protocolul lui Pung i !obinson ar cauza uneia din tranzaciile
din programul simplu / :, din figura / s fie derulata napoi i s fie restartat. Din punct
de %edere al aplicaiilor a%ansate, utilizarea derulrii napoi ca mecanism principal al
meninerii compatibilitii reprezint un deza%anta+ gra%.
Deoarece operaiile din tranzaciile a%ansate sunt n general de lunga durata ( de e&.
compilarea unui modul *, derularea lor napoi i restartarea lor irosesc toata munca
efectuata de aceste operaii ( codul obiectului produs prin compilare *.
"", 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.
3+
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, I
se acorda imediat accesul la blocri de scriere tranzaciei <+ i se sc1imba bloca+ul la citire
al lui <+ intrun "rangeloc2, indicnd posibilitatea unei citiri incorecte.
"peraiile de citire pot fi in%alidate de scrierile cu conflicte care au fost realizate intrun
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.
3,
N. Descriere aplicaie
'copul aplicaiei
'copul aplicaiei realizate pentru aceast lucrare este simularea metodelor de
control al concurenei n baze de date distribuite. 'au implementat soft>are funcii care
calculeaz timpul de rspuns al unui set de tranzacii pentru trei metode de control al
concurenei pentru baze de date distribuite i de asemenea sa implementat o funcie care
calculeaz timpul de rspuns al aceluiai set de tranzacii n cazul n care procesele sar
e&ecuta n mod serial. 4ste e%ident faptul c e&ecutarea proceselor n mod serial %a rezulta
ntrun timp de rspuns mai mare dect un calcul distribuit. 'copul implementrii
simulatorului de lucru n mod serial este acela de a se face ine un rezultate 0etalon3 pentru
comparare.
4&ecui a tranzaciilor n mod serial este cel mai eficient mod de e%itare a
concurenei dar acest lucru se realizeaz cu un timp de lucru foarte mare. Compararea
rezultatelor altor algoritmi de e&ecuie distribuit cu timpul de rspuns obinul n modul
serial %a da n final msura eficienei metodei folosite. .adar scopul acestei
aplicaii este calcularea unor timpi de rspuns al tranzaciilor n diferite circumstane i
compararea acestor rezultate cu modul de e&ecuie serial a tutror tranzaciilor.
Concepte generale
'imularea diferitelor condiii de rulare a tranzaciilor se face n funcie de trei
parametrii principaliF numrul de tranzacii, numrul de granule accesate de o tranzacie i
numrul total de granule ale bazei de date.
Baza de date este reprezentat sub forma unei matrici de granule. " granul
reprezint un element de date. ;atura i dimensiunea elementelor de date este stabilit de
proiectantul sistemului. De e&emplu, n cazul modelului de date relaional elementele de
3-
date pot fi de dimensiuni mari, cuprinznd relaii ntregi ale bazei de date, pot fi grupuri de
tuple, tuple indi%iduale sau c1iar componente ale tuplelor.
" tranzacie reprezint un anumit numr de granule care acceseaz n mod aleator
coninutul tuturor granulelor din baza de date. :entru simplificarea implementrii i a
calculelor sa considerat c o tranzacie are acces simultan la toate granulele cerute dei n
realitate e&ist un timp de ntrziere ntre accesarea granulelor din cauza faptului c
tranzacia baleaz toate granulele cerute din baza de date.
" granul reprezint un element de date al bazei de date. $n realitate, deoarece
coninului fiecrui element de date poate fi diferit, fiecare granul are un timp de citire,
scriere i de aplicare a bloca+ului. :entru simplificarea implementrii i a calculelor sa
considerat c fiecare granul accesat din baza de date are timpii de e&ecuie (citire Z
scriere* i de bloca+ constani. De asemenea sa presupus c asupra fiecrei baze de date se
e&ecut att operaii de citire ct i de scriere dei n realitate e&ecuia unei granule poate
s nsemne doar citirea datelor din aceasta, fr se scrie ce%a n ea.
Deoarece simulator este pentru baze de date distribuite se presupune c fiecare
tranzacie se e&ecut n paralel. Ct timp granulele accesate de fiecare tranzacie nu se
suprapun nu sunt probleme. :rolema controlul concurenei se pune atunci cnd una sau
mai multe tranzacii ncearc s acceseze o granul (element de date* comun.
(.
Captura de ecran de mai sus este reprezentarea grafic a conceptului principal
care st n spatele aplicaiei realizate. 'imularea de mai sus se face pe o baz de date care
are n componen @8 Y @8 C 688 granule. -emoria bazei de date este reprezentat de
ptratul mare, iar granulele sunt reprezentate de cele 688 de ptrate mai mici din interiorul
ptratului mare. $n cazul de sus simulatorul a generat dou tranzacii a cte 188 de granule
de date fiecare. )ranulele care nu au fost accesate de nicio tranzacie sunt reprezentate cu
culoarea alb, n timp ce granulele accesate de tranzacii sunt reprezentate prin ptrate
colorate. Distribuia granulelor unei tranzacii n baza de date se face aleator. Dac
(1
tranzaciile e&ecutate acceseaz un numr mic de granule probabilitatea de apariie a
problemei controlului concurenei este foarte mic. Crescnd ns numrul de granule
accesate de o tranzacie mai mult ca sigur %a aprea o granul care %a fi accesat simultan
de una sau mai multe tranzacii. $n captura de ecran de mai sus e&ist 6 granule n care se
pune problema controlului concurenei. .ceste granule sunt reprezentate printrun ptrat n
interiorul cruia se afl o cifr. 'emniicaia acestei cifre este numrul de tranzacii care
ncearc s acceseze acea granul n acelai timp.
-od de implementare
:entru implementarea aplicaiei sa folosit limba+ul de programare pe parte de
ser%er :[:, limba+ul de marca+ [<-, i limba+ul de structurare i aran+are n pagin C''.
!ularea aplicaiei se poate face folosind un ser%er .pac1e i un bro>ser >eb compatibil cu
regulile [<-, I.81 i C'' /.
-oti%ele alegerii acestei soluii de implementare au fost di%erse. $n primul rnd
fle&ibilitatea i uurina de a lucra cu aceste limba+e, posibilitatea de a rula aplicaia
independent de sistemul de operare folosit, posibilitatea accesului la aplicaie prin Internet
dar i posibilitatea folosirii unei biblioteci de grafic pentru reprezentarea grafic. $n
aplicaia de fa sa folosit biblioteca gratuit )D/ pentru reprezentarea graficelor n mod
dinamic.
5iind %orba de o aplicaie care se ruleaz prin intermediul bro>serului ntreg
proiectul soft>are este format din fiiere necompilate. 'er%erul .pac1e se ocup cu
compilarea aplicaiei care %a fi rulat prin intermediul bro>serului >eb.
5olderul rdcin al aplicaiei conine un set de fiiere p1p care sunt folosite la
realizarea di%erilor pai ai aplicaiei. De asemenea n folderul rdcin a%em i fiierul
C'' unde sunt scrise toate intruciunile pentru aran+area n pagin a elementelor [<-,.
(2
5olderul rdcin conine dou subfoldereF data i include. $n folderul data sunt generate
fiierele .sim folosite la simulri. 4&plicaia modului de generare i folosire a acestor
fiiere se afl un subcapitol mai +os. 5olderul include conine trei fiiere care sunt comune
tuturor funciilor aplicaiei. 5iierul 9include9func.inc.p1p este biblioteca intern folosit de
aceast aplicaie. $n acest fiier se regsesc toate funciile apelate de aceast aplicaie. .ici
se gsete codul surs al funciilor pentru calculul timpilor de rspuns al metodelor diferite
de control al concurenei ct i alte codul surs al altor funcii folosite n aplicaie.
-od de folosire
:rima pagin a aplicaiei reprezint panoul principal de control. 'e pot alege patru
opiuniF
Generator tranzacii D 4ste o aplicaie pentru generarea de fiiere de simulare a
tranzaciilor. .ceste fiiere conin tablouri de %ectori cu date legate de condiiile de
simulare a tranzaciilor.
Generator tranzacii D 4ste o aplicaie pentru generarea mai multor simulri
folosind fiiere .sim create cu generatorul de tranzacii. !ezultatul acestor simulri este
prezentat n mod grafic.
Simulare vizual 4ste o aplicaie destinat n primul rnd nelegerii conceptelor
folosite n acest proiect. -odul %izual de reprezentare a datelor nu permite o simulare prea
a%ansat.
Simulare avansat 4ste o aplicaie care folosete fiiere .sim create cu
generatorul de tranzacii pentru calcularea timpilor de rspuns.
(3
)eneratorul de tranzacii
'copul generatorului de fiiere pentru simularea tranzaciilor este de a sal%a pe disc
o instan a unui set de tranzacii aleatoare pentru a putea fi procesate mai trziu folosind
simulatorul. -oti%aia din spatele sal%rii seturilor de tranzacii aleatoare n fiiere este c
n cazul bazelor de date de dimensiuni foarte mari, accesate de un numr mare de tranzacii
concurente, timpul de generare a tablourilor pentru reprezentarea acestora este mai mare
dect timpul de citire a datelor de pe disc. 4ste mai rapid deci generarea unui set de
((
tranzacii o singur dat i sal%area datelor ntrun fiier de simulare pe care sl folosim
mai apoi de mai multe ori dect generarea setului de tranzacii aleatoare de fiecare dat.
'tringul de date sal%at n fiier este o construcie specific limba+ului :[:. 'a folosit
funcia serialize(* care primete ca parametru de intrare un tablou i returneaz
reprezentarea sa sub form de string pentru a putea fi sal%at ntrun fiier i recitit
independent de limba+ul de programare folosit. :arametrii %ariaili ai fiierului generat sunt
numrul de tranzacii, numrul de granule accesate de o tranzacie, numrul de granule al
bazei de date i numele fiierului. 5iierele se sal%eaz cu e&tensia .sim pentru a atrage
atenia c este %orba de o simulare a unui set de tranzacii.
'imulare %izual
.ceast aplicaie se adreseaz n primul rnd nelegerii conceptelor folosite n acest
proiect. -odul %izual de reprezentare a datelor nu permite o simulare prea a%ansat.
Caseta de sus perminte introducere a pn la L tranzacii concurente. 5iecare tranzacie
introdus poate a%ea un numr %ariabil de granule de la zero la 688. Baza de date este
reprezentat de un ptrat format din @8 Y @8 C 688 de ptrate mai mici care reprezint
granulele. 'copul aplicaiei este %izualizarea tranzaciilor i a granulelor unde se pune
problema controlului concurenei.
()
$n subsolul aplicaiei se poate obser%a rezultatul timpului de e&ecuie al tranzaciilor
folosind di%eri algorimti de control al concurenei, probabilitatea de apariie a bloca+elor
unde este cazul dar i costul de apariie n cazul apariiei unui bloca+.
(*
'imulare a%ansat
4ste o aplicaie care folosete fiiere .sim create cu generatorul de tranzacii pentru
calcularea timpilor de rspuns. Dup ncrcarea fiierului de simulare se afieaz numrul
de granule accesate de tranzacii, gradul de acoperire al granulelor, numrul de elemente
de date n care sa pus problema controului concurenei, numrul de granule al bazei de
date, numrul de tranzacii i numrul de granule al fiecrei tranzacii. $n subsolul
aplicaiei se poate obser%a rezultatul timpului de e&ecuie al tranzaciilor folosind di%eri
algorimti de control al concurenei, probabilitatea de apariie a bloca+elor unde este cazul
dar i costul de apariie n cazul apariiei unui bloca+.
(+
)eneratorul de grafice
)eneratorul de grafice este principala unealt de analiz a rezultatelor obinute. 'e
folosesc fiiere .sim pentru a obine un set de tranzacii de start. .poi folosind caseta de
instruciuni se pote %aria cu un pas ales de ctre utilizator fie numrul de granule al bazei
de date, numrul de tranzacii sau numrul de granule al fiecrei tranzacii.
)raficele obinute n urma simulrii sunt realizate folosind biblioteca gratuit )D/.
(,

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