Sočasni dostop do podatkovne baze
Iz E-študij, proste zakladnice študentskega znanja
Sočasni dostop do podatkovne baze je mogoč zato, ker sodobni operacijski sistemi omogočajo izvajanje več programov hkrati. Poleg SUPB se tako lahko izvaja več uporabniških programov, ki dostopajo do PB hkrati.
Vsebina |
Prepletanje
Transakcije, ki jih izvajajo uporabniški programi se izvajajo prepletajoče, zato tudi SUPB izvaja ukaze prepletajoče.
Pasti prepletanja
Prepletajoče izvajanje transakcij skriva dve pasti:
- podatkovna baza lahko zaide v nekonsistentno stanje
- rezultati povpraševanj v podatkovni bazi so lahko napačni
Nekonsistentno stanje
Prepletajoča izvedba transakcij lahko bazo pusti v nekonsistentnem stanju, čeprav sta obe transakciji pravilno izvedli svoja ažuriranja.
- izgubljeno ažuriranje
- na osnovi istega prebranega zapisa se izvede ažuriranje istega zapisa s strani dveh transakcij, kar pomeni, da obvelja samo zadnje ažuriranje,
- branje neobstoječega zapisa
- predpostavimo, da neka transakcija prebere zapis, ki ga je ravnokar ažurirala druga transakcija, ki se je takoj zatem ponesrečila in zato razveljavila. Prva transakcija je torej prebrala zapis (oz. njegovo stanje), ki ni nikoli veljavno obstajal v PB.
Nadzor
Naloga nadzora nad sočasno uporabo PB (concurrency control) je:
- ohraniti podatkovno bazo v konsistentnem stanju,
- dopustiti čimvečjo sočasnost izvajanja transakcij
Tehnike
V ta namen se uporabljata dve tehniki:
- zaseganje zapisov (locking)
- časovno označevanje (timestamping)
Sočasno izvajanje transakcij bomo obravnavali na primeru centralizirane PB, ki jo upravlja en sam SUPB Do problemov sočasnega izvajanja transakcij prihaja tudi pri porazdeljenih PB. Ker se tam transakcije zares izvajajo sočasno, so problemi sočasnosti izvajanja transakcij še težje rešljivi. Niso pa nerešljivi.