Edición de «Final del 26/12/13 (Bases de Datos)»
De Cuba-Wiki
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
==De un ejemplo que involucre mas de una instruccion SQL donde sea necesario utilizar una transacción. (1 punto)== | |||
SELECT saldo FROM cuenta WHERE userId = 3141592653; //s_pi | |||
= | //Sacar 30 pé de la cuenta | ||
UPDATE cuenta SET saldo=/*s-pi-30*/ WHERE userId = 3141592653; | |||
==Describa detalladamente dos pruebas que haria sobre un sistema para comprobar detalladamente el funcionamiento del lockeo. (2 puntos)== | |||
==Definicion de forma normal de Boyce Codd. (1 punto)== | |||
Un esquema R está en forma normal de Boyce Codd si para toda dependencia funcional no trivial X->A vale que X es una superclave de R. | |||
==Definicion de dependencia funcional parcial. De un ejemplo. (1 punto)== | |||
Una dependencia funcional es una restricción semántica entre conjuntos de atributos. En una tabla existe la dependencia funcional A->B si cada vez que A[x] == A[y] necesariamente vale que B[x] == B[y]. | |||
Una dependencia funcional X->Y es parcial si existe un subconjunto C de X tal que {X\C}->Y sigue valiendo. | |||
Ej: {codEmpleado,nombre}->{apellido} | |||
==Definir clave foranea. ¿Qué operaciones de SQL controlan esta restriccion? (2 puntos)== | |||
Una clave foránea es una restricción que aplica a un atributo de una relación que establece que el valor de ese atributo debe referenciar una columna (o conjunto de columnas) de otra tabla. | |||
Esta restricción es tomada en cuenta para las operaciones INSERT y UPDATE. Para modificarla se utiliza ALTER y CREATE. | |||
==¿Cual es la diferencia entre una agregación y una relacion ternaria? (2 puntos)== | |||
En una relacion ternaria las tres entidades tienen que ser partícipes. | |||
En una agregación una de las entidades puede no participar. | |||
==¿Cuando un indice se llama secundario? (1 punto)== | |||
Segun el Elmasri, cuando el índice no tiene el mismo órden que la tabla. | |||
Según el apunte de optimización de la materia cuando en las hojas del índice contiene sólo los ids correspondientes y un puntero al valor/bucket. | |||
==¿Como pueden utilizarse los stored procedures para aumentar la seguridad de una base de datos? ¿Por que? (2 puntos)== | |||
Se pueden utilizar para restringir las operaciones de los usuarios a aquellas que el DBA considera son adecuadas para los | |||
usuarios. Por ejemplo, no proveer acceso de bajo nivel sino más bien dar operaciones semánticas como "transferir dinero" o | |||
"consultar balance". Esto se puede combinar con la cláusula GRANT de SQL para determinar los permisos sobre la base. | |||
==¿Cual es la diferencia entre Commit y Checkpoint? (1.5 puntos)== | |||
Commit es para una transacción, Checkpoint es general para toda la base de datos. Commit indica que la transacción ha tenido | |||
éxito y las operaciones debieran ser bajadas a disco. Checkpoint es un punto de control de manera que en caso de tener que restaurar la base de datos desde el log no se tenga que restaurar. | |||
==Detalle el uso que le da el DBMS al System Catalog en el momento de hacer un insert en una tabla. (2 puntos)== | |||
Revisa que los tipos de datos provistos para el insert matcheen con la estructura de la tabla definida en el system catalog. Además valida todos los constrains de la tabla (también almacenados en el catalog) tales como UNIQUE, FOREIGN KEY. Además se ven los índices presentes y los permisos del usuario. | |||
==¿Cuales son las formas clasicas que tienen los modelos de DW? (2 puntos)== | |||
* Snowflake. | |||
* Star. | |||
==¿Que es una dimension en el modelo de un DW? (2 puntos)== | |||
Una dimensión es una colección de miembros o unidades o individuos del mismo tipo. Cada punto de entrada de la tabla de HECHOS está conectado a una DIMENSION. Determinan el contexto de los HECHOS. Informalmente, representan los ángulos desde los que puedo observar (tiempo, ubicación, etc). | |||
==Mencione y explique dos parametros que necesita conocer el DBA sobre una tabla a la hora de crearla. (1 punto)== | |||
* Los atributos (con sus respectivos tipos de datos). | |||
* Sus restricciones (foreign keys, valores uniques, etc). | |||
==¿Cuales son los niveles de aislamiento de SQL? ¿Qué problema de control de concurrencia resuelve cada uno? (2 puntos)== | |||
{|class="wikitable" | {|class="wikitable" | ||
! Isolation level !! Dirty reads !! Non-repeatable reads !! Phantoms | ! Isolation level !! Dirty reads !! Non-repeatable reads !! Phantoms | ||
Línea 55: | Línea 71: | ||
| Serializable || - || - || - | | Serializable || - || - || - | ||
|} | |} | ||
==¿Qué es una descomposicion de una relacion? ¿Cuando es la misma sin pérdidas de dependencias funcionales? (2 puntos)== | |||
Una descomposición de una relación <math>R = { A_1, A_2, \dots , A_n }</math> consiste en <math>k</math> relaciones <math>R_1, R_2, \dots, R_k</math> tales que la unión de todos los atributos | |||
de las mismas contiene todos los atributos de la relación original R. La descomposición se dice sin pérdida de dependencias funcionales (SPDF) | de las mismas contiene todos los atributos de la relación original R. La descomposición se dice sin pérdida de dependencias funcionales (SPDF) | ||
si la clausura de la unión de las proyecciones de las dependencias funcionales en la descomposición contiene todas las DF originales. | si la clausura de la unión de las proyecciones de las dependencias funcionales en la descomposición contiene todas las DF originales. | ||
Línea 66: | Línea 83: | ||
</math> | </math> | ||
</center> | </center> | ||
Con <math>F_i = \pi_{R_i}(F)</math | Con <math>F_i = \pi_{R_i}(F)</math> | ||
==¿Cual es el costo de acceder por igualdad en una consulta si se tiene un indice B+ Clustered que aplica al criterio de busqueda? Expliquelo. (2 puntos)== | |||
El costo es la altura del árbol, para poder conseguir el bloque donde empiezan los datos usando el índice, más techo de la cantidad de tuplas con ese valor divido el factor de bloqueo, para leer todas las tuplas que tienen ese valor y encontrar cual es (porque el índice es clustered entonces varios pueden cumplir con el criterio de búsqueda). | |||