Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq896747
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
Considere a tabela relacional:Estudante(IdEstudante, nome, idade)Legenda: Campos sublinhados compõem a chave primária da tabela.Considere o seguinte comando SQL:CREATE OR REPLACE VIEW questaoASSELECT AVG(IDADE) FROM ESTUDANTEAnalise as assertivas abaixo e assinale a alternativa correta.I. Uma VIEW é uma consulta que, ao ser executada, tem seu resultado armazenado no banco de dados.II. Na cláusula FROM do comando SELECT, uma VIEW pode ser referenciada como se fosse uma tabela.III. A consulta da VIEW (questao) está obtendo o valor da média das idades dos estudantes.IV. Para saber quais estudantes são mais velhos que a média, basta consultar SELECT MAX(IDADE) FROM QUESTAO
  1. ATodas estão corretas.
  2. BTodas estão incorretas.
  3. CApenas I e IV estão corretas.
  4. DApenas II e III estão corretas.
  5. EApenas III e IV estão corretas.
Revelar gabarito e comentário

GabaritoD — Apenas II e III estão corretas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Views no SQL: conceito e uso

Gabarito: letra D. Apenas as assertivas II e III estão corretas. Uma VIEW é uma tabela virtual que não armazena resultados (I é falsa); pode ser referenciada em FROM como tabela (II é verdadeira); a view criada calcula a média das idades (III é verdadeira); e a consulta proposta em IV não retorna estudantes mais velhos que a média (IV é falsa).

Assertiva

Descrição

Correta?

Motivo

I

Uma VIEW armazena o resultado da consulta no banco de dados.

VIEW é tabela virtual; resultado é computado sob demanda, não armazenado (exceto materialized view).

II

Uma VIEW pode ser referenciada na cláusula FROM como se fosse uma tabela.

No SQL, VIEW pode ser usada em qualquer lugar onde uma tabela é esperada, inclusive no FROM.

III

A VIEW questao obtém a média das idades dos estudantes.

A consulta SELECT AVG(IDADE) FROM ESTUDANTE retorna exatamente a média das idades.

IV

SELECT MAX(IDADE) FROM QUESTAO retorna estudantes mais velhos que a média.

A VIEW retorna um único valor (a média), não possui coluna IDADE; a consulta falharia ou retornaria a própria média, não os estudantes.

Assertiva I — ❌ Incorreta

Uma VIEW não armazena o resultado de sua consulta no banco de dados; ela é uma tabela virtual que representa o resultado da consulta subjacente. O dado é computado sob demanda, a menos que se trate de uma materialized view (não é o caso). A definição diz: uma view é uma consulta armazenada que se comporta como uma tabela, mas não ocupa armazenamento físico para os dados retornados.

Assertiva II — ✅ Correta

No SQL, uma VIEW pode ser usada em qualquer lugar onde uma tabela é esperada, inclusive na cláusula FROM. A sintaxe SELECT ... FROM nome_da_view é perfeitamente válida.

Assertiva III — ✅ Correta

A view foi criada com SELECT AVG(IDADE) FROM ESTUDANTE, que retorna a média das idades de todos os estudantes. Portanto, a consulta da view obtém exatamente esse valor.

Assertiva IV — ❌ Incorreta

A view questao retorna um único valor (a média). Um comando SELECT MAX(IDADE) FROM QUESTAO falharia porque a view não possui uma coluna chamada IDADE – ela retorna apenas o resultado da função de agregação (normalmente sem nome ou com nome implícito como AVG(IDADE)). Além disso, mesmo que houvesse uma coluna, MAX sobre um único valor seria o próprio valor. Para listar os estudantes com idade acima da média, seria necessário algo como:

SELECT * FROM ESTUDANTE WHERE IDADE > (SELECT AVG(IDADE) FROM ESTUDANTE);
NÃO CAIA NESSA!

A assertiva IV confunde o resultado da view (que é um valor agregado) com uma tabela que contenha as idades individuais. O candidato pode pensar que a view se comporta como uma tabela real e que MAX(IDADE) retornaria a maior idade, mas a view não possui essa coluna. Além disso, a operação para comparar com a média exige uma subconsulta, não uma simples função de agregação sobre a view.

Conclusão: Estão corretas apenas II e III → alternativa D.

Gabarito: letra D.

Link permanente: /questoes/qq896747