Transakcija
Iz E-študij, proste zakladnice študentskega znanja
Transakcija je logični vrstni red ažuriranj in povpraševanj, ki prevede PB iz enega v novo veljavno stanje. Transakcija ohranja tudi konsistentnost podatkov v PB.
Če hočemo ohraniti konsistentno PB, se mora transakcija izvesti v celoti, ali pa sploh ne. Oziroma: izvesti se morajo vsa ažuriranja transakcije ali nobeno.
Vsebina |
Potek transakcije
Transakcija se prične z operacijo “Začetek transakcije”, konča pa ali z ukazom “Pomni” (COMMIT) ali “Pozabi” (CANCEL, ROLLBACK).
Ukazi
- COMMIT
- navodilo SUPB, da so se vsa ažuriranja v okviru transakcije uspešno izvedla in da naj se vse spremembe v PB ohranijo
- ROLLBACK
- navodilo SUPB, naj se vsa v okviru transakcije izvedena ažuriranja razveljavijo
Življenjski cikel
Življenski cikel transakcije lahko predstavimo z diagramom prehajanja stanj – transakcija se nahaja v več stanjih:
- aktivna transakcija
- Transakcija je aktivna od ukaza “Začetek transakcije” do ukaza “Commit” (preide v stanje “uspešna transakcija”)
- uspešna transakcija
- Pri nekaterih vrstah obnavljanja mora SUPB vsa ažuriranja uspešne transakcije šele uveljaviti v PB, ker se dejanska ažuriranja v PB še niso izvedla
- Ko je uveljavljanje ažuriranj izvedeno, postane transakcija uspešno zaključena (stanje “uspešno zaključena transakcija”)
- ponesrečena transakcija
- Če se med uveljavljanjem ažuriranj zgodi podatkovna nesreča, postane transakcija ponesrečena
- Tudi aktivna transakcija se lahko ponesreči in tako postane ponesrečena transakcija
- V takih primerih mora SUPB poskrbeti za razveljavitev vseh morebitnih ažuriranj v PB, nato pa postane transakcija “neuspešno zaključena”
- Če se transakcija ni ponesrečila po lastni krivdi (na primer zaradi neustreznih vhodnih podatkov), jo SUPB vrne v ponovno izvajanje
