Pular para o conteúdo principal

Questão de Banco de Dados — Gatilhos (Triggers) — FCC 2020

Banco de DadosGatilhos (Triggers)
Código
fc058935
Banca
FCC
Órgão
AL-AP
Ano
2020
Cargo
Analista Legislativo - Desenvolvedor de Banco de Dados
Considere uma tabela de produtos em estoque e outra de pedidos, em um banco de dados. Toda vez que um item for incluído na tabela de pedidos, a quantidade em estoque desse item, na tabela de produtos, deve ser diminuída de modo equivalente. Um Analista pode solucionar essa situação, e ainda ganhar em desempenho,
  1. Ausando um trigger.
  2. Bcriando uma view com dados de produtos e de pedidos.
  3. Catribuindo o acesso a essas tabelas para apenas um usuário responsável.
  4. Datribuindo privilégios à tabela de pedidos.
  5. Eatribuindo privilégios à tabela de produtos.
Revelar gabarito e comentário

GabaritoA — usando um trigger.

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

Gatilhos (Triggers) em Banco de Dados

Gabarito: letra A. Um trigger (gatilho) é um procedimento armazenado que é executado automaticamente em resposta a eventos como INSERT, UPDATE ou DELETE em uma tabela. No cenário descrito, ao incluir um item na tabela de pedidos, um trigger pode ser disparado para decrementar automaticamente a quantidade em estoque na tabela de produtos, garantindo a consistência dos dados e melhorando o desempenho por eliminar a necessidade de programação manual da atualização.

A banca testa o conhecimento sobre a função dos triggers na automatização de regras de negócio que envolvem múltiplas tabelas. O contexto do material de apoio define claramente que triggers "são executados ou disparados automaticamente quando alguns eventos ocorrem" e que um exemplo típico é propagar alterações de uma tabela para outra, exatamente o caso da questão.

  1. 1INSERT na tabela Pedidos
  2. 2Trigger é disparado automaticamente
  3. 3UPDATE na tabela Produtos (decrementa estoque)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa está correta. Um trigger é o recurso ideal: ele é disparado automaticamente após a inserção de um pedido (evento INSERT) e executa a instrução SQL que diminui o estoque correspondente. Isso é feito de forma transparente para o usuário e sem necessidade de intervenção programática externa, o que também otimiza o desempenho ao evitar consultas ou transações adicionais no código da aplicação.

Alternativa B — ❌ Incorreta

Uma view (visão) é uma consulta virtual baseada em uma ou mais tabelas. Ela não executa ações — apenas apresenta dados. Não é possível, por meio de uma view, diminuir automaticamente o estoque quando um pedido é inserido; a view é apenas uma representação dos dados, não um mecanismo de execução de comandos DML.

Alternativa C — ❌ Incorreta

Atribuir o acesso a essas tabelas para apenas um usuário responsável não resolve o problema. O acesso controla quem pode ler ou modificar as tabelas, mas não automatiza a atualização do estoque. A ação de reduzir o estoque continuaria dependendo de uma intervenção manual ou de um código externo.

Alternativa D — ❌ Incorreta

Atribuir privilégios à tabela de pedidos apenas concede permissões (como INSERT, SELECT, UPDATE) aos usuários. Não há qualquer automatização embutida nos privilégios; eles apenas autorizam ou restringem operações, mas não executam comandos adicionais quando um pedido é inserido.

Alternativa E — ❌ Incorreta

Da mesma forma que a alternativa D, atribuir privilégios à tabela de produtos controla quem pode alterar o estoque, mas não realiza a diminuição automática. A lógica de negócio continuaria a ser de responsabilidade da aplicação, sem ganho de desempenho.

PEGA ESSA DICA!

Sempre que um enunciado falar em "toda vez que ocorrer X, deve ocorrer Y automaticamente" — pense em trigger. É o recurso padrão em bancos de dados para reagir a eventos DML (INSERT, UPDATE, DELETE) e manter a consistência entre tabelas relacionadas.

Gabarito: letra A.

Link permanente: /questoes/fc058935