Final del 06/03/14 (Bases de Datos)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

Preguntas[editar]

Se aprueba con 14.5 de 23.5 puntos

  1. T1 efectúa lectura sucia sobre un valor de T2. Luego se hace rollback de T2 y la Base de Datos fuerza rollback de T1. ¿Qué propiedad de las transacciones se aplicó para forzar rollback de T1? (2 puntos)
  2. T1: {R1(A),W1(A),R1(B),W1(B)} T2: {R2(A),W2(A)}. Dar H serial y una serializable (Que no sea serial) (2 puntos)
  3. Explique problema de actualización perdida. ¿Cómo resuelve este problema el lockeo binario? (2 puntos)
  4. ¿Cuándo dos conjuntos de dependencias funcionales son equivalentes? (1 punto)
  5. Sea la relación R: {codigoDepto,nroAmbiente,codigoBarrio,descripcionBarrio,largoAmbiente,anchoAmbiente} Dar una dependencia funcional transitiva, una parcial, una total. Indicar cuál es la clave de la relación. (3 puntos)
  6. Defina la operación de project de álgebra relacional. ¿Cómo se traduce en un SQL esta operación? (1.5 puntos)
  7. Mencione dos componentes del DBMS y explique su funcionamiento. (2 puntos)
  8. Mencione y ejemplifique dos heurísticas que utiliza el optimizador de consultas. (2 puntos)
  9. Mencione dos permisos existentes sobre los usuarios de una Base de Datos. (1 punto)
  10. Se tiene Base de Datos con update diferido. Muestre gráfico en qué situación tenía que estar T2 para que el DBMS tuviera que hacer redo. (2 puntos)
  11. Indique tres datos referidos a las tablas se guarda en el System Catalog. (1.5 puntos)
  12. Mencione algoritmo de aprendizaje supervisado y explique brevemente su objetivo. (2 puntos)
  13. Indique tres usos que la Base de Datos le da al System Catalog (1.5 puntos)

Respuestas[editar]

  1.  Isolation.
  2. Serial vs Serializable:
    • Serial: {R1(A),W1(A),R1(B),W1(B),R2(A),W2(A)}
    • Serializable: {R1(A),W1(A),R1(B),R2(A),W1(B),W2(A)}
  3. El problema del lost update ocurre cuando una transacción lee un valor (por ejemplo para incrementarlo en uno) y antes de que pueda escribirlo, otra transacción lo modifica. La primer transacción, sin darse cuenta que el valor cambió, le escribe el valor nuevo, "sobreescribiendo" lo escrito por la segunda transacción. El lockeo binario impide que dos transacciones accedan al mismo objeto en una tabla al mismo momento. Luego, si la primer transacción pide un lock del objeto, la segunda no tiene la posibilidad de leerlo y sobreescribirlo hasta que la primera termine (satisfactoriamente o no) y libere el lock.
  4.  Cuando sus clausuras transitivas son el mismo conjunto. Equivalentemente, cuando ambas se fuerzan mutuamente.
  5. {codigoDepto,nroAmbiente,codigoBarrio,descripcionBarrio,largoAmbiente,anchoAmbiente}
    • Transitiva: codigoDepto => codigoBarrio => descripcionBarrio
    • Parcial: nroAmbiente,codigoBarrio => descripcionBarrio
    • Total: codigoBarrio => descripcionBarrio
    • Clave: codigoDepto
  6. La operación de proyección de álgebra relacional permite filtrar atributos de interés de una relación. Por ejemplo π(edad) ({codEmpleado, nombre, apellido, edad}) contiene el conjunto de todas las edades SIN REPETIR. Se traduce como un select, aunque este si admite repetidos. O sea se traduce en realidad como un SELECT DISTINCT.
  7. Dos partes:
    • El optimizador de consultas es el encargado de recibir una query en lenguaje SQL y armar un plan de ejecución eficiente (aunque no necesariamente el más eficiente) para obtener los datos requeridos. Para eso utiliza el catalog.
    • El recovery manager es el encargado de restaurar la base de datos a un estado consistente en caso de falla. Para eso utiliza el log.
  8. Dos heurísticas que usa el optimizador de consultas:
    • Bajar las selecciones lo más cerca de las hojas posible: de esta forma se reduce la cantidad de tuplas a reescribir a archivos intermedios (particularmente problemático a la hora de hacer joins o productos cartesianos)
    • Evitar los productos cartesianos: para eso se reemplazan los productos cartesianos seguidos de selecciones por joins.
  9. Permisos de usuarios:
    • DROP: permite al usuario dropear tablas.
    • CREATE: permite al usuario crear tablas
  10. Para que una transacción tenga que se re-hecha, debe haber hecho commit antes del end checkpoint:
    • <StartCKPT>
    • <T1, A, 10>
    • <Commit T1>
    • CRASSSSSHHHHHHHHH
  11. Se guardan
    • Esquema de la tabla.
    • Selectividad aproximada de los atributos.
    • Permisos de la tabla
  12. Un algoritmo de aprendizaje supervisado es un algoritmo de machine learning que utiliza un set de entrenamiento etiquetado (pares <entrada, respuesta>) con el objetivo de inferir una función que se usa posteriormente para predecir el resultado de entradas no conocidas a priori. Ejemplo: árboles de decisión. (Los nodos internos son preguntas sobre los atributos, las hojas representan las etiquetas o clases resultantes)
  13. Usos del system catalog:
    • Obtener el esquema de una tabla a la hora de verificar una query.
    • Obtener la selectividad esperada de un atributo a la hora de optimizar una query.
    • Obtener una vista para resolverla si esta es usada en una query.
    • Obtener los permisos de un usuario a la hora de verificar un acceso.