Solución parte 2
Parte 2 (30%)
Considere el siguiente esquema relacional que caaptura alumnos, cursos, y la toma de cursos:
alumnos(rut, nombre, edad)
cursos(codigo, nombre, carrera)
toma(rut_alumno, codigo_curso)
-
(1.5 pts) Escriba una consulta en el álgebra relacional que entregue el nombre y edad de todos los alumnos que han tomado el curso llamado "Topología".
-
(3.0 pts) Escriba una consulta en el álgebra relacional que entregue el nombre de todos los alumnos que han tomado todos los cursos de la carrera "Informática".
-
Indique si las siguientes aserciones son verdaderas o falsas. Justifique sus razones:
- (a) (0.5 pts) Una expresión de la forma σC(σC(E)) es equivalente a σC ∧ C(E).
- (b) (0.5 pts) Una expresión de la forma πA(πA(E)) es equivalente a πA(E).
- (c) (1.0 pts) El resultado de una expresión σC1(E1 × E2), donde las condiciones no comparten atributos con E1 ni con E2, es equivalente a σC1(E1) × σC2(E2).
Solución
Pregunta 1
-
Seleccionar el curso "Topología":
Se filtra la relación cursos para obtener solo el curso llamado "Topología".
-
Unir con la relación de toma:
Se une la relación resultante con toma utilizando la condición que relaciona el código del curso: -
Unir con la relación de alumnos:
Se une el resultado con la relación alumnos utilizando la condición que relaciona el rut del alumno: -
Proyectar nombre y edad:
Finalmente, se extraen únicamente los atributos nombre y edad:
Consulta completa:
Pregunta 2
-
Obtener el conjunto de códigos de cursos de "Informática": Se filtra la relación cursos para obtener únicamente los cursos de la carrera "Informática" y se proyecta el código.
-
Obtener las inscripciones de alumnos en cursos de "Informática": Se unen toma y cursos filtrados por "Informática", para obtener la relación de alumnos y los cursos de esa carrera.
-
Aplicar el operador de división: Se seleccionan aquellos alumnos que han tomado todos los cursos de "Informática" realizando la división de la relación anterior por el conjunto de cursos:
En donde contendrá el atributo
rut_alumno
de aquellos alumnos que están inscritos en todos los cursos de "Informática". -
Obtener el nombre de los alumnos: Se unen la relación resultante con alumnos para proyectar únicamente el nombre.
Consulta completa en álgebra relacional:
Pregunta 3
(a) Verdadero. Aplicar la selección con la misma condición dos veces es redundante, ya que: Y, puesto que (C \land C) es lógicamente equivalente a (C), ambas expresiones son iguales.
(b) Verdadero. La operación de proyección es idempotente, lo que significa que aplicar la misma proyección repetidamente no altera el resultado:
(c) Falso.
La aserción enuncia una comparación entre: y
Sin embargo, en la expresión de la derecha se utiliza (C2) sin haberlo definido previamente. Esto genera ambigüedad en la condición que se aplica a (E2). Además, la propiedad de distribución de la selección sobre el producto cartesiano solo se cumple si la condición de selección se puede descomponer en dos condiciones independientes:
donde (C1) afecta únicamente a (E1) y (C2) únicamente a (E2).
Debido a que en la aserción original (C2) no está definido, la equivalencia no se cumple. Por ello, la aserción es falsa.