Sistemas de gestión de bases de datos | Serie 1

Se han hecho las siguientes preguntas en el examen GATE CS. 

1. Dadas las relaciones 

empleado (nombre, salario, deptno)
departamento (deptno, deptname, dirección) 

¿Cuál de las siguientes consultas no se puede expresar usando las 
operaciones básicas del álgebra relacional (U, -, x, π, σ, p)? (GATE CS 2000) 
(a) Dirección del departamento de cada empleado 
(b) Empleados cuyo nombre es el mismo que el nombre de su departamento 
(c) La suma de los salarios de todos los empleados 
(d) Todos los empleados de un departamento determinado 

Respuesta: (c) 

Explicación: 
Los seis operadores básicos del álgebra relacional son la selección (σ), la proyección (π), el producto cartesiano (x) (también llamado producto cruzado o unión cruzada), la unión de conjuntos (U), la diferencia de conjuntos ( -), y el cambio de nombre (p). Estos seis operadores son fundamentales en el sentido de que ninguno de ellos puede omitirse sin perder poder expresivo. Muchos otros operadores se han definido en términos de estos seis. Entre las más importantes se encuentran la intersección de conjuntos, la división y la unión natural, pero la agregación no es posible con estas operaciones básicas del álgebra relacional. Por lo tanto, no podemos ejecutar la suma de los salarios de todos los empleados con las seis operaciones. 

Referencias:  
http://en.wikipedia.org/wiki/Relational_algebra  
http://faculty.ksu.edu.sa/zitouni/203%20Haseb%20%20Lecture%20Notes/Relional%20Algebra.pdf 

2. Dada la siguiente instancia de relación. 
 

x  y  z
1  4  2
1  5  3
1  6  3
3  2  2 

¿Cuál de las siguientes dependencias funcionales satisface la instancia? (GATE CS 2000) 
(a) XY -> Z y Z -> Y 
(b) YZ -> X e Y -> Z 
(c) YZ -> X y X -> Z 
(d) XZ -> Y e Y -> X 

Respuesta: (b) 

Explicación: 
una dependencia funcional (FD) es una restricción entre dos conjuntos de atributos en una relación de una base de datos. Un FD X->Y requiere que el valor de X determine de forma única el valor de Y donde X e Y son un conjunto de atributos. FD es una generalización de la noción de clave. 

Dado que X, Y y Z son conjuntos de atributos en una relación R, se pueden derivar varias propiedades de las dependencias funcionales. Entre los más importantes se encuentran los axiomas de Armstrong, que se utilizan en la normalización de bases de datos: 
 

    
* Subset Property (Axiom of Reflexivity): If Y is a subset of X, then X ? Y
* Augmentation (Axiom of Augmentation): If X -> Y, then XZ -> YZ
* Transitivity (Axiom of Transitivity): If X -> Y and Y -> Z, then X -> Z

De estas reglas, podemos derivar estas reglas secundarias: 
 

    
* Union: If X -> Y and X -> Z, then X -> YZ
* Decomposition: If X -> YZ, then X -> Y and X -> Z
* Pseudotransitivity: If X -> Y and YZ -> W, then XZ -> W

En la pregunta anterior, Y determina de forma única X y Z, para un valor dado de Y puede encontrar fácilmente los valores de X y Z. 
Entonces, Y -> X e Y -> Z se mantienen para el esquema anterior. 
De la regla de aumento podemos decir YZ->X. Si entendemos la noción de FD, no necesitamos aplicar axiomas para averiguar qué opción es verdadera, simplemente observando el esquema y las opciones podemos decir que (b) es verdadera. 

Referencias:  
http://www.cse.iitb.ac.in/~sudarsha/db-book/slide-dir/ch7.pdf  
http://en.wikipedia.org/wiki/Functional_dependency 

3. Dadas las relaciones r(w, x) y s(y, z), se garantiza que el resultado de 
seleccionar distintos w, x 
de r, s sea el mismo que r, siempre que (GATE CS 2000) (a) r no tenga duplicados y s no está vacío  (b) r y s no tienen duplicados  (c) s no tiene duplicados y r no está vacío  (d) r y s tienen el mismo número de tuplas  
 

Respuesta: (a) 

Explicación: 
la consulta selecciona todos los atributos de r. Como tenemos una consulta distinta, el resultado puede ser igual a r solo si r no tiene duplicados. 

Si no proporcionamos ningún atributo en el que queremos unir dos tablas, entonces las consultas como las anteriores se vuelven equivalentes al producto cartesiano . El producto cartesiano de dos conjuntos estará vacío si alguno de los dos conjuntos está vacío. Entonces, s debería tener al menos un registro para obtener todas las filas de r. 

4. En SQL, las relaciones pueden contener valores nulos y las comparaciones con valores nulos se tratan como desconocidas. Suponga que todas las comparaciones con un valor nulo se tratan como falsas. ¿Cuál de los 
siguientes pares no es equivalente? (GATE CS 2000) 
(a) x = 5, no (no (x = 5) 
(b) x = 5, x > 4 y x < 6, donde x es un número entero 
(c) x < 5, no (x = 5) 
(d) Ninguna de las anteriores 

Respuesta (c) 

Explicación: 
No necesita mucha explicación. Para todos los valores menores que 5, x < 5 siempre será verdadero pero x = 5 será falso. 

5. Considere un esquema R(A, B, C, D) y dependencias funcionales A -> B y C -> D. Entonces la descomposición de R en R1 (A, B) y R2(C, D) es (GATE CS 2001) 
a) preservación de la dependencia y combinación sin pérdida 
b) combinación sin pérdida pero sin preservación de la dependencia 
c) preservación de la dependencia pero no combinación con pérdida menos 
d) sin preservación de la dependencia y sin combinación sin pérdida 

Respuesta: (c) 

Explicación:  
Descomposición que preserva la dependencia: La 
descomposición de R en R1 y R2 es una descomposición que preserva la dependencia si el cierre de las dependencias funcionales después de la descomposición es igual que el cierre de los FD antes de la descomposición. 
Una forma simple es comprobar si podemos derivar todos los FD originales de los FD presentes después de la descomposición. 

En la pregunta anterior, R(A, B, C, D) se descompone en R1 (A, B) y R2(C, D) y solo hay dos FD A -> B y C -> D. Entonces, la descomposición es la preservación de la dependencia 

Descomposición de combinación sin pérdidas : 
la descomposición de R en R1 y R2 es una descomposición de combinación sin pérdidas si al menos una de las siguientes dependencias funcionales está en F+ (Cierre de dependencias funcionales) 
 

    R1 ∩ R2 → R1
   OR
    R1 ∩ R2 → R2

En la pregunta anterior, R(A, B, C, D) se descompone en R1 (A, B) y R2(C, D), y R1 ∩ R2 está vacío. Entonces, la descomposición no es sin pérdidas. 

Referencias:  
http://www.cs.sfu.ca/CC/354/han/materia/notes/354notes-chapter6/node1.html 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *