PUERTA | PUERTA-CS-2006 | Pregunta 68

Considere la relación “inscrito(estudiante, curso)” en la que (estudiante, curso) es la clave principal, y la relación “pagado(estudiante, cantidad)” donde estudiante es la clave principal. Suponga que no hay valores nulos ni claves foráneas ni restricciones de integridad. Dadas las siguientes cuatro consultas:

Query1: select student from enrolled where 
        student in (select student from paid)
Query2: select student from paid where 
        student in (select student from enrolled)
Query3: select E.student from enrolled E, paid P 
         where E.student = P.student
Query4:  select student from paid where exists
        (select * from enrolled where enrolled.student
         = paid.student) 

¿Cuál de las siguientes afirmaciones es correcta?
(A) Todas las consultas devuelven conjuntos de filas idénticos para cualquier base de datos
(B) Consulta2 y Consulta4 devuelven conjuntos de filas idénticos para todas las bases de datos, pero existen bases de datos para las que Consulta1 y Consulta2 devuelven conjuntos de filas diferentes.
(C) Existen bases de datos para las que Query3 devuelve estrictamente menos filas que Query2
(D) Existen bases de datos para las que Query4 encontrará una violación de integridad en tiempo de ejecución.

Respuesta: (B)
Explicación: Tome un ejemplo:

Table enrolled
student   course
----------------
 abc      c1   
 xyz      c1
 abc      c2
 pqr      c1

Table paid
student  amount
-----------------
 abc      20000
 xyz      10000
 rst      10000


Output of Query 1
 abc
 abc
 xyz

Output of Query 2
 abc
 xyz

Output of Query 3
 abc
 xyz

Output of Query 4
 abc
 xyz

La consulta 1 y la consulta 3 pueden devolver valores de estudiante repetitivos, ya que «estudiante» no es una clave en relación con la inscripción; sin embargo, la consulta 2 y la consulta 4 siempre devuelven los mismos conjuntos de filas.

Entonces, la opción (B) es correcta.
Cuestionario de esta pregunta

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 *