Sunteți pe pagina 1din 8

Gestionarea tranzacțiilor SGBD Ce sunt proprietățile ACID?

Cuprins
 Ce este o tranzacție în baza de date?
 Fapte despre tranzacțiile bazei de date
 De ce aveți nevoie de concurență în Tranzacții?
 Statele tranzacțiilor
 Ce sunt proprietățile ACID?
 Tipuri de tranzacții
 Ce este un program?
 Rezumat:

Ce este o tranzacție în baza de date?


O tranzacție de bază de date este o unitate logică de procesare într-un
SGBD care presupune una sau mai multe operațiuni de acces la baze
de date. Pe scurt, tranzacțiile bazei de date reprezintă evenimente din
lumea reală ale oricărei întreprinderi.
Advertisement

Toate tipurile de operațiuni de acces la baza de date care sunt ținute


între declarațiile de tranzacție de început și de sfârșit sunt considerate
ca o singură tranzacție logică în SGBD. În timpul tranzacției baza de
date este inconsistentă. Doar odată ce baza de date este angajată,
starea este schimbată dintr-o stare consecventă în alta.

În acest tutorial, veți învăța:

 Fapte despre tranzacțiile bazei de date


 De ce aveți nevoie de concurență în Tranzacții?
 Statele tranzacțiilor
 Ce sunt proprietățile ACID?
 Tipuri de tranzacții
 Ce este un program?

Fapte despre tranzacțiile bazei de date


 O tranzacție este o unitate de program a cărei execuție poate
modifica sau nu conținutul unei baze de date.
 Conceptul de tranzacție din SGBD este executat ca o singură
unitate.
 Dacă operațiunile bazei de date nu actualizează baza de date, ci
recuperează doar date, acest tip de tranzacție se numește tranzacție
numai în citire.
 O tranzacție reușită poate schimba baza de date de la un STAT
CONSISTENT la altul
 Tranzacțiile SGBD trebuie să fie atomice, consistente, izolate și
durabile
 Dacă baza de date ar fi într-o stare incoerentă înainte de o
tranzacție, aceasta ar rămâne în starea inconsecventă după
tranzacție.

De ce aveți nevoie de concurență în


Tranzacții?
O bază de date este o resursă partajată accesată. Este utilizat de mai
mulți utilizatori și procese simultan. De exemplu, sistemul bancar,
feroviar și sistemele de rezervări aeriene, monitorizarea pieței bursiere,
inventarul supermarketurilor și casele etc.

Advertisement

Dacă nu gestionați accesul simultan, puteți crea probleme precum:

 Eroare hardware și blocarea sistemului


 Executarea concomitentă a aceleiași tranzacții, blocare sau
performanță lentă

Statele tranzacțiilor
Diferitele stări ale unui concept de tranzacție în SGBD sunt enumerate
mai jos:
Stat Tipuri de tranzacții
O tranzacție intră într-o stare activă atunci când
Starea activă procesul de execuție. În această stare se pot efectua
citire sau scriere.
O tranzacție intră în starea parțial angajată după înc
Parțial angajat
tranzacții.
Când tranzacția este angajată la starea sa, aceasta ș
Statul angajat deja execuția cu succes. Mai mult, toate modificări
înregistrate permanent în baza de date.
O tranzacție consideră eșuată atunci când una dintr
Stat eșuat eșuează sau dacă tranzacția este întreruptă în timp
starea activă.
Starea tranzacției ajunge la starea încheiată atu
Statul reziliat
anumite tranzacții care părăsesc sistemul nu pot fi

Diagrama de tranziție de stat pentru o tranzacție de bază de date


Să studiem o diagramă de tranziție a stării care evidențiază modul în
care o tranzacție se mișcă între aceste diferite stări.

Advertisement
1. Odată ce o tranzacție indică execuția, aceasta devine activă. Poate
emite operația CITIȚI sau SCRIVE.
2. Odată ce operațiunile CITIȚI și SCRIȘI se încheie, tranzacțiile
devin parțial stări angajate.
3. În continuare, unele protocoale de recuperare trebuie să se
asigure că o defecțiune a sistemului nu va duce la incapacitatea de a
înregistra modificările în tranzacție permanent. Dacă această
verificare are succes, tranzacția se angajează și intră în starea
angajată.
4. Dacă verificarea eșuează, tranzacția merge la starea Failed.
5. Dacă tranzacția este întreruptă în timp ce se află în starea activă,
aceasta trece la starea eșuată. Tranzacția ar trebui să fie anulată
pentru a anula efectul operațiilor sale de scriere asupra bazei de
date.
6. Starea terminată se referă la tranzacția care părăsește sistemul.

Ce sunt proprietățile ACID?


Proprietățile ACID sunt utilizate pentru menținerea integrității bazei de
date în timpul procesării tranzacțiilor. ACID în SGBD
înseamnă A tomicity, C onsistency, I solation și D urability.
 Atomicitate: O tranzacție este o singură unitate de funcționare. Fie
îl executați în totalitate, fie nu îl executați deloc. Nu poate exista o
execuție parțială.
 Coerență: Odată ce tranzacția este executată, aceasta ar trebui să
treacă de la o stare consecventă la alta.
 Izolare: Tranzacția trebuie executată separat de alte tranzacții (fără
blocaje). În timpul execuției simultane a tranzacțiilor, rezultatele
intermediare ale tranzacțiilor efectuate simultan nu ar trebui să fie
puse la dispoziția celorlalți. (Nivel 0,1,2,3)
 Durabilitate: · După finalizarea cu succes a unei tranzacții,
modificările din baza de date ar trebui să persiste. Chiar și în cazul
defecțiunilor sistemului.
Proprietate ACID în SGBD cu exemplu:
Mai jos este un exemplu de proprietate ACID în SGBD:

Advertisement

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

Tranzacția 1 transferă 50 USD din contul X în contul Y.

Tranzacția 2 creditează fiecare cont cu o plată de dobândă de 10%.

Dacă ambele tranzacții sunt trimise împreună, nu există nicio garanție că


tranzacția 1 se va executa înainte de tranzacția 2 sau invers. Indiferent
de comandă, rezultatul trebuie să fie ca și cum tranzacțiile au loc în serie
una după alta.

Tipuri de tranzacții
Pe baza domeniilor de aplicare
 Nedistribuit vs. distribuit
 Compensarea tranzacțiilor
 Timpul tranzacțiilor
 On-line vs. lot
Pe baza acțiunilor
 Doi pasi
 Restricționat
 Model de acțiune
Pe baza structurii
 Tranzacții plate sau simple: constă dintr-o succesiune de operații
primitive executate între o operație de început și de sfârșit.
 Tranzacții imbricate: O tranzacție care conține alte tranzacții.
 Flux de lucru

Ce este un program?
O programare este un proces care creează un singur grup de tranzacții
paralele multiple și le execută pe rând. Ar trebui să păstreze ordinea în
care instrucțiunile apar în fiecare tranzacție. Dacă două tranzacții sunt
executate în același timp, rezultatul unei tranzacții poate afecta producția
celeilalte.

Advertisement

Exemplu

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction


2: Read Product Quantity

Dacă Tranzacția 2 este executată înainte de Tranzacția 1, vor fi citite


informații învechite despre cantitatea produsului. Prin urmare, sunt
necesare orare.

Executarea în paralel într-o bază de date este inevitabilă. Dar,


executarea paralelă este permisă atunci când există o relație de
echivalență între tranzacțiile care execută simultan. Această echivalență
este de 3 tipuri.

EQUIVALENȚA REZULTATULUI:
Dacă două planificări afișează același rezultat după executare, se
numește program echivalent cu rezultatul. Acestea pot oferi același
rezultat pentru o anumită valoare și rezultate diferite pentru un alt set de
valori. De exemplu, o tranzacție actualizează cantitatea produsului, în
timp ce altele actualizează detaliile clientului.

Vizualizați echivalența
Vizualizarea echivalenței apare atunci când tranzacția din ambele
planificări efectuează o acțiune similară. De exemplu, o tranzacție
introduce detalii despre produs în tabelul de produse, în timp ce o altă
tranzacție introduce detalii despre produs în tabelul de arhivă. Tranzacția
este aceeași, dar tabelele sunt diferite.

Echivalența CONFLICTULUI
În acest caz, două tranzacții actualizează / vizualizează același set de
date. Există un conflict între tranzacții, deoarece ordinea de execuție va
afecta rezultatul.

Ce este Serializabilitatea?
Serializabilitatea este procesul de căutare a unei planificări concurente
cu ieșire egală cu o programare serială în care tranzacția se execută
una după alta. În funcție de tipul de programe, există două tipuri de
serializabilitate:

 Conflict
 Vedere

Rezumat:
 Gestionarea tranzacțiilor este o unitate logică de procesare într-un
SGBD care presupune una sau mai multe operațiuni de acces la
baze de date
 Este o tranzacție este o unitate de program a cărei execuție poate
modifica sau nu conținutul unei baze de date.
 Dacă nu gestionați accesul simultan, puteți crea probleme precum
defecțiuni hardware și blocări ale sistemului.
 Activ, Parțial angajat, Angajat, Eșuat și Terminat sunt stări
importante ale tranzacției.
 Forma completă a Proprietăților ACID în SGBD este Atomicitate,
Consistență, Izolare și Durabilitate
 Trei tipuri de tranzacții SGBD se bazează pe domeniile de aplicare,
acțiune și structură.
 O programare este un proces care creează un singur grup de
tranzacții paralele multiple și le execută pe rând.
 Serializabilitatea este procesul de căutare a unui program simultan
a cărui ieșire este egală cu un program serial în care tranzacțiile sunt
executate una după alta.

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