Primer parcial Sistemas deDatos II    --- 7 de mayo de 2003

1. Explique qué se hace durante la etapa de validación de una consulta.
  Se comprueba que todos los nombres de atributos y de relaciones sean
  válidos y tengan sentido desde el punto de vista semántico.

2. Explique lo que significa la *selectividad* de una condición.
  Es la razón entre la cantidad de tuplas que satisfacen la condición
  y la cantidad total de tuplas de la relación.

3. Explique qué es una reunión multidireccional.
  Es una reunión donde intervienen más de dos archivos.

4. Explique cómo trabaja el método de dispersión-reunión (R4) en la
  implementación de la operación REUNIÓN.  Enumere los casos (las
  condiciones que deben cumplir los atributos, los tipos de
  comparaciones, existencia de índices, dispersiones, etc.) en los
  cuales se puede aplicar.

5. En la implementación de la operación PROYECTAR, puede darse que la
  lista de atributos de la proyección contenga una clave de la
  relación proyectada.  Indique qué consecuencia tiene esto para la
  relación resultado de la proyección.
  La relación resultado tiene la misma cantidad de tuplas que la
  relación original.

6. ¿Porqué se utilizan *combinaciones de operaciones* para ejecutar las
  consultas, en lugar de usar operaciones simples encadenadas?
  Una consulta del álgebra relacional involucra en general varias
  operaciones.  Si usamos operaciones individuales, se necesitará el
  emlpeo de archivos temporales entre operación y operación.  La
  generación, almacenamiento y posterior lectura de un archivo
  temporal grande en disco consume mucho tiempo.  En las operaciones
  combinadas, las tuplas resultado de la selección sobre dos archivos
  originales, se pasan a la reunión, por ejemplo, y las resultantes de
  la reunión se pasan a la proyección para dar el resultado final

7. Indique si usaría el árbol de consulta canónico estándar para
  ejecutarlo directamente.  ¿Porqué sí o porqué no?

8. Porqué se dice que el grafo de consulta es una representación canónica 
  de una consulta seleccionar-proyectar-reunir del cálculo relacional?

  Cada consulta corresponde a uno y sólo un grafo de consulta.

9. El proceso de optimización de consultas ocupa un cierto tiempo.  En 
  las consultas compiladas y en las interpretadas ese tiempo influye de 
  diferente manera.  Cuándo utilizaría optimizaciones elaboradas? Y las 
  optimizaciones parciales? Explique su elección.

  En las compiladas usaría una optimización más elaborada, y en las 
  interpretadas una optimización parcial.  Una optimización elaborada 
  lleva más tiempo, y eso perjudica el tiempo de respuesta de la 
  consulta interpretada.

10. Enumere dos de los componentes del costo de ejecución de una consulta.

  - Costo de acceso al almacenamiento secundario: buscar y leer bloques 
    de disco.
  - Costo de almacenamiento: archivos intermedios.
  - Costo de cómputo: operaciones sobre los datos en el búfer intermedio 
    (buscar registros, cálculos con valores y campos, combinaciones de 
    registros para reunión...)
  - Costo de comunicación: consulta y resultados viajan desde la base 
    de datos  hasta la terminal

11. Defina que es una transacción cualquiera.
  Es la ejecución de un programa que lee o modifica el contenido de la 
  base de datos.

12. El control de concurrencia evita problemas de inconsistencia en la 
  base de datos cuando hay más de una transacción ejecutándose 
  concurrentemente.  Identifique al menos un problema que puede ocurrir 
  si no hay control de concurrencia.

  - actualización perdida: T1 y T2 leen un X, luego cada una lo modifica 
                           y cuando lo graba, sólo persiste el valor que 
                           la última grabó.
  - actualización temporal (lectura sucia): T1 actualiza X y luego 
                           falla; antes del fallo y después de la 
                           actualización T2 lee X y sigue su trabajo; T2 
                           tiene un valor sucio de X. 
  - resumen incorrecto:    T1 calcula una función de agregación y T2 le 
                           cambia los valores a algunos de los registros 
                           (en algunos suma y en otros resta), entonces 
                           al final T1 puede calcular un total erróneo. 
  - lectura no repetible:  T1 lee X dos veces, pero entre ambas lecturas 
                           T2 modifica X.

13. Para qué sirven las técnicas de control de concurrencia?
  Para garantizar la no interferencia o el aislamiento de transacciones 
  que se ejecutan de manera concurrente.

14. Qué es la granularidad de un elemento de datos?
  La porción de la base de datos que representa un elemento de datos.  
  Puede ser un registro, una tabla, un bloque en disco.

15. Describa el concepto de candado.
  Es una variable asociada a un elemento de información de la base de 
  datos y describe el estado de ese elemento respecto a las posibles 
  operaciones que se pueden aplicar en él.

16. Cuando se siguen las reglas en un sistema de candados binarios o 
  múltiples, eso no garantiza la seriabilidad de los planes para las 
  transacciones participantes.  Qué protocolo adicional se debe agregar?
  El protocolo de bloqueo de dos fases.

17. Describa la variante del protocolo de dos fases (B2F) conocida como 
  B2F conservador/estático.
  Una T debe bloquear TODOS los elementos a los cuales tendrá acceso 
  ANTES de comenzar a ejecutarse, predeclarando sus conjuntos de lectura 
  y escritura.  Si no es posible bloquear algún elemento, entonces no 
  bloqueará ninguno y esperará hasta que todos estén disponibles.
  
18. Qué garantiza el B2F estricto?
  Que los planes serán estrictos.

19. Describa la situación denominada bloqueo mortal.
  Una T1 solicita un bloqueo que no le puede ser concedido porque T2 ya 
  lo tiene.  A su vez T2 solicita un bloqueo sobre un elemento de datos 
  que T1 tiene bloqueado.  Puede haber más de una T involucrada.

20. Qué diferencia a la espera indefinida de la inanición?
  La espera indefinida es debida a las esperas para conseguir los 
  candados; la inanición es debida al algoritmo de resolución de bloqueo 
  mortal, que siempre elige como víctima a la misma T (y sufre entonces 
  de inanición).

    Source: geocities.com/ar/uap_sd2

               ( geocities.com/ar)