1) ========================== Atomicidade: x.valor = 5 write(x) FALHA read y commit x.valor = 0 write(x) Isolamento: --------- x.valor = 5 x.valor = 10 write(x) write(x) Durabilidade: --------- x = 5 read y commit write x FALHA 2) ==================================== falha: no undo / no redo undo / no redo no undo / redo undo / redo buffer: undo / redo steal / not force undo / no redo steal / force no undo / redo not steal / not force no undo / no redo not steal / force 3) ===================== Usando a técnica UNDO/REDO, o uso de FORCE torna-se redundante e desnecessário, já para se usar UNDO/NO-REDO é OBRIGATÓRIO o uso do FORCE. 4) ======================= 5) ======================== a) x=5 write x read x read y commit x = x+4 write x commit x=10 write x commit b) ------------ x=5 write x read x read y commit x = x+4 write x commit x=10 write x commit c) ----------------- NÃO É 2PL lx x write x u x ls y ls z read y read z commit commit lx y write y u y c d) ------------------ 15:00 15:30 16:30 write x read x write y write y (abort) (abort) ------------------- 1 2 3 write x read x (wait) commit read y commit (saiu wait) read x write x commit 1 -> 2 -> 3 ------------------- WTF? ------------------ lix bd lix medicos lix bd lx dr linus write dr linus lix bd lix medicos lx dr house u dr linus lx dr linus (so pode depois do u) u dr linus u dr house u medicos u bd u medicos lx medicos(so pode depois do u) u bd u medicos u bd