Pular para o conteúdo principal

Questão de Banco de Dados — Visão (View) — FUNDATEC 2026

Banco de DadosVisã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.
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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).

Gabarito: letra B.

Link permanente: /questoes/qg685909