You are on page 1of 5

Conspect la MySQL 23

Blocări Predicative
O altă metodă de blocare este blocarea nu a obiectelor BD, dar a condiţiilor , care trebuie să satisfacă
obiectele !"a blocări se numesc blocări predicati#e
!"a cum orice operaţie $n BD relaţională se indică cu care#a condiţie %adică $n ea nu se indică setul concret
de obiecte a BD, asupra cărora trebuie de efectuat operaţiile, ci condiţia care trebuie să satisfacă obiectele
acestui set&, ar fi comod ca S sau '( blocările anume acestei condiţii )nsă la $ncercarea de a folosi această
metodă $ntr(o BD apare *reutatea determinării compatibilităţii diferitor condiţii )ntrade#ăr, $n SQL se admit
condiţii cu subintero*ări "i alte predicate complicate +roblema compatibilităţii comparati# u"or se re,ol#ă
pentru ca,urile condiţiilor simple, de forma-
.Numele atributului ./ 0 12 0 2 0 2/ 0 1 0 1/3 Valoarea 3
4.OR 0 AND3 .Numele atributului ./ 0 12 0 2 0 2/ 0 1 0 1/3 Valoarea 3,5
+roblema elementelor ficti#e %fantomelor& u"or se re,ol#ă prin folosirea blocărilor predicati#e , fiindcă
tran,acţia a doua nu poate insera r6nduri noi ce satisfac condi"ia blocării
!tra*em atenţia, că blocarea tabelei totale practice este blocare predicati#ă, fiindcă fiecare table are
predicatul, ce determină care r6nduri se conţin $n tabele "i blocarea tabelelor eset blocarea predicati#ă a
acestui tabel
Metoda etichetelor temporare
O metodă de alternati#ă pentru tran,acţii, care funcţionea,ă bine $n ca,uri de conflicte a lor "i nu este necesar
construirea *rafului de a"teptare se ba,ea,ă pe folosirea etichetelor temporare
7deea de ba,ă a metodei constă $n următoarele- dacă tran,acţia ! s(a ănceput mai de#reme dec6t tran,acţia
B, atunci sistemul asi*ură un a"a re*im de e8ecutare, cum dacă ! $n $ntre*ime se e8ecuta p6nă la $nceperea
tran,acţiei B
+entru aceasta fiecărei tran,acţii 9 i se prescrie etic:eta temporară t, ce corespunde timpului de $nceput 9
La e8ecutarea operaţiilor asupra obiectulor ba,ei de date tran,acţia 9 $l $nseamnă cu etic:eta sa temporară "i
tipul operaţiei %citirea sau modificarea &
)nainte de a e8ecuta operaţiea asupra obiectului tran,acţia B e8ecută următoarele-
• ;erifică, dacă nu s(a terminat tran,acţia !, ce a $nsemnat acest obiect Dacă ! s(a finisat, B
$nseamnă obiectul cu etic:eta sa temporară "i e8ecută operaţia
• Dacă tran,acţia ! nu s(a finisat, atunci B #erifică conflicticitatea operaţiei Dacă operaţiia
nu conflictea,ă, asupra obiectului r răm6ne sau se indică o etic:eta temporară de o #aloare ma mică,
"i tran,acţia B e8ecută operaţia sa
• Dacă operaţiile B "i < ! conflictea,ă, atunci dacă t%!& 2 t%B& %adică tran,acţia ! este mai
=t6nără=, ca B&, atunci tran,acţia ! re#ine "i, primind o nouă etic:etă temporară se $ncepe din nou
9ran,acţia B prelun*e"te lucrul
• Dacă $nsă t%!& 1 t%B& %! =mai $n #6rstă ca = B&, atunci tran,acţia B re#ine "i, primind o nouă
etic:etă temporară se $ncepe din nou 9ran,acţia ! prelun*e"te lucrul
)n re,ultat sistemul asi*ură lucrul $n a"a fel, că dacă apar conflicte tot timpul re#ine tran,acţia cea mai t6nără
%care c(a $nceput mai t6r,iu&
>n e#ident nea?uns a metodei etic:etelor temporare este acela, că poate re#eni o tran,acţie mai scumpă, ce a
$nceput mai t6r,iu ca cea mai ieftină
>n alt nea?uns a metodei etic:etelor temporare este că se folosesc mai des re#enirile ca $n ca,ul blocărilor
Mecanismul separării versiunilor
@olosirea blocărilor *arantea,ă e8ecutarea $n serie a di#erselor tran,acţii din contul $ncetenirii lucrului total
A tran,acţiile cu conflicte a"teaptă, c6nd tran,acţia, care a blocat prima care#a obiect, nu $l #a elibera @ără
blocări e *reu de lucrat, dacă toate tran,acţiile modifică datele Dar dacă $n setul de tran,acţii sunt unele
tran,acţii, ce modoifică datele, cum "i numai care citesc datele, se poate de aplica Mecanismul de alternati#ă
!ceastă metoda constă $n faptul, că tran,acţiilor, ce citesc date, li se oferă cum ar fi #ersiunea BlorC de date,
care este la momentul de $nceput a tran,acţiei de citire Di tran,acţia nu blocea,ă datele de citit, "i deci nu
bloc:ea,ă alte tran,acţii, ce modifică datele !"a mecanism se nume"te Mecanismul separării versiunilor "i
se reduce la folosirea ?urnalului de tran,acţii pentru *enerarea diferitor #ersii a datelor
Eurnalul tran,acţiilor este preconi,at pentru e8ecutarea operaţiei de re#enire $n ca,ul e8ecutării fără succes a
tran,acţiei sau pentru restabilirea datelor după blocarea sistemei Eurnalul tran,acţiilor conţine copii #ec:ia
datelor, modificate de tran,acţii
+e scurt ideea metodei constă $n-
+a*ina F din G
Conspect la MySQL 23
• +entru fiecare tran,acţie %sau intero*are& se reţine numărul de sistemă actual %SCN ( System
Current Number& Cu c6t mai t6r,iu e $ncepută tran,acţia, cu at6t e mai mare al ei SCH
• La scrierea pa*inelor de date pe disc se fi8ea,ă SCH tran,acţiei, ce efectua,ă această
$nscriere !cest SCH de#ine numărul de sistemă actual al pa*inei de date
• 9ran,acţiile, care numai citesc date nu bloc:ea,ă nimic $n BD
• Dacă tran,acţia ! cite"te pa*ina de date, atunci SCH a tran,acţiei ! se compară cu SCH a
pa*inei de citire
• Dacă SCH a pa*inei de date e mai mic sau e*al ca SCH a tran,acţii !, atunci tran,acţia !
cite"te această pa*ină
• Dacă SCH a pa*inei de date e mai mare ca SCH a tran,acţii !, aceasta $nseamnă, că care#a
tran,acţie B, ce sa $nceput mai t6r,iu dac6t tran,acţiI !, a reu"it modificarea sau acum modifică
datele pa*inii )n acest ca, tran,acţia ! frun,ăre"te ?urnalul tran,acţiilor $napoi, $n căutarea primei
$nre*istrări despre modificarea aceatei pa*ine de date cu SCH mai mic ca SCH a tran,acţiei ! La
*ăsirea acestei $nre*istrări, tran,acţia ! folose"te #arianta #ec:e de date a pa*inii
Să anali,ăm, cum se re,ol#ă problema anali,ei incompatibile prin folosirea mecani,mului separării
#ersiunilor
O tran,acţie lun*ă e8ecută care#a anali,ă asupra tabelei $ntre*i, de e8emplu, calculea,ă suma
trotală pe conturile clienţilor bănciipentru contabilul "ef @ie că pe fiecare cont se află, de e8emplu,
c6te JFKK )n acest timp o tran,acţie scurtă e8ecută transferul a JGK de pe un cont pe altul, astfel, că
suma totală nu se modifică
Tranzacţia A Timpul Tranzacţia B
Controlul SCH al contului ( SCH al tran,acţiei 2 SCH a contului Citirea contului
fără aplicarea blocări "i sumarea
(((
(((
'(blocarea contului ( reu"ită
(((
Lidicarea banilor de la contul
(((
'(blocarea contului ( reu"ită
(((
Mutarea banilor pe contul
((( @i8area tran,acţiei %ridicarea blocării &
Controlul SCH a contului ( SCH a tran,acţiei 2ca SCH a contului Citirea contului
fără aplicarea blocării "i sumarea
(((
Controlul SCH a contului ( SCH a tran,acţii E MAI MI ca SCH a contului Citirea #ariantei
#ec:i a contului "i sumarea
(((
@i8area tran,acţiei (((
!umarea conturilor e"ectuată corect
Le,ultat 9ran,acţia !, care se $ncepe prima nu fr6nea,ă tran,acţia B La apariţia conflictului
%citirea tran,acţiei ! a contului 3 modificat&, tran,acţiei ! i se propune #arsia sa de date, care era la
$nceputul tran,acţiei !
Teorema Esvaran
+a*ina 2 din G
Conspect la MySQL 23
Concepţia posibilităţii de a aran*a a fost propusă prima dată de Ms#aran, care a propus protocolul
blocărilor în 2 faze -
F )nainte de a efectua care#a operaţii cu care#a obiect, tran,acţia trebuie să bloc:e,e acest
obiect
2 După ridicarea blocării , tran,acţia nu trebuie să aplice alte blocări
9ran,acţiile, folosite $n acest protocol, nu se deosebesc după tipuri "i se socot monopole
+rotocoalele descries mai sus a accesului la date prin folosirea S( "i '(blocărilor "i protocolul
blocărilor cu intenţii sunt modificaţia protocolului blocărilor $n 2 fa,e pentru ca,ul c6nd, blocările
au diferite tipuri
Teorema Esvaran Dacă toate tran,acţiile $n comun se supun protocolului $n 2 fa,e, atunci pentru
toate *raficele de e8ecuţie e8istă posibilitatea de ordonare
+rotocolul se nume"te $n 2 fa,e fiindcă se caracteri,ea,ă $n 2 fa,e-
• 1 fază – aplicarea blocărlori )n timpul acestei fa,e se aplică blocări, "i se efectua,ă lucrul
cu obiectele blocate
• 2 fază – ri!icarea blocărilor )n timpul acestei fa,e blocările numai se ridică Lucrul cu
datele blocate anterior se poate prelun*i
Lucrul tran,acţiilor poate arăta apro8imati# astfel-
#i$ura % &ucrul tranzacţiilor con"orm protocolului 'locărilor (n ) "aze
>rmătoarea fi*iră se indică e8emplu tran,acţiilor, ce nu se supun protocolului blocărilor $n 2 fa,e-
#i$ura ) Tranzacţia* ce nu se supun protocolului 'locărilor (n ) "aze
)n practică, de obicei fa,ă a doua se reduce la o operaţie de finisare a tran,acţiei %sau de re#enire a
tran,acţiei& cu ridicarea $n acela"i timp a tuturor blocărilor
Dacă care#a tran,acţie ! nu se supune protocolului blocărilor $n 2 fa,e %"i, re,ultă, constă din nu mai puţin
de 2 operaţii de blocării "i deblocare&, atunci tottimpul putem construe o altă tran,acţie B, care prin
e8ecutarea $mpreună cu ! adduce la un *rap:ic, care nu poate fi supus aran*ării "i nu e corect
Realizarea izolării tranzacţiilor (n !+&
Nivele de izolări
+a*ina 3 din G
Conspect la MySQL 23
SQL standard nu presupune noţiunea de blocarepentru reali,area aran?ării setului de tran,acţii )n loc de
aceasta se introduce noţiune de ni#el de i,olare !ceastă metodă asi*ură cerinţele necesare pentru i,olarea
tran,acţiilor,lăs6nd pe seama utili,atorilor diferitor SNBD să reali,e,e aceste cerinţe prin metode proprii %un
ca, fiind, prin folosirea blocărilor sau metoda etic:etelor temporare&
SQL standard pre#ede O ni#ele de i,olare-
• "E#$ %NC&MM'TTE$ ( nivelul citirii neterminate
• "E#$ C&MM'TTE$ ( nivelul citirii terminate
• "E(E#T#)*E "E#$ ( nivelul citirii repetate
• SE"'#*'+#)*E ( nivelul posibilităţii de aranjare
Dacă toate tran,acţiile se e8ecută la ni#el de posibilităţii de aranjare %care este prin con#enţie&, atunci orice
mulţimede tran,acţii paralele poate fi aran?ată Dacă care#a tran,acţii se e8ecută la ni#ele mai mici atunci
e8istă o mulţimea de #ariante de a $ncurca posibilitatea de ordonare )n standardul SQL se e#idenţia,ă trei
ca,uri aparte de a $ncurca posibilitatea de ordonare, practice cele ce erau indicate ca probleme a
paralelismului-
• citirea ine,actă %=Murdară= citirea, dependenţei nefi8ată&
• citirea nerepetată %ca, de anali,ă incompatibilă&
• -antome %Mlemente ficti#e ( ca, de anali,ă incompatibilă&
+ierderea re,ultatelor modificării standardul SQL nu permite, adică la cel mai mic ni#el de i,olare a
tran,acţiile trebuie să lucre,e a"a, ca să nu admită pierderia re,ultatelor modificării
Nivelul izolării itirea ine,actă citirea nerepetată "antome
READ -NOMMITTED PQ PQ PQ
READ OMMITTED N- PQ PQ
REPEATAB&E READ N- N- PQ
!ERIA&I.AB&E N- N- N-
Ta'elul / Nivele de izolări a standardului !+&
!inta,a operatorilor !+&* ce determină nivele de izolări
Hi#elul de i,olare a tran,acţiei se indică cu a?utorul următorului operator-
SET TRANSACTION {ISOLATION LEVEL
{READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE}
| {READ ONLY | READ WRITE}}.,..
!cest operator determină re*imul e8ecutării următoarei tran,acţii, adică acest operator nu
contea,ă la modificarea re*imului acelei tran,acţii, $n care el se scrie De obicei, e8ecutarea
operatorului SM9 9L!HS!C97OH se indică ca o fra,ă aparte a tran,acţiei -
… (tranzacţia precedentă se execută cu nivelul ei de izolare)
COMMI!
"# $%&"%CIO& I"O'%IO& '#(#' $#)#%%*'# $#%+!
COMMI!
… (ur,ătoarea tranzacţie se execută cu nivelul de izolare $#)#%%*'# $#%+)
Dacă este propo,iţia 7SOL!97OH LM;ML, atuni după ea trebuie să fie unul din parametrii, ce definesc
ni#elul de i,olare
Deasemenea se pot indica LM!D OHLR sau LM!D SL79M Dacă se indică LM!D OHLR, se sub6nţele*e
că tran,acţia este numai pentru a citi date La $ncercarea de a scrie pentru a"a tran,acţiT #a apărea eroare
Semnul LM!D OHLR se folose"te pentru a mic"ora numărul de blocărilor "i a folosi "i alte metode
Operatorul SM9 9L!HS!C97OH trebuie să satisfacă următoarele condiţii-
• Dacă propo,iţia 7SOL!97OH LM;ML lipse"te , atunci, prin con#enţie se indică ni#elul
SML7!L7U!BLM
• Dacă este indicat semnul LM!D SL79M, atunci parametrul 7SOL!97OH LM;ML nu poate primi
#aloarea LM!D >HCOMM799MD
• Dacă parametrul 7SOL!97OH LM;ML e definit ca LM!D >HCOMM799MD, atunci tran,acţia
de#ine prin con#enţie LM!D OHLR )n ca, contrar prin con#enţie tran,acţia se socoate ca LM!D SL79M
oncluzii
+a*ina O din G
Conspect la MySQL 23
Sistemele moderne permit lucrul mai multor utili,atori Dacă, $nsă nu luăm care#a măsuri speciale,
tran,acţiile se #or $ncurca una alteea M8istă trei probleme de ba,ă a paralelismului-
• (roblema pier!erii rezultatelor mo!ificării
• (roblema !epen!en.ei nefi,ate %Citirea !atelor /mur!are01&
• (roblema analizei incompatibile
Nraficul de e8ecuţie a setului de tran,acţii se nume"te succesiv, dacă tran,acţiile se e8ecută strict $ntr(o
ordine Dacă *raficul e8ecu"iei setului de tran,acţii conţine operaţii alternati#e a tran,acţiilor, a"a *rap:ic se
nume"te alternativ Două *rafice se numesc echivalente, dacă la e8ecutarea lor obţinem unul "i acela"
re,ultat, indiferent de starea iniţială a BD. Nraficul de e8ecu"ie a tran,acţiei se nume"te corect, dacă el este
ec:i#alent cu care#a *rafic succesi#
+a*ina G din G