PUERTA | PUERTA-CS-2009 | Pregunta 55

Considere el siguiente esquema relacional:

Suppliers(sid:integer, sname:string, city:string, street:string)
Parts(pid:integer, pname:string, color:string)
Catalog(sid:integer, pid:integer, cost:real)

Considere la siguiente consulta relacional en la base de datos anterior:

SELECT S.sname
    FROM Suppliers S
        WHERE S.sid NOT IN (SELECT C.sid
                            FROM Catalog C
                            WHERE C.pid NOT IN (SELECT P.pid  
                                                FROM Parts P
                                                WHERE P.color<> 'blue'))

Suponga que las relaciones correspondientes al esquema anterior no están vacías. ¿Cuál de las siguientes es la interpretación correcta de la consulta anterior?
(A) Busque los nombres de todos los proveedores que hayan suministrado una pieza que no sea azul.
(B) Encuentre los nombres de todos los proveedores que no hayan suministrado una pieza que no sea azul.
(C) Encuentre los nombres de todos los proveedores que han suministrado solo piezas azules.
(D) Encuentre los nombres de todos los proveedores que no han suministrado solo piezas azules.

Respuesta: (D)
Explicación: Ninguna opción coincide porque la consulta dada devuelve proveedores que no han suministrado ninguna pieza azul . Eso significa que puede incluir otras partes además de las azules.

(A): Falso, ya que esto puede incluir partes azules y no incluir partes «nulas».

(B): Obviamente falso porque no regresa ninguna parte azul.

(C): Obviamente falso porque no devuelve esto.

(D): Correcto. Intente aquí: http://sqlfiddle.com/#!9/9ae12d/1/0

Esta explicación es aportada por Archit Garg .
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 *