Em SGBDs relacionais que utilizam a linguagem SQL, a recupe...

Próximas questões
Com base no mesmo assunto
Q3953497 Banco de Dados
Em SGBDs relacionais que utilizam a linguagem SQL, a recuperação de dados complexos envolve a compreensão da ordem lógica de processamento das cláusulas e a interação entre subconsultas e visões para a geração de relatórios gerenciais eficientes.
Dadas as afirmativas sobre os conceitos de manipulação de dados em SQL,
I. A cláusula HAVING é utilizada, exclusivamente, para filtrar linhas individuais antes que o agrupamento pelo GROUP BY seja realizado pelo motor de execução do banco de dados.
II. Uma subconsulta correlacionada é aquela em que a consulta interna depende de valores da consulta externa para sua execução, sendo processada uma vez para cada linha candidata da consulta externa.
III. Uma Visão (View) em banco de dados não armazena os dados fisicamente (salvo em casos de visões materializadas), funcionando como uma consulta SELECT armazenada que facilita a simplificação de acessos complexos e o controle de segurança.
IV. O uso de subconsultas na cláusula FROM (também conhecidas como tabelas derivadas) exige que o resultado da subconsulta receba um alias (apelido) para que possa ser referenciado no restante da consulta principal.
verifica-se que estão corretas apenas
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E

O que precisava saber: Era necessário distinguir a função do HAVING em relação ao GROUP BY, reconhecer o conceito de subconsulta correlacionada, saber que uma view normalmente não armazena dados fisicamente e identificar que subconsultas na cláusula FROM funcionam como tabelas derivadas e exigem alias.

Critério decisivo: O ponto decisivo foi identificar que a afirmativa I está incorreta, porque HAVING filtra grupos após o GROUP BY, e não linhas individuais antes do agrupamento. Já as afirmativas II, III e IV estão de acordo com os conceitos clássicos de SQL apresentados na base.

Tema central: Cláusulas SQL relacionadas a agrupamento, subconsultas e visões (views).
Análise das alternativas
A
Errada
Está incorreta porque inclui a afirmativa I, que é falsa. Pela base, HAVING não filtra linhas individuais antes do agrupamento; ele filtra resultados já agrupados, enquanto essa filtragem prévia de linhas é típica do WHERE. Embora a II esteja correta, a alternativa exige que ambas estejam corretas.
B
Errada
Está incorreta porque também depende da afirmativa I, que contraria a base. A III está correta, mas isso não salva a alternativa, já que HAVING atua sobre grupos após o GROUP BY, e não exclusivamente sobre linhas antes do agrupamento.
C
Certa
A alternativa E é a correta porque reúne exatamente as afirmativas II, III e IV. A II está correta ao afirmar que a subconsulta correlacionada depende de valores da consulta externa e, por isso, é reavaliada para cada linha candidata da consulta externa. A III está correta porque a view, em regra, não armazena fisicamente os dados, funcionando como uma consulta armazenada que simplifica acessos complexos e pode auxiliar no controle de segurança, ressalvada a exceção das visões materializadas. A IV também está correta, pois a subconsulta na cláusula FROM atua como tabela derivada e precisa receber um alias para ser referenciada no restante da consulta principal.
D
Errada
Está incorreta porque inclui a afirmativa I, que a base classifica como falsa. II e IV estão corretas, mas a presença de I torna a alternativa incompatível com o conjunto correto.
E
Certa
A alternativa E é a correta porque reúne exatamente as afirmativas II, III e IV. A II está correta ao afirmar que a subconsulta correlacionada depende de valores da consulta externa e, por isso, é reavaliada para cada linha candidata da consulta externa. A III está correta porque a view, em regra, não armazena fisicamente os dados, funcionando como uma consulta armazenada que simplifica acessos complexos e pode auxiliar no controle de segurança, ressalvada a exceção das visões materializadas. A IV também está correta, pois a subconsulta na cláusula FROM atua como tabela derivada e precisa receber um alias para ser referenciada no restante da consulta principal.
Pegadinha da questão
A principal pegadinha foi confundir WHERE com HAVING. A base deixa claro que WHERE filtra linhas antes do agrupamento, enquanto HAVING filtra grupos após o GROUP BY. Também podia induzir erro tratar view como se sempre armazenasse dados fisicamente ou esquecer que a subconsulta na FROM precisa de alias.
Dica para questões semelhantes
  • Sempre separe mentalmente WHERE e HAVING: WHERE atua antes do agrupamento; HAVING atua depois, sobre grupos formados pelo GROUP BY.
  • Se a subconsulta depender de valor vindo da consulta externa, trate-a como correlacionada e considere sua reavaliação para cada linha candidata.
  • Ao ler afirmações sobre view, adote como regra geral que ela não armazena fisicamente os dados, salvo a exceção expressa das views materializadas.
  • Se houver subconsulta na cláusula FROM, verifique se ela está sendo tratada como tabela derivada e se recebeu alias para referência na consulta principal.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo