Sunteți pe pagina 1din 25

Baze de Date n

Economie
Cursul 10
Accesul Concurent

Conf. dr. Dan-Andrei Sitar-Tut


E-mail: dan.sitar@econ.ubbcluj.ro
Departamentul de Informatic Economic, et. 4, Birou 432
3 Cuprins
1. Controlul accesului concurent
2. Integritatea datelor
3. Tranzacie n contextul BD
4. Anomaliile de interferen
5. Caracteristicile execuiei fr conflict
concepte de baz
6. Execuie serializabil
7. Metode de control a accesului
concurent
8. Grafe de preceden
4 1. Controlul accesului
concurent
Controlul concurenei = partea SGBD-ului - asigur ca
executarea simultan a tranzaciilor - acelai rezultat ca
i executarea serial (secvenial) face partajarea
datelor transparent utilizatorilor.

Sisteme simple i ineficiente de blocare, exemplu


blocarea BD (Exemplu USE EXCLUSIVE VFP);
performanele sistemului scad exponenial cu numrul
de utilizatori inacceptabil
Algoritmi simpli, dar eficieni pentru gestiunea
concurenei = problem complex multe soluii
pariale i incomplete.
5 2. Integritatea datelor
BD - accesat de procese concurente probleme
importante:
asigurarea concordanei lumii reale cu BD care o
modeleaz
obinerea unei BD coerente.

Schema BD = structura + restriciile de integritate.

Restricii de integritate = aseriuni care vor trebui


verificate de datele din BD la un moment dat.
BD coerent (consistent) = BD n care sunt respectate restriciile de
integritate implicite / explicite.
6
Tipuri de restricii de integritate - Exemplu un magazin care vinde, stocheaz i
cumpr produse:
CUMP (NP, DC, CA)

Cantitatea achiziionat
Data cumprrii
Cod produs

VANZ (NP, DV, CV)


STOC(NP, CS)
PRODUS(NP, NUMP,NUMF, NUMFA)
Nume furnizor
Nume fabricant
Nume produs
Restricii de integritate asupra datelor izolate definirea datelor permite astfel
de restricii:
Domeniu: CA ntreg
Plaja de valori: CV ntre 1 i 100
Restricii de integritate
7

Restricii de integritate asupra grupurilor de date:


Dependene funcionale: NP NUMP
Dependene multivoce: NP => NUMF/ NUMFA
Dependene de incluziune: fiecrui tuplu din relaia
STOC trebuie s-i corespund unul din PRODUS.
Dependene aritmetice (semantice): CS = CA-
CV
Valori invariante neexplicite: suma care este ntr-o
baz de date bancar nu poate varia n timpul unui
transfer.
Restricii temporare - date care se pot modifica
periodic (sfrit de sptmna / lun).

Observaii. Toate restriciile, n afara celor temporare se


pot exprima n FOPL.
3. Tranzacie n contextul BD
8

n prelucrarea unei BD aceasta poate trece printr-o stare tranzitorie,


n care nu se respect anumite restricii de integritate.
Tranzacie = unitate de prelucrare secvenial, executat n contul
unui utilizator, care se aplic unei BD coerente i o las ntr-o
stare coerent
Tranzacie unitate de prelucrare atomic acceptat integral /
refuzat integral.
Restriciile de integritate invariante pentru tranzacii. SGBD
execut secvene de tranzacii pentru diveri utilizatori.
Problemele de concuren apar n interaciunea dintre
tranzaciile care partajeaz datele.
Tranzaciile formate din aciuni.
Aciune = unitate indivizibil (atomic) executat n cadrul unei
tranzacii.
Exemplu citirea unei date din memoria extern (Read X) / scrierea ei
(Write X).
Proprietile tranzaciilor - ACID
9

Atomicitate: totul sau nimic; Tranzacia este o


unitate atomic (indivizbil), care fie se execut n
totalitate, fie deloc. n caz de eec, operaiunile
efectuate pn n acel moment fiind derulate
napoi;
Coeren: tranzacia este un vehicul care duce
baza de date ntre dou stri coerente;
Izolare: tranzaciile nu trebuie s se vad unele
pe altele n timpul execuiei. Ele sunt independente,
ceea ce nsemn c o execuie parial a unei
tranzacii s nu perturbe execuia altei tranzacii
Durabilitate: atunci cnd tranzacia se efectueaz
cu succes, rezultatul acesteia o stare coerent a
bazei de date este memorat persistent pe disc
4. Anomaliile de interferen
10

Anomalia de actualizare pierdut (WRITE-


WRITE)
A = 50

T1 scrie peste T2. 59 49


Anomalia de citire improprie
11

WRITE-READ
A = 50, B=50

T2 surprinde o stare inconsistent a lui T1, scriind valoarea lui C, nainte


de citirea de ctre T1 a unei coponente de calcul a lui C, i anume B.
C=100 C = 90
Anomalia de citire nereproductibil
12 (irepetabil)

READ-WRITE

T1 gsete diferite valori pentru A la diferite citiri, datorit


interferenei cu T2.
5. Caracteristicile execuiei fr
13 conflict concepte de baz
Controler (Scheduler) = modulul care controleaz accesul concurent la
date.
Granul = Unitate din BD controlat individual de controler.
Dimensiunea granulei controversat, de la BD la pagina de fiier.
Granule mici favorizare paralelisme, timp de control lung datorit
accesului la granule.
Granule mari invers
granule de dimensiune variabil, dac tranzacia acceseaz date puine
dimensiune mic.
Granulele restricii de integritate intern tranzaciile respect restriciile
de integritate ale granulei.
Operaie = ir de aciuni care realizeaz - o funcie asupra unei granule cu
respectarea integritii.
Exemplu: READ (pagin), WRITE (pagin), READ (articol), WRITE
(articol), / complexe UPDATE (articol), INSERT (articol).
cu operaii de baz operaii complexe.
Rezultatul unei operaii = starea granulei de dup operaie + efectele de
bord ale operaiei.
Exemplu: READ citete n buffer, UPDATE modific + mesaj (eventual).

14 execut un ir de aciuni din partea tranzaciilor. Pentru un ir de tranzacii


SGBD
(T1, T2, ,Tn) istoria sistemului se poate reprezenta prin efectul aciunilor
tranzaciilor asupra BD.

Execuie (Schedule, Log, Istorie) O execuie a tranzaciilor (T 1, T2, ,Tn)


secvena de aciuni obinute prin interclasarea aciunilor din irul de tranzacii
dac execuia tranzaciilor respect ordinea de execuie aciunilor fiecrei
tranzacii participante - serial. Exemplu
A=B
T1 T2
Read A a1 Read A a2
a1+1 a1 a2*2 a
AA+1 Write a1 A Write a2 A A 2*A
Read B b1 Read B b2
b1+1 b1 b2*2 b2
B B+1Write b1 B Write b2 B B 2*B
Execuia serial a tranzaciile T1 i T2
T1: Read A a1 T2: Read A a2
15 T1: a1+1 a1 T2: a2*2 a2
A A+1 T1: Write a1 AT1: Read A a1
T2: Read A a2 T1: a1+1 a1
T2: a2*2 a2 T2: Write a2 A A 2*A
A 2*(A+1) T2: Write a2 A T2: Read B b2
T1: Read B b1 T2: b2*2 b2
T1: b1+1 b1 T1: Write a1 A A A+1
B B+1 T1: Write b1 B T1: Read B b1
T2: Read B b2 T1: b1+1 b1
T2: b2*2 b2 T1: Write b1 B B B+1
B=2*(B+1) T2: Write b2 B T2: Write b2 B B 2*B
Execuie corect a lui T1 i T2 Execuie incorect

6. Execuie serializabil

Execuii concurente pierdere de operaii / inconsistene. Scopul controlului eliminarea


inconsistenelor i execuie fr pierdere de operaii.

Observaie. Dac execuia tranzaciilor succesiv (serial) nu sunt inconsistene / pierderi.


Succesiune (Serial Schedule) = execuie a tranzaciilor:
E = <T1, T2, , Tn>
exist
16 o permutare al (1,2,,n) astfel ca:
E = <T(1) , T(2), , T(n) >

Absena conflictului nu se accept dect execuii care dau acelai rezultat ca o


execuie independent pentru orice tranzacie.

Execuie serializabil = E (eventual simultan, concurent) - acelai rezultat ca o


succesiune (execuie independent).

Controlul concurenei = un sistem centralizat / distribuit asigur numai execuii


serializabile. Este condiie suficient nu i necesar.

Proprietile operaiilor

1) 2 operaii care nu modific granule i care aparin la 2 tranzacii diferite pot fi


executate simultan fr a modifica rezultatul execuiei interclasarea operaiilor
care execut numai citiri duc la acelai rezultat ca execuia succesiv
(independent). Mai general se definesc operaiile compatibile:
Operaii compatibile (Compatible Operations) 2 operaii Oi, i Oj compatibile
execuia simultan a lor d acelai rezultat ca execuia secvenial al lui O i i apoi
Oj / invers Oj i apoi Oi. (secvena Oi i apoi Oj poate da rezultate diferite de secvena
Oj i apoi Oi).
Exemplu.
O11 O21
17
Read A a1 Read A a2
a1 *2 a1 a2 +1 a2
Print a1 Print a2
(2*A) (A+1)

O12 O22
Read A a1 Read A a2
a1 *2 a1 a2 +1 a2
WRITE a1 A WRITE a2 A
2*A A A+1 A

O13 O23
Read A a1 Read A a2
a1 +1 a1 a2 +10 a2
WRITE a1 A WRITE a2 A
A+ 1 A A+10 A

O11 i O21 sunt compatibile, O12 i O22, respectiv O13 i O23 nu.
2 operaii pe granule diferite sunt compatibile. ntr-adevr dac se execut simultan
(se interclaseaz) operaiile nu poate interveni o pierdere de operaii. Dou operaii
18
nu sunt compatibile dac exist posibilitatea pierderii unei operaii prin interclasare.
Ordinea operaiilor poate schimba rezultatul / poate s dea acelai rezultat. n general
se poate defini noiunea de operaii permutabile, care este diferit de cea a celor
compatibile (primele se refer la simultaneitate-interclasare, a doua la ordine)

D. Operaii permutabile - Oi i Oj permutabile Oi i apoi Oj d acelai rezultat ca


Oj i apoi Oi. Exemplu O13 i O23 sunt permutabile n timp ce O12 i O22 nu sunt.
2 operaii pe granule diferite sunt permutabile deoarece execuia primeia nu modific
rezultatul execuiei celei de a doua.

Caracterizarea execuiilor serializabile

Pentru a caracteriza execuia serializabil - 2 transformri de baz a unei execuii a


tranzaciilor:

Separarea operaiilor compatibile Oi i Oj executate de 2 tranzacii diferite const n


nlocuirea execuiei simultane a operaiilor E(O i,Oj) prin secvena care d acelai
rezultat < Oi,Oj> / < Oj,Oi>
separarea operaiilor permite schimbarea succesiunii operaiilor compatibile
executate de tranzacii diferite.
Permutarea operaiilor permutabile Oi i Oj executate de tranzacii diferite const n
schimbarea ordinii operaiilor; de exemplu secvena
19 < Oi,Oj> se nlocuiete cu < Oj,Oi>.

T1. Condiia suficient pentru o execuie s fie serializabil este ca ea s poat fi transformat
prin separarea operaiilor compatibile i permutarea celor permutabile ntr-o succesiune de
tranzacii componente.

Fie exemplele din slide 14.


Execuia corect:
T1: A+1 A
T2: A * 2 A
T1: B+1 B
T2: B * 2 B
Operaiile A * 2 A i B+1 B sunt permutabile deoarece acioneaz pe granule diferite.
Execuia se poate transforma n:
T1: A+1 A
T1: B+1 B
T2: A * 2 A
T2: B * 2 B
Deci o execuie secvenial T1 i apoi T2 serializabil.
20 7. Metode de control a
accesului concurent
Pesimiste: conflicte dese, msuri de precauie timpurii NU
exist execuii neserializabile
algoritmi bazai pe blocare, mrci de timp, hibrizi
Optimiste: conflicte rare, msuri de precauie trzii
algoritmi bazai pe blocare, mrci de timp, validare

Blocarea (Locking): n general abordare pesimist, se interzice


accesul tranzaciilor asupra granulei, atta timp ct efectuezi operaii
asupra acesteia i cel puin una dintre operaii este de scriere;
Mrcile de timp (Timestamps): se atribuie tranzaciilor de la
nceput o anumit ordine de acces la date. Se folosesc cte dou
tampile/mrci de timp pentru fiecare valoare persistent, astfel: una
indic ultima tranzacie care a citit valoarea, iar o alta indic ultima
tranzacie care a scris valoarea.
Protocoale de garantare a
21
serializabilitii prin blocare
Protocolul de blocare n dou faze: Two-Phase Locking (2PL)
n cadrul acestui protocol, blocrile se gestioneaz n dou faze succesive,
distincte:
Faza de extindere/cretere: n aceast faz se achiziioneaz doar blocri
noi, fr a fi eliberate cele existente, indiferent de tipul lor;
Faza de descretere: n aceast faz se elibereaz progresiv blocrile,
neexistnd posibilitatea de a aduga altele noi. Lactele se elibereaz n
totalitate odat cu sfritul tranzaciei.
Protocolul de blocare n dou faze strict: Strict Two-Phase Locking
(S2PL)
Acesta este un caz particular de 2PL i are caracteristicile:
Pentru blocrile la citire se procedeaz la fel ca n cazul 2PL
Pentru blocrile la scriere se procedeaz la fel ca n cazul 2PL Faza de
cretere
Pentru blocrile la scriere, acestea se elibereaz toate dup finalizarea
tranzaciei, fie c este efectuat cu succes, fie este derulat napoi n totalitate.
Protocolul de blocare n dou
22 faze foarte strict: Strong Strict
Two-Phase Locking (SS2PL)

Faza de extindere/cretere: n
aceast faz se achiziioneaz doar
blocri noi att la citire, ct i la
scriere, fr a fi eliberate cele
existente, indiferent de tipul lor;
Faza de descretere: n aceast faz
se elibereaz lactele n totalitate dup
sfritul tranzaciei, fie c este
efectuat cu succes, fie este derulat
napoi n totalitate.
8. Grafe de preceden

23
Precedena poate fi definit n orice execuie fr operaii simultane, de
exemplu n urma separrii operaiilor compatibile.

Definiie: Precedena = execuie fr operaii simultane. Ti precede Tj (notat Ti


< Tj) exist dou operaii nepermutabile Oi i Oj ca Oi din Ti precede pe
Oj din Tj.

Noiunea de preceden graf de preceden.

Graful de preceden vrfuri = tranzacii i exist un arc ntre Ti i Tj Ti


precede Tj (adic Ti < Tj).

T. O condiie suficient ca o execuie s fie serializabil este ca graful de


preceden fr cicluri. Exemplu slide 14.
T1: A+1 A
T1 T2
T2: A * 2 A
T1: B+1 B
T2: B * 2 B
Graf fr cicluri pentru execuii serializabile.
Dac lum exemplul:
T1: A+1 A
24
T2: A*2 A T1 T2
T2: B * 2 B
T1: B +1 B
Execuie neserializabil i graful de preceden are ciclu.

Caz particular: granula = pagina. Operaii coerente pe pagin:


READ (Pagina)
WRITE (Pagina)

Fie granule; operaiile de baz - pentru construirea altor operaii, sunt READ(granula)
i WRITE(granula) pentru evitarea conflictelor sistemul tranzacional trebuie s
asigure separabilitatea celor 2 operaii de baz - prin operaii de sincronizare de
tip semafor care permit excluderea execuiei simultane a operaiilor READ/WRITE
pe aceeai granul.

n sistemele practice, se pot executa toate separrile i apoi permutrile pe granule


diferite. Anumite operaii pe aceeai granul sunt nepermutabile:
25
(Ti READ g) (Tj WRITE g) nu sunt permutabile deoarece Ti citete o granul
nainte ca Tj s-o scrie i deci Ti< Tj .
(Ti WRITE g) (Tj READ g) nu sunt permutabile deoarece Ti scrie o granul
nainte ca Tj s-o citeasc i deci Ti< Tj.
(Ti WRITE g) (Tj WRITE g) nu sunt permutabile deoarece Ti scrie o granul
nainte ca Tj s-o scrie i deci Ti< Tj.

trebuie algoritmi de control a accesului concurent previn precedenele


READ/WRITE, WRITE/READ, WRITE/WRITE pe aceea i granul, operaii
incompatibile