Questão FC372934
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
Sistema de Gerenciamento de Banco de Dados (SGBD)
FCC · 2020
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,
- usando um trigger.
- criando uma view com dados de produtos e de pedidos.
- atribuindo o acesso a essas tabelas para apenas um usuário responsável.
- atribuindo privilégios à tabela de pedidos.
- atribuindo privilégios à tabela de produtos.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
Um trigger é uma rotina do SGBD que é automaticamente executada em resposta a eventos (por exemplo INSERT, UPDATE, DELETE) em uma tabela. Ele permite encapsular lógica no servidor, garantindo que ações relacionadas ocorram sempre que o evento disparar.
No caso descrito, cria-se um trigger do tipo AFTER INSERT sobre a tabela de pedidos que, para cada nova linha, atualiza a tabela de produtos diminuindo a quantidade disponível com base na quantidade inserida.
Benefícios: a atualização fica atômica e consistente, reduzendo erros por concorrência, centraliza a regra no banco (manutenção mais simples) e evita tráfego extra entre aplicação e servidor, melhorando o desempenho.
Exemplo resumido:
UPDATE produtos SET estoque = estoque - NEW.quantidade WHERE id = NEW.produto_id;
Conteúdo do catálogo FC Concursos · Atualizado em