Questão de Banco de Dados — Visão (View) — FUNDATEC 2026
Banco de Dados›Visão (View)
Código
qg685909
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Banco de Dados
Analise as seguintes definições de visões em um banco de dados relacional com as tabelas base PEDIDO(id_pedido, id_cliente, valor, status) e CLIENTE(id_cliente, nome, cidade):V1: CREATE VIEW v_pedidos_altos ASSELECT id_pedido, id_cliente, valorFROM pedidoWHERE valor > 500;V2: CREATE VIEW v_total_por_cliente ASSELECT id_cliente, SUM(valor) AS totalFROM pedidoGROUP BY id_cliente;V3: CREATE VIEW v_clientes_pedidos ASSELECT p.id_pedido, c.nome, p.valorFROM pedido p JOIN cliente c ON p.id_cliente = c.id_cliente;V4: CREATE VIEW v_status_distinct ASSELECT DISTINCT statusFROM pedido;Um desenvolvedor precisa identificar quais visões não permitem operações de atualização direta segundo os critérios do padrão SQL. Sobre o assunto, assinale a alternativa correta.
AApenas V2 e V4 são não atualizáveis, pois V1 e V3 preservam a correspondência direta com as tuplas das tabelas base, permitindo que o SGBD identifique e modifique os registros originais sem ambiguidade.
BV2, V3 e V4 são não atualizáveis, pois V2 utiliza agregação com GROUP BY, V4 utiliza DISTINCT e V3 envolve junção entre duas tabelas, sendo que nenhuma dessas construções permite ao SGBD identificar unicamente a tupla da tabela base a ser modificada.
CTodas as visões são não atualizáveis, pois qualquer restrição aplicada na definição de uma visão, seja por WHERE, JOIN, GROUP BY ou DISTINCT, impede que o SGBD propague modificações para as tabelas base de forma confiável.
DApenas V2 é não atualizável, pois o uso de GROUP BY com função de agregação impede a identificação direta das tuplas originais, enquanto V3, apesar de envolver junção, permanece atualizável por preservar a chave primária de ambas as tabelas base na projeção.
EV1, V2 e V4 são não atualizáveis, pois a cláusula WHERE em V1 restringe o conjunto de tuplas visíveis, tornando ambígua qualquer tentativa de inserção de registros com valor inferior a 500 diretamente pela visão.
Revelar gabarito e comentário▾
GabaritoB — V2, V3 e V4 são não atualizáveis, pois V2 utiliza agregação com GROUP BY, V4 utiliza DISTINCT e V3 envolve junção entre duas tabelas, sendo que nenhuma dessas construções permite ao SGBD identificar unicamente a tupla da tabela base a ser modificada.
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) e Atualização Direta em SQL
Gabarito: letra B. As visões V2 (GROUP BY com agregação), V3 (JOIN) e V4 (DISTINCT) não são atualizáveis segundo o padrão SQL, pois cada uma dessas construções impede que o SGBD mapeie de forma inequívoca as operações de INSERT, UPDATE ou DELETE para as tuplas das tabelas base. Apenas V1, com filtro WHERE simples, mantém essa correspondência e é atualizável.
O padrão SQL define que uma view é atualizável apenas quando é derivada de uma única tabela base, não contém funções de agregação, GROUP BY, DISTINCT, junção (JOIN) ou subconsulta na cláusula FROM. A view deve permitir uma relação direta 1:1 entre suas linhas e as linhas da tabela subjacente. Caso contrário, o SGBD não consegue determinar qual registro alterar ou inserir sem ambiguidade.
Visão
Característica
Atualizável?
Motivo
V1
WHERE valor > 500
Sim
Filtro simples sobre uma única tabela base; mantém correspondência 1:1 com as tuplas.
V2
GROUP BY + SUM(valor)
Não
Função de agregação e agrupamento impedem mapeamento direto para as tuplas originais.
V3
JOIN entre pedido e cliente
Não
Junção entre duas tabelas gera ambiguidade na identificação da tupla a ser modificada.
V4
SELECT DISTINCT
Não
Eliminação de duplicatas quebra a relação direta com as linhas da tabela base.
Visão atualizável (padrão SQL)
1Requisitos
Única tabela base
Sem agregação (SUM, COUNT, AVG)
Sem GROUP BY
Sem DISTINCT
Sem JOIN
Sem subconsulta na FROM
2Atualizável
WHERE simples (V1)
3Não atualizável
GROUP BY + agregação (V2)
JOIN (V3)
DISTINCT (V4)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que V1 e V3 são atualizáveis. Embora V1 seja atualizável, V3 contém JOIN entre duas tabelas, o que a torna não atualizável. A justificativa de que V3 "preserva a correspondência direta com as tuplas" está errada, pois a junção pode produzir combinações que não correspondem a uma única tupla de cada tabela base.
Alternativa B — ✅ Correta ⟵ GABARITO
Correta ao listar V2, V3 e V4 como não atualizáveis. V2 utiliza GROUP BY com função de agregação (SUM), V3 envolve JOIN, e V4 usa DISTINCT – todas essas construções retiram a capacidade de atualização direta. V1 (WHERE simples) permanece atualizável.
Alternativa C — ❌ Incorreta
Erro ao afirmar que todas as visões são não atualizáveis. V1 é perfeitamente atualizável, pois a cláusula WHERE apenas restringe as tuplas visíveis, mas não quebra a correspondência com as tabelas base.
Alternativa D — ❌ Incorreta
Erro ao afirmar que apenas V2 é não atualizável. Ignora que V3 (JOIN) e V4 (DISTINCT) também não são atualizáveis. V3 não é atualizável mesmo que projete as chaves primárias, pois a junção gera ambiguidade.
Alternativa E — ❌ Incorreta
Erro ao incluir V1 como não atualizável. A cláusula WHERE não impossibilita a atualização; pelo contrário, views com WHERE são atualizáveis (desde que as operações respeitem o filtro – por exemplo, não é possível inserir uma tupla que viole o WHERE, mas UPDATE e DELETE nas tuplas visíveis funcionam).