Questão de Banco de Dados — Gatilhos (Triggers) — FURB 2025
Banco de Dados›Gatilhos (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:
AUm trigger BEFORE UPDATE em uma tabela que impede a modificação de uma chave primária.
BUm trigger BEFORE INSERT em uma tabela que atualiza um campo na mesma tabela.
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.
DUm trigger AFTER UPDATE em uma tabela que insere um registro em uma tabela de auditoria relacionada.
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.