Sistemas de gestión de bases de datos | conjunto 2

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

1) ¿Cuáles de las siguientes afirmaciones son VERDADERAS acerca de una consulta SQL?  
P: Una consulta SQL puede contener una cláusula HAVING incluso si no tiene una cláusula GROUP BY 
P: Una consulta SQL puede contener una cláusula HAVING solo si tiene una cláusula GROUP BY 
R: Todos los atributos utilizados en la cláusula GROUP BY deben aparecer en la cláusula SELECT 
S: No todos los atributos utilizados en la cláusula GROUP BY deben aparecer en la cláusula SELECT 
(A) P y R 
(B) P y S 
(C) Q y R 
(D) Q y S 

Respuesta (C) 
Según el SQL estándar, la respuesta debe ser la opción (C), que es la clave de respuesta dada por la autoridad GATE. 

Si hablamos de diferentes implementaciones de SQL como MySQL, entonces la opción (B) también es correcta. Pero en cuestión, parecen estar hablando de SQL estándar, no de implementación. Por ejemplo a continuación hay un 

P es correcta en la mayoría de las implementaciones. La cláusula HAVING también se puede usar con la función agregada. Si usamos una cláusula HAVING sin una cláusula GROUP BY, la condición HAVING se aplica a todas las filas que satisfacen la condición de búsqueda. En otras palabras, todas las filas que cumplen la condición de búsqueda forman un solo grupo. Vea esto para más detalles. 

S es correcto. Para verificar S, intente seguir las consultas en SQL. 
 

CREATE TABLE temp 
  ( 
     id   INT, 
     name VARCHAR(100) 
  ); 

INSERT INTO temp VALUES (1, "abc"); 
INSERT INTO temp VALUES (2, "abc"); 
INSERT INTO temp VALUES (3, "bcd"); 
INSERT INTO temp VALUES (4, "cde"); 

SELECT Count(*) 
FROM   temp 
GROUP  BY name; 

Producción: 

count(*)
--------
2
1
1

Manera alternativa – 

La declaración (P) «Una consulta SQL puede contener una cláusula HAVING incluso si no tiene una cláusula GROUP BY» es correcta porque la cláusula Have se aplica después de la fase de agregación y debe usarse si desea filtrar los resultados agregados y Have no. No requiere la cláusula Group By. Una cláusula HAVING sin una cláusula GROUP BY es una sintaxis válida y (posiblemente) útil en SQL estándar. Considere este ejemplo, que es SQL estándar válido: 
 

 SELECT 'T' AS result
   FROM Book
 HAVING MIN(NumberOfPages) < MAX(NumberOfPages);

La declaración (S) «No todos los atributos usados ​​en la cláusula GROUP BY deben aparecer en la cláusula SELECT» es correcta, pero si usamos la cláusula Group By, hay limitaciones sobre lo que podemos poner en la cláusula Select. 

2) Dados los modelos relacionales y de ER básicos, ¿cuál de los siguientes es INCORRECTO?  
(A) Un atributo de una entidad puede tener más de un valor 
(B) Un atributo de una entidad puede ser compuesto 
(C) En una fila de una tabla relacional, un atributo puede tener más de un valor 
(D) En una fila de una tabla relacional, un atributo puede tener exactamente un valor o un valor NULL 

Respuesta (C) 
El término ‘entidad’ pertenece al modelo ER y el término ‘tabla relacional’ pertenece al modelo relacional. 
A y B son verdaderas. El modelo ER admite atributos multivaluados y compuestos. Consulte esto para obtener más detalles. 
(C) es falsa y (D) es verdadera. En el modelo de relación, una entrada en la tabla relacional puede tener exactamente un valor o un valor NULL. 

3) Supongamos que ( A , B) y ( C , D) son dos esquemas de relación. Sean r1 y r2 las instancias correspondientes de la relación. B es una clave foránea que hace referencia a C en r2. Si los datos en r1 y r2 satisfacen las restricciones de integridad referencial, ¿cuál de las siguientes es SIEMPRE VERDADERA? 
 

Respuesta (A) 
B es una clave externa en r1 que se refiere a C en r2. r1 y r2 satisfacen las restricciones de integridad referencial. Entonces, cada valor que existe en la columna B de r1 también debe existir en la columna C de r2. 

4) ¿Cuál de las siguientes es VERDADERA?  
(A) Cada relación en 2NF también está en FNBC 
(B) Una relación R está en 3NF si cada atributo no primo de R depende funcionalmente de cada clave de R 
(C) Cada relación en FNBC también está en 3FN 
(D ) Ninguna relación puede estar en BCNF y 3NF 

Respuesta (C) 
BCNF es una versión más fuerte de 3NF . Entonces toda relación en FNBC también estará en 3NF. 

Consulte GATE Corner para ver todos los documentos/soluciones/explicaciones del año anterior, programa de estudios, fechas importantes, notas, etc. 

Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
 

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 *