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).
               (
geocities.com/ar)