Transakcie Flashcards
Rozvrh je kompletný keď…
Rozvrh je kompletný, ak v ňom všetky transakcie končia buď operáciou COMMIT alebo ABORT
Transakcia je v danom čase aktívna ak…
Transakcia je v danom čase aktívna, ak v tom čase už začala (t.j. bola vykonaná jej operácia START) a zároveň v tom čase ešte neskončila (t.j. nebola vykonaná jej operácia COMMIT či ABORT)
V histórii sú dve operácie konfliktné ak …
V histórii sú dve operácie konfliktné ak patria rôznym
transakciám, ich operandom je rovnaký objekt a aspoň jedna z tých operácií je write
Dve histórie sú konflikt-ekvivalentné ak…
Dve histórie sú konflikt-ekvivalentné ak
• pozostávajú z rovnakých operácií a
• relatívne poradie každých dvoch konfliktných operácií je rovnaké v oboch históriách
Sériový rozvrh
Rozvrh je sériový ak je kompletný (t.j. každá transakcia
v tom rozvrhu končí commitom alebo abortom) a pre každú dvojicu transakcií T1, T2 platí, že buď všetky operácie T1 v tom rozvrhu predchádzajú operáciám T2 alebo naopak
Konflikt-sériovateľný rozvrh
Rozvrh je konflikt-sériovateľný ak jeho projekcia na
commitované transakcie je konflikt-ekvivalentná niektorému sériovému rozvrhu tých commitovaných transakcií
Precedenčný graf
orientovaný graf, vrcholy sú transakcie, z V1 do V2 je hrana keď existuje konfliktná operácia medzi V1 a V2 a operácia v V1 je skôr ako V2
Ako vieme testovať sériovateľnosť pomocou precedenčného grafu?
Rozvrh je konflikt-sériovateľný práve vtedy, ak jeho
precedenčný graf je acyklický
Opíš Izoláciu: Zamykanie (locking)
Idea: do rozvrhu sa pridajú operácie lock a unlock, ktorými sa zamykajú resp. odomykajú dátové objekty. Transakcia smie dátový objekt čítať/písať len v momente, keď vlastní potrebný zámok na ten objekt. Commit je triviálny, netreba nič kontrolovať
Aké sú základne typy zámkov?
Základné typy zámkov:
• Read-lock (RL): dovoľuje iba čítať
• Write-lock (WL), exclusive-lock: dovoľuje čítať aj písať
Aké zámky sú kompatibilné a prečo?
RL a RL
Dokáž: Two-phase locking generuje len konflikt-sériovateľné rozvrhy
slide 33
Dá sa každý konflikt-sériovateľný rozvrh vygenerovať two-phase locking algoritmom?
Nie, pozri slide 33
r1(X), r2(X), r1(X), w2(X), c1, c2
Načo sú dobré a dôležité transkacie?
Musíme počítať s prístupom k db viac ľudí naraz
Aké sú podmienky transakcií?
- spránve výsledky
- obnoviteľnosť
- konzistentnosť
Transakcia je program, ktorý …
Transakcia je program, ktorý pristupuje k
databáze
Aká je postupnosť operácií v transakcii?
- START
- READ,WRITE, DELETE, INSERT
- COMMIT/ABORT