Práctica de Logging (Bases de Datos)

De Cuba-Wiki
Revisión del 20:23 6 nov 2010 de 190.226.178.17 (discusión) (→‎Ejercicio 1)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Plantilla:Back

Ejercicio 1


a) <CKPT> al final de todo o luego del <commit T1>, sólo se puede poner uno.
b) <Start CKPT> despues de <Commit T2>, <End CKPT> despues de <Commit T1>
c) Cambiar registros <Ti,X,a,b> por <Ti,X,b-1,b>

Ejercicio 2


a) Deshacer T1; A=10
b) T2 no hay que hacer nada. Deshacer T1,T12; C=310,A=10
c) Deshacer T1,T2; E=50,R=12,C=30,A=10
d) Todos commitearon o abortaron

Ejercicio 3


a) Nada (nadie hizo commit)
b) Rehacer T2; B=20,D=40
c) idem b
d) Rehacer T1 y T2; A=10,B=20,C=30,D=40,E=50

Ejercicio 4

a)

  • i) Deshacer T1,T2,T4; B=16,A=8
  • ii) Deshacer T1 C=56,A=8

b)

  • i) Rehacer T3; E=24,F=40

Ejercicio 5

a)

  • Deshacer T1,T2
  • Cambios vars: B=200, A=100
  • Cambios log: <Abort T1>,<Abort T2>

b)

  • Deshacer T1,T2; Rehacer T3
  • Cambios vars: E=40,C=300,B=200,A=100 (undo), D=400,F=500 (redo)
  • Cambios log: <Abort T1>,<Abort T2>

c)

  • Deshacer T1,T4; Rehacer T2,T3
  • Cambios vars: G=600,C=200,A=100 (undo), B=210,D=410,E=41,F=510 (redo)
  • Cambios log: <Abort T1>,<Abort T4>

d)

  • Rehacer T1,T2,T3,T4
  • Cambios vars: A=110,B=210,C=310,D=410,E=41,F=510,G=610,H=710
  • Cambios log: -

Ejercicio 6

i)
a) despues de <Commit T1>
b) despues de <Commit T2>
c) idem b
d) despues de <Commit T4>
e) idem d

ii) La respuesta es igual para todos: recorro el log hasta el <START CKPT> siempre y cuando me haya topado con el <END CKPT>, sino lo tengo que recorrer hasta el principio.

Ejercicio 7

Ejercicio 8

Ejercicio 9

Ejercicio 10