Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2024

Banco de DadosSQL
Código
fg075963
Banca
FGV
Órgão
AL-TO
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvimento de Sistema
Visões em SQL possuem um papel relevante em bancos de dados relacionais. Ela oferece mecanismos importantes, tais como abstração de dados, segurança e simplificação das consultas.Nesse contexto, é correto afirmar que
  1. Aa cláusula WITH CHECK OPTION da SQL é demandada no final da especificação da visão, a fim de que a tornar uma asserção.
  2. Ba estratégia de modificação de consultas para a implementação de visões é eficaz para consultas complexas.
  3. Ca responsabilidade pela atualização do estado de uma visão é do usuário, que necessita enviar um comando refresh a cada execução.
  4. Duma visão em linha (view em linha) consiste na definição de uma visão na cláusula HAVING de uma consulta SQL.
  5. Evisões materializadas criam uma tabela temporária, utilizando técnicas como a atualização incremental.
Revelar gabarito e comentário

GabaritoE — visões materializadas criam uma tabela temporária, utilizando técnicas como a atualização incremental.

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”.

Visões (views) em SQL

Gabarito: letra E. Visões materializadas armazenam fisicamente o resultado da consulta em uma tabela (física ou temporária) e podem utilizar técnicas de atualização incremental para mantê-la sincronizada com as tabelas base, sem recriar todo o conteúdo a cada alteração. Esse é o conceito central cobrado na alternativa correta.

As demais alternativas contêm erros conceituais: WITH CHECK OPTION não transforma uma view em asserção; a modificação de consultas não é eficaz para consultas complexas; visões comuns não exigem refresh do usuário; e view em linha é definida na cláusula FROM, não no HAVING.

Alternativa A — ❌ Incorreta

A cláusula WITH CHECK OPTION é utilizada no final da definição de uma view para garantir que toda inserção ou atualização realizada por meio dessa view respeite a condição da consulta que a define (a cláusula WHERE). Ela não torna a view uma asserção (assertion), que é uma constraint geral sobre o banco de dados, definida com CREATE ASSERTION. A alternativa confunde dois conceitos distintos.

Alternativa B — ❌ Incorreta

A modificação de consultas (query modification) é uma técnica de implementação de visões não materializadas: a cada consulta sobre a view, o SGBD substitui o nome da view pela consulta original, gerando uma nova consulta maior. Para consultas complexas, essa abordagem é ineficiente, pois repete o processamento a cada acesso. Técnicas como materialização (vistas materializadas) são mais indicadas para consultas complexas, pois armazenam o resultado pré-computado.

Alternativa C — ❌ Incorreta

Em visões comuns (não materializadas), o estado da view é sempre atualizado automaticamente: quando uma tabela base é modificada, as consultas subsequentes à view refletem essas alterações, sem necessidade de comando REFRESH. A necessidade de refresh manual existe apenas para visões materializadas, e mesmo assim não é necessário fazê-lo "a cada execução" — o SGBD pode usar refresh periódico ou incremental. A alternativa generaliza incorretamente.

Alternativa D — ❌ Incorreta

Uma view em linha (inline view) é uma subconsulta utilizada na cláusula FROM de uma consulta SQL, e não no HAVING. A sintaxe típica é:

SELECT ...
FROM (SELECT ...) AS subconsulta
WHERE ...

Já a cláusula HAVING é usada para filtrar grupos após a agregação (GROUP BY). A alternativa troca o local correto (FROM) pelo HAVING.

Alternativa E — ✅ Correta ⟵ GABARITO

Visões materializadas (materialized views) criam uma tabela física (ou até mesmo temporária, dependendo da implementação) que armazena o resultado da consulta da view. Para manter essa tabela atualizada, o SGBD pode empregar atualização incremental (incremental refresh), que calcula apenas as alterações ocorridas nas tabelas base, aplicando-as à view materializada. Isso evita a recriação completa da view e melhora o desempenho em consultas subsequentes. A descrição da alternativa está correta.

Gabarito: letra E.

Link permanente: /questoes/fg075963