Final del 13/09/13 (Bases de Datos)
De Cuba-Wiki
Preguntas
- ¿Que es la seguridad integrada de una BD?
- ¿Que es DDL? De un ejemplo de una instrucción SQL de este grupo
- Muestre dos usos que el compilador DDL le da al system catalog
- De dos similitudes y dos diferencias entre lockeo binario y shared lock
- De dos similitudes y dos diferencias entre lockeo pesimista y optimista
- T1 commiteo, T2 solo leyo, T3 escribio pero no llego a commitear. ¿Que hay que hacer con c/u (undo, redo o nada)?
- ¿Para que le sirve a un DBA conocer la cantidad inicial de registros de una tabla?
- ¿Que es data mining? Dar dos aplicaciones de estas técnicas
- Demostrar que X --> Y <=> Y es subconjunto de X+
- Dar dos propiedades algebraicas sobre la selección que sirvan en la optimización
- Nombre las 4 operaciones básicas de las transacciones
- ¿Que es una relación en el contexto de la teoría relacional? Ejemplifique.
- ¿Que es un cubrimiento minimal de un conjunto de dependencias? ¿Que utilidad tiene?
Respuestas
- La seguridad integrada es la delegación de la autenticación a la base de datos al sistema operativo.
- 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) );
- El compilador de DDL usa el system catalog para chequear permisos (si el usuario puede modificar ese objeto) y para chequear correctitud (que las claves referenciadas existan, por ej.).
- 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.
- 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.
- Con T2 no se hace nada en ningun caso. Como T1 se commiteo, entonces son los datos que se guardan. T3 entonces tiene que hacer undo (si se usa esa politica) o nada (si se usa redo).
- 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.
- 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.
- 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
- PI(sigma(X)) = sigma(PI(X)). sigma_z(sigma_y(X)) = sigma_(z^y)(x)
- Read(x), Write(x), Commit, Abort.
- Es un subconjunto del producto cartesiano de una lista de dominios. Por ejemplo, Int X Char[20] X date (ID-Nombre-Cumpleaños)
- Un cubrimiento minimal del conjunto de dependencias enuncia las siguientes propiedades. 1) Todo lado derecho de las dependencias tiene un unico atributo (regla de descomposicion) 2) Todo lado izquierdo es reducido. (no tiene atributos redundantes) 3) No contiene dependencias funcionales redundantes (que se obtengan derivando de los axiomas y por transitividad). El cubrimiento minimal sirve para poder descomponer las tablas en 3FN y FNBC.