Final del 13/09/13 (Bases de Datos)

De Cuba-Wiki

Preguntas

  1. ¿Que es la seguridad integrada de una BD?
  2. ¿Que es DDL? De un ejemplo de una instrucción SQL de este grupo
  3. Muestre dos usos que el compilador DDL le da al system catalog
  4. De dos similitudes y dos diferencias entre lockeo binario y shared lock
  5. De dos similitudes y dos diferencias entre lockeo pesimista y optimista
  6. T1 commiteo, T2 solo leyo, T3 escribio pero no llego a commitear. ¿Que hay que hacer con c/u (undo, redo o nada)?
  7. ¿Para que le sirve a un DBA conocer la cantidad inicial de registros de una tabla?
  8. ¿Que es data mining? Dar dos aplicaciones de estas técnicas
  9. Demostrar que X --> Y <=> Y es subconjunto de X+
  10. Dar dos propiedades algebraicas sobre la selección que sirvan en la optimización
  11. Nombre las 4 operaciones básicas de las transacciones
  12. ¿Que es una relación en el contexto de la teoría relacional? Ejemplifique.
  13. ¿Que es un cubrimiento minimal de un conjunto de dependencias? ¿Que utilidad tiene?


Respuestas

  1. La seguridad integrada de una base de datos es el control de acceso a las datos y a la manipulacion de los objetos. Entre ellos se encuentran poder leer, poder escribir en una tabla, poder crear tablas, poder eliminar tablas, poder crear claves y triggers, poder agregar permisos a usuarios.
  2. DDL es Data Definition Language. Es el lenguaje que entiende un motor de bases de datos para poder crear y modificar objetos como tablas y vistas. Una instruccion tipica seria seria CREATE TABLE usuarios(id INTEGER, username VARCHAR(30) );
  3. Lock binario es cuando se tiene o no se tiene un lock, y excluye a todos los que no lo tienen. Lock compartido es cuando varios procesos pueden tener lockeado un recurso todos como shared para leer, hasta que alguno lo lockee para escribir, de manera exclusiva. Son similares a la hora de escribir, porque ambos tienen que tener el lock exclusivo. Son distintos a la hora de leer, donde permiten lecturas concurrentes los shared y no los binarios. Los locks binarios se comportan como mutex y los shared se comportan como como semaforos que tienen que vaciarse antes de lockear permanente para las escrituras.
  4. Lock pesimista es el lock que se adquiere antes de leer si uno quiere escribir en esa variable. Lock optimista es cuando el sistema mantiene una copia del dato que leyo cada proceso y cuando uno va a escribir, si cambió el dato desde el momento que se leyo, se aborta la transaccion y se rollbackea para que se empieze de nuevo. Si no hay concurrencia en la tabla es mas eficiente el optimista ya que no hace locks. Si hay mucha concurrencia, entonces habra muchos rollbacks, ocasionando molestias a los operadores y mucho delay de hacer y rehacer inutilmente.
  5. Si un DBA conoce de antemano la cantidad inicial de registros, puede suponer mejores estrategias para guardar y cachear. Puede elegir como conviene guardar los indices, en que shard de la base de datos enviarlo.
  6. Data Mining es la rama de la computacion que investiga la extraccion de informacion en base a grandes fuentes de datos y busca hacer modelos predictivos de los próximos datos. Por ejemplo, si uno tiene el registro de todos los accesos de la tarjeta SUBE, se podrian conseguir los puntos mas criticos donde sube mas gente a los transportes y optimizar en funcion de ello los servicios y las frecuencias. Tambien se podrian conseguir cuales son los caminos mas transitados, las horas pico, la sub o sobre facturacion de los distintos viajes.
  7. Ida: X-->Y, esto implica que X+ contiene, al menos, a todos los elementos Z_i tal que exista la X->Z_i, en particular, Y=Z_j, para algun j. Vuelta: Y es subconjunto de X+, Como Y es subconjunto de X+, entonces todo elemento de Y pertenece a X+, luego como X+ es hacer la clausura transitiva de X sucesivamente, entonces todo elemento de Y esta en la clausura de X, luego X-->Y
  8. PI(sigma(X)) = sigma(PI(X)).
  9. START CHECKPOINT COMMIT ROLLBACK
  10. Un cubrimiento minimal del conjunto de dependencias se refiere a eliminar la redundacia de las dependencias funcionales. Es la minima cantidad de dependencias que se puede tener tal que en la clausura de ellas se puedan obtener todos los atributos. Sirve para poder normalizar las tablas facilmente, definiendo las minimas dependencias necesarias que permite obtener la informacion de las tablas sin caer en conflictos.