Blokkolás (DBMS)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. december 17-én felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

Zárolás ( angol.  lock ) a DBMS -ben  – egy jelölés egy objektum tranzakció által korlátozott vagy kizárólagos hozzáféréssel történő rögzítésére az ütközések megelőzése és az adatok integritásának megőrzése érdekében .

Besorolások blokkolása

A hatókör szerint a zárakat kisbetűkre, szemcsésre és predikátumra osztják. Súlyossága szerint a zárak közös ( angol  megosztott ) és exkluzív (exkluzív, angol  exkluzív ) csoportokra oszthatók. A megvalósítás logikája szerint a blokkolást optimistára és pesszimistára osztják.

Hatókör szerint

Sor zárolása  – az adatbázistábla csak egy sorát érinti, anélkül, hogy korlátozná a tábla többi sorában végzett manipulációkat.

Szemcsés zárolás  – a teljes táblázatot vagy a teljes oldalt és az összes sort érinti. Az olyan zárolást , amely korlátozza a táblázatban lévő adatlapokkal végzett manipulációkat (egy megosztott tárolási attribútum által egyesített sorok halmaza), néha oldalzárolásnak is nevezik . 

A predikátum zár az állítmány által határolt területre hat. Ez általában egy kulcstartó zár . Egy ilyen zárnál a kulcs vagy index megadja azt az értéket vagy értéktartományt, amelyre a zár vonatkozik. Egy ilyen zár (valamint az egész asztalra kiterjedő zár) többek között megvédi a fantomolvasást, és Serializálható tranzakció-izolációs szintet biztosít.

Súlyosság szerint

A megosztott zárolást egy objektumon végrehajtott tranzakció szerezheti meg, ha az általa végrehajtott művelet biztonságos, azaz nem változtat semmilyen adaton és nincs mellékhatása . Ugyanakkor minden tranzakció végrehajthat azonos típusú műveletet egy objektumon, ha van megosztott zárolása, általában egy ilyen zárolást használnak olvasási műveletekre.

Egy tranzakció kizárólagos zárat helyez egy objektumra, ha az általa végrehajtott művelet megváltoztatja az adatokat. Csak egy tranzakció hajthat végre ilyen műveletet egy objektumon, ha az rendelkezik kizárólagos zárral. Nem helyezhető el zár egy objektumra, ha már rendelkezik megosztott zárral.


A megvalósítási logika szerint

A javasolt adatmódosítás előtt pesszimista zárolás történik minden olyan sorban, amelyet a módosítás várhatóan érinteni fog. Az ilyen zárolás időtartama alatt a harmadik felek munkameneteiből származó adatok módosítása kizárt, a zárolt sorokból származó adatok a tranzakció elkülönítési szintjének megfelelően állnak rendelkezésre . A tervezett módosítás befejezése után az eredmények következetes rögzítése garantált.

Az optimista zárolás nem korlátozza a feldolgozott adatok harmadik fél munkamenetek általi módosítását, azonban a javasolt módosítás megkezdése előtt lekéri az egyes adatsorok valamelyik kiválasztott attribútuma értékét (általában egy név VERSIONés egy egész típus, kezdeti értéke 0). A módosítások adatbázisba írása előtt a kiválasztott attribútum értéke újraellenőrzésre kerül, és ha megváltozott, a tranzakció visszagörgetésre kerül, vagy különféle ütközés-feloldási sémákat alkalmaznak. Ha a kiválasztott attribútum értéke nem változott, a módosítások végrehajtása a kiválasztott attribútum értékének egyidejű megváltoztatásával történik (például növekmény ), hogy jelezze a többi szekció számára, hogy az adatok megváltoztak.