Segundo Parcial 11/06/08 (Bases de Datos)

De Cuba-Wiki
Revisión del 22:19 15 jun 2009 de 190.18.215.16 (discusión) (→‎Cálculo de Costos)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Plantilla:Back

Enunciado[editar]

Ver el enunciado

Optimización[editar]

Algebraica[editar]

Consulta SQL:

SELECT P.DNI, P.nombre, P.fecha-nacimiento, M.nombre, C.fecha
FROM PACIENTE P, MEDICO M, CONSULTA C
WHERE P.DNI = C.DNI AND M.matricula =C.matricula AND C.fecha>=’01/01/2008’ AND M.especialidad=’Cardiología’

Consulta algebraica:

Arbol canonico:

  Proyeccion
      |
  Seleccion
      |
     Join
    /    \
  Join    C
 /    \
P      M

Cálculo de Costos[editar]

El index scan sobre paciente tiene un costo de input de 56 accesos, y un costo de salida por la materialización de 53 accesos.


El INLJ tiene un costo de entrada de 121298, sin costo de salida pues se hace pipe hacia la proyeccion.


El costo total entonces es de 122037.

La salida tiene un costo de 7500.

Transacciones[editar]

Serializabilidad[editar]

  • H1 no es equivalente
  • H2 no es equivalente
  • H3 sí es equivalente

Recuperabilidad[editar]

  • H0 ST
  • H1 ST
  • H2 ST
  • H3 ACA
  • H4 ST

Logging[editar]

Punto A[editar]

Undo logging con checkpoint no-quiescente:

  1. <START T2>
  2. <T2, X, 0>
  3. <T2, Z, 0>
  4. <START CKPT(T2)>
  5. <START T3>
  6. <START T1>
  7. <T3, Z, 1>
  8. <T1, X, 1>
  9. <T1, Y, 0>
  10. <START T4>
  11. <T4, Y, 1>
  12. <T2, X, 2>
  13. <T2, Z, 2>
  14. <COMMIT T2>
  15. <END CKPT>
  16. <T1, X, 3>
  17. <COMMIT T1>
  18. <T3, Z, 3>
  19. <COMMIT T3>
  20. <T4, X, 4>
  21. <COMMIT T4>

El checkpoint se puede terminar cuando todas las transacciones terminan de alguna manera, en este caso solo esperamos a que commitee T2.

Punto B[editar]

  1. <START T2>
  2. <T2, X, 1>
  3. <T2, Z, 1>
  4. <START T3>
  5. <START T1>
  6. <T3, Z, 2>
  7. <T1, X, 2>
  8. <T1, Y, 1>
  9. <START T4>
  10. <T4, Y, 2>
  11. <T2, X, 3>
  12. <T2, Z, 3>
  13. <COMMIT T2>
  14. <T1, X, 4>
  15. <COMMIT T1>
  16. <T3, Z, 4>
  17. <COMMIT T3>
  18. <T4, X, 5>
  19. <COMMIT T4>

En mi cuatrimestre no vimos Redo-Quiescente, el que lo haya visto puede completar el checkpoint.

Punto C[editar]

  1. <START T2>
  2. <T2, X, 0, 1>
  3. <T2, Z, 0, 1>
  4. <START T3>
  5. <START T1>
  6. <T3, Z, 1, 2>
  7. <T1, X, 1, 2>
  8. <T1, Y, 0, 1>
  9. <START T4>
  10. <T4, Y, 1, 2>
  11. <T2, X, 2, 3>
  12. <T2, Z, 2, 3>
  13. <COMMIT T2>
  14. <T1, X, 3, 4>
  15. <COMMIT T1>
  16. <T3, Z, 3, 4>
  17. <COMMIT T3>
  18. <T4, X, 4, 5>
  19. <COMMIT T4>