Blocarea - în bazele de date relaționale, aceasta setează o etichetă pe înregistrare, că înregistrarea este blocată pentru modificări. Există două tipuri de încuietori - optimiste și pesimiste.
Blocare optimistă
Cu o blocare optimistă în baza de date, nu există blocare reală. În schimb, se folosește următoarea abordare: dacă în timpul unei tranzacții schimbă datele care au fost modificate după începerea acesteia, tranzacția este întreruptă cu o excepție. Utilizarea încuietori optimiste vă permite să evitați blocările. Pentru a implementa o blocare optimistă, se utilizează adesea versiuni de date - se adaugă o coloană în tabel, care stochează versiunea curentă. Când executați actualizarea, interogarea din clauza unde transferă versiunea datelor care au fost retrase la modificare. Dacă actualizarea a returnat 0 rânduri modificate, atunci datele au fost deja modificate și tranzacția trebuie reluată. În loc de versiune, puteți stoca timpul ultimei modificări a datelor.
Închidere pesimistă
Cu o blocare pesimistă, o blocare exclusivă la nivelul bazei de date este plasată pentru înregistrare, împiedicând astfel accesul la date din alte tranzacții. Există mai multe tipuri de încuietori pesimiste:- citiți blocarea
- scrie blocare
Comparație între încuietori optimiste și pesimiste
Atunci când dezvoltați software, trebuie să alegeți o strategie de blocare a datelor. Procedând astfel, rețineți următoarele:- Dacă situația de actualizare a acelorași date la un moment dat este relativ rară, este mai avantajos să folosiți o blocare optimistă. În acest caz, nu va exista o operație costisitoare de blocare a resurselor.
- Dacă este posibilă o situație de actualizare a acelorași date, este mai bine să utilizați o blocare pesimistă, ceea ce va reduce numărul de tranzacții întrerupte.
- De asemenea, trebuie remarcat faptul că, cu o blocare optimistă în cazul unei întreruperi a tranzacției, aceasta trebuie reluată.