Pular para o conteúdo principal

Questão de Banco de Dados — Gatilhos (Triggers) — FURB 2025

Banco de DadosGatilhos (Triggers)
Código
qg497150
Banca
FURB
Órgão
Prefeitura de Florianópolis - SC
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal de Tributos Municipais - Tecnologia da Informação - 2º Dia
Em um sistema de gerenciamento de banco de dados relacional (SGBD), triggers são mecanismos que executam ações automáticas em resposta a eventos como inserções, atualizações ou exclusões em tabelas. Quando triggers são mal projetados, especialmente em cenários que envolvem múltiplas tabelas, eles podem resultar em "cascading triggers" ou "trigger storms", um comportamento em que um trigger dispara outro que, por sua vez, dispara mais triggers, potencialmente levando a loops infinitos, desempenho degradado ou dificuldades de depuração. Considere um SGBD que permite triggers aninhados sem limite estrito de profundidade. Avalie as seguintes afirmações sobre cenários de definição de triggers em um banco de dados relacional e assinale aquela que descreve um cenário de cascading triggers ou trigger storms:
  1. AUm trigger BEFORE UPDATE em uma tabela que impede a modificação de uma chave primária.
  2. BUm trigger BEFORE INSERT em uma tabela que atualiza um campo na mesma tabela.
  3. CUm trigger AFTER INSERT em uma tabela A que causa uma inserção em uma tabela B que, por sua vez, tem um trigger AFTER INSERT que atualiza a tabela A.
  4. DUm trigger AFTER UPDATE em uma tabela que insere um registro em uma tabela de auditoria relacionada.
  5. EUm trigger AFTER DELETE em uma tabela que atualiza uma estatística agregada em outra tabela.
Revelar gabarito e comentário

GabaritoC — Um trigger AFTER INSERT em uma tabela A que causa uma inserção em uma tabela B que, por sua vez, tem um trigger AFTER INSERT que atualiza a tabela A.

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

Triggers e Cascading Triggers

Gabarito: letra C. O cenário de cascading triggers (ou trigger storms) ocorre quando um trigger dispara outro trigger, que por sua vez dispara mais triggers, podendo gerar um ciclo infinito. A alternativa C descreve exatamente esse caso: um trigger na tabela A insere em B, e o trigger de B atualiza A, criando potencial de loop.

A banca testa a compreensão do comportamento em cadeia que pode levar a problemas de desempenho e loops infinitos. O conceito é extraído do próprio enunciado e da literatura sobre bancos de dados.

Característica

Alternativa C (Cascading Trigger)

Alternativa A (Validação)

Alternativa B (Auto-atualização)

Alternativa D (Auditoria)

Alternativa E (Estatística)

Dispara outro trigger?

Sim, em cadeia entre tabelas A e B

Não

Pode, mas é auto-referente na mesma tabela

Não (tabela de auditoria sem trigger de retorno)

Não (tabela de estatísticas sem trigger de retorno)

Potencial de loop infinito?

Sim, se o trigger de B atualizar A novamente

Não

Possível, mas não entre tabelas distintas

Não

Não

Exemplo clássico de trigger storm?

Sim, descrito no enunciado

Não

Não

Não

Não

Risco de desempenho degradado?

Alto (cascata potencialmente infinita)

Baixo

Médio (depende do SGBD)

Baixo

Baixo

Alternativa A — ❌ Incorreta

Um trigger BEFORE UPDATE que impede a modificação de uma chave primária é uma validação simples, não gera disparo de outros triggers. Não há encadeamento.

Alternativa B — ❌ Incorreta

Um trigger BEFORE INSERT que atualiza um campo na mesma tabela pode, em alguns SGBDs, causar um novo disparo do mesmo trigger (se o UPDATE for considerado um novo evento), mas não é o exemplo clássico de cascata entre tabelas. A descrição é vaga e não configura necessariamente um cascading trigger com múltiplos disparos.

Alternativa C — ✅ Correta ⟵ GABARITO

A situação descreve perfeitamente um cascading trigger: o AFTER INSERT na tabela A insere na tabela B; o AFTER INSERT da tabela B, por sua vez, atualiza a tabela A. Essa atualização pode re-disparar um trigger em A (dependendo da definição), criando um ciclo. É o cenário típico de trigger storm.

Alternativa D — ❌ Incorreta

Um trigger AFTER UPDATE que insere em uma tabela de auditoria é uma prática comum e isolada. A tabela de auditoria geralmente não possui triggers que retornem à tabela original, portanto não há cascata.

Alternativa E — ❌ Incorreta

Um trigger AFTER DELETE que atualiza uma estatística agregada em outra tabela é uma operação de atualização de sumarização. Se a tabela de estatísticas não tiver um trigger que modifique a tabela original, não há cascata.

Gabarito: letra C.

Link permanente: /questoes/qg497150