Pular para o conteúdo principal

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

Banco de DadosVisão (View)
Código
qa699101
Banca
FUNDATEC
Órgão
BRDE
Ano
2025
Cargo
Ana Sist ( )
Qual é a estratégia utilizada para atualizar a tabela da visão sempre que as tabelas básicas forem atualizadas, de modo a garantir que a visão esteja sempre atualizada?
  1. AAsserção declarativa.
  2. BVisão.
  3. CSQL embutida.
  4. DCursor.
  5. EAtualização incremental.
Revelar gabarito e comentário

GabaritoE — 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 materializadas e atualização incremental

Gabarito: letra E. A estratégia que mantém a tabela de uma visão materializada sempre atualizada quando as tabelas básicas são modificadas é a atualização incremental, na qual o SGBD determina quais novas tuplas devem ser inseridas, excluídas ou modificadas na visão a partir das mudanças aplicadas às tabelas base. Esse conceito está diretamente ligado à materialização de visões, conforme a literatura clássica de banco de dados (Elmasri & Navathe).

Para entender a questão, é preciso primeiro distinguir os dois grandes grupos de visões. A visão comum (virtual) não armazena dados: ela guarda apenas a consulta SQL definida no momento da criação, e, a cada acesso, o SGBD executa essa consulta sobre as tabelas base — por isso ela reflete sempre o estado atual dos dados, mas paga o custo de processamento a cada leitura. Já a visão materializada é diferente: o SGBD executa a consulta e armazena fisicamente o resultado em uma tabela real, o que acelera as consultas posteriores, mas cria o problema da defasagem — se as tabelas base mudarem, a tabela materializada fica desatualizada até que seja recalculada.

É exatamente nesse ponto que entra a atualização incremental. Quando uma visão é materializada, o SGBD precisa de uma estratégia eficiente para manter essa tabela física sincronizada com as tabelas base. Em vez de descartar e recalcular a visão inteira a cada alteração (o que seria caro), a atualização incremental identifica apenas as tuplas afetadas pela mudança — inserções, exclusões e modificações — e aplica somente essas diferenças à tabela materializada. O trecho abaixo, da obra de Elmasri & Navathe, descreve exatamente esse mecanismo:

Elmasri & Navathe — Sistemas de Banco de Dados:

"Técnicas que usam o conceito de atualização incremental têm sido desenvolvidas para essa finalidade, nas quais o SGBD pode determinar quais novas tuplas devem ser inseridas, excluídas ou modificadas em uma tabela de visão materializada quando uma atualização de banco de dados é aplicada a uma das tabelas básicas definidas."

Ainda segundo a mesma fonte, existem três estratégias de quando essa atualização ocorre: a imediata (atualiza a visão assim que as tabelas base são alteradas), a adiada (atualiza quando a visão é consultada) e a periódica (atualiza em intervalos regulares, podendo devolver resultados desatualizados). A questão, porém, não pergunta quando atualizar, e sim como atualizar — e a resposta é a técnica de atualização incremental, que é o mecanismo que decide quais tuplas devem ser inseridas, excluídas ou modificadas.

A pegadinha da banca está em confundir o objeto (a visão) com a estratégia de manutenção (a atualização incremental). A alternativa B (Visão) é o conceito central do enunciado, mas não responde à pergunta — ela é o que precisa ser atualizado, não o mecanismo que faz a atualização. Guarde essa distinção: visão é o objeto; atualização incremental é a técnica que mantém a visão materializada sincronizada.

Visões
  • 1Visão comum (virtual)
    • Guarda a consulta SQL
    • Sempre atualizada
    • Custo a cada leitura
  • 2Visão materializada
    • Armazena o resultado fisicamente
    • Leitura rápida
    • Risco de defasagem
    • Estratégias de atualização
      • Imediata
      • Adiada
      • Periódica
      • Atualização incremental (gabarito)
        • Insere tuplas afetadas
        • Exclui tuplas afetadas
        • Modifica tuplas afetadas
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Asserção declarativa não é um termo da área de banco de dados relacional. O conceito mais próximo seria "asserção" (assertion), que no SQL é um mecanismo de integridade que garante que uma condição seja sempre verdadeira no banco — mas isso nada tem a ver com atualizar a tabela de uma visão. A banca usa um termo vago para induzir o candidato a marcar algo que "parece técnico", mas não existe nesse contexto.

Alternativa B — ❌ Incorreta

A visão é o objeto central do enunciado — é ela que precisa ser mantida atualizada — mas não é a estratégia de atualização. A visão comum é uma tabela virtual que reflete os dados das tabelas base a cada consulta; a visão materializada é a que armazena fisicamente o resultado. Em nenhum dos casos a visão em si é a técnica que atualiza sua própria tabela. A banca troca o objeto pela estratégia: a pergunta é como atualizar, e a resposta não pode ser o próprio objeto a ser atualizado.

Alternativa C — ❌ Incorreta

SQL embutida (embedded SQL) é a técnica de incorporar comandos SQL dentro de uma linguagem de programação hospedeira (como C, Java ou COBOL), permitindo que o programa acesse o banco de dados. Isso é uma forma de interação entre aplicação e SGBD, não um mecanismo de manutenção de visões materializadas. A confusão aqui é entre a forma de acesso aos dados e a estratégia de sincronização interna do banco.

Alternativa D — ❌ Incorreta

Cursor é um mecanismo do SQL que permite percorrer linha a linha o resultado de uma consulta, geralmente usado em procedimentos armazenados ou SQL embutida para processar registros individualmente. Ele é uma ferramenta de navegação sobre resultados, não uma estratégia de atualização de visões. A banca explora a associação mental com "atualizar registros", mas o cursor não tem relação com a manutenção de visões materializadas.

Alternativa E — ✅ Correta ⟵ GABARITO

A atualização incremental é exatamente a técnica descrita no enunciado: quando as tabelas básicas são atualizadas, o SGBD determina quais tuplas devem ser inseridas, excluídas ou modificadas na tabela da visão materializada, garantindo que ela esteja sempre atualizada. Essa é a estratégia eficiente para manter a visão sincronizada sem precisar recalculá-la do zero a cada alteração. O trecho de Elmasri & Navathe citado acima confirma literalmente essa definição.

A regra de ouro para levar à prova: visão comum = consulta armazenada, sempre atual, paga o custo a cada leitura; visão materializada = resultado armazenado fisicamente, rápido de ler, mas precisa de atualização — e a técnica que faz essa atualização é a incremental.

Gabarito: letra E

Link permanente: /questoes/qa699101