Pular para o conteúdo principal

Questão de Banco de Dados — Geral — FUNDATEC 2026

Banco de DadosGeral
Código
qa433526
Banca
FUNDATEC
Órgão
IFC
Ano
2026
Cargo
PEBTT ( )

Em SGBDs relacionais como SQL Server e PostgreSQL, analise o trecho abaixo:

 

CREATE OR REPLACE _ _ _ _ _ _?
AFTER INSERT ON PEDIDO
FOR EACH ROW
BEGIN
  IF NEW.valor < 0 THEN
   SIGNAL SQLSTATE '45000'
   SET MESSAGE_TEXT = 'Valor inválido';
 END IF;
 INSERT INTO LOG_PEDIDOS(id_pedido, data_registro, operacao)
 VALUES (NEW.id_pedido, NOW(), 'INSERT');
END;

 

Esse bloco é executado automaticamente pelo SGBD após uma inserção na tabela PEDIDO, sem chamada explícita da aplicação. Assinale a alternativa que indica corretamente o recurso que preenche a lacuna.

  1. ATrigger, pois é um bloco vinculado a um evento sobre uma tabela, disparado automaticamente pelo SGBD para executar validações e rotinas de auditoria.
  2. BCheckpoint, pois sincroniza periodicamente o buffer de memória com o disco após operações de escrita em tabelas críticas.
  3. CStored Procedure, pois é um bloco armazenado no banco executado automaticamente após eventos de manipulação de dados.
  4. DCommit, pois confirma definitivamente as operações da transação, garantindo que validações e registros de auditoria sejam persistidos.
  5. ESwapping, pois gerencia a alternância entre blocos de comandos ativos na memória priorizando rotinas críticas de validação.
Revelar gabarito e comentário

GabaritoA — Trigger, pois é um bloco vinculado a um evento sobre uma tabela, disparado automaticamente pelo SGBD para executar validações e rotinas de auditoria.

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 (Gatilhos) em SGBDs Relacionais

Gabarito: letra A. O trecho apresentado descreve um Trigger (gatilho), pois é um bloco de código vinculado a um evento (AFTER INSERT) sobre uma tabela (PEDIDO), que o SGBD executa automaticamente, sem chamada explícita da aplicação, para realizar validações e rotinas de auditoria. As demais alternativas (Checkpoint, Stored Procedure, Commit e Swapping) não correspondem ao recurso descrito.

Um Trigger é um objeto de banco de dados que associa um bloco de código a um evento específico (INSERT, UPDATE ou DELETE) sobre uma tabela ou visão. Quando o evento ocorre, o SGBD dispara o gatilho automaticamente, executando o código definido. Esse mecanismo é amplamente utilizado para garantir a integridade dos dados, implementar regras de negócio complexas, manter auditoria (logs) e realizar validações que não podem ser expressas apenas com restrições de integridade tradicionais (como CHECK ou FOREIGN KEY).

A sintaxe do trecho confirma a natureza do recurso: CREATE OR REPLACE TRIGGER é o comando padrão para criar ou substituir um gatilho. A cláusula AFTER INSERT ON PEDIDO define o momento do disparo (após a inserção) e a tabela-alvo. O FOR EACH ROW indica que o gatilho é do tipo row-level, ou seja, executa uma vez para cada linha afetada pela operação. Dentro do bloco, o código verifica se o valor inserido é negativo (IF NEW.valor < 0) e, se for, gera um erro (SIGNAL SQLSTATE '45000'), abortando a operação. Caso contrário, insere um registro na tabela de log (LOG_PEDIDOS), registrando a operação de auditoria.

É importante distinguir o Trigger de outros conceitos de banco de dados:

  • Stored Procedure (Procedimento Armazenado): é um bloco de código SQL armazenado no banco, mas que não é executado automaticamente por eventos. Ele precisa ser invocado explicitamente pela aplicação ou por outro código, usando o comando CALL ou EXECUTE. O Trigger, por outro lado, é disparado pelo próprio SGBD quando o evento associado ocorre.

  • Checkpoint: é um mecanismo interno do SGBD que sincroniza o buffer de memória com o disco, garantindo a durabilidade das transações. Não tem relação com eventos de manipulação de dados nem com validações de negócio.

  • Commit: é o comando que confirma uma transação, tornando permanentes as alterações realizadas. Não é um bloco de código executado automaticamente, mas sim uma instrução explícita.

  • Swapping: é um conceito de gerenciamento de memória do sistema operacional, que move páginas de memória entre a RAM e o disco. Não tem relação com banco de dados.

A pegadinha da questão está em confundir Trigger com Stored Procedure. Ambos são blocos de código armazenados no banco, mas a diferença crucial é o disparo automático: o Trigger é acionado por eventos, enquanto a Stored Procedure exige chamada explícita. A alternativa C tenta explorar exatamente essa confusão, mas erra ao afirmar que a Stored Procedure é executada automaticamente após eventos de manipulação de dados.

Guarde a distinção central: Trigger = disparo automático por evento; Stored Procedure = execução explícita. É esse critério que separa a alternativa correta das demais.

1Disparo automático
Vinculado a evento (INSERT/UPDATE/DELETE)
SGBD executa sem chamada explícita
2Cláusulas típicas
AFTER / BEFORE
FOR EACH ROW (row-level)
3Usos
Validações
Auditoria (logs)
Regras de negócio
4Diferença de Stored Procedure
Trigger: disparo por evento
Stored Procedure: execução explícita (CALL/EXECUTE)
Trigger (gatilho)
LEVELsoulevel.com.br
Trigger (gatilho): Disparo automático (Vinculado a evento (INSERT/UPDATE/DELETE), SGBD executa sem chamada explícita); Cláusulas típicas (AFTER / BEFORE, FOR EACH ROW (row-level)); Usos (Validações, Auditoria (logs), Regras de negócio); Diferença de Stored Procedure (Trigger: disparo por evento, Stored Procedure: execução explícita (CALL/EXECUTE))

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa descreve com precisão o conceito de Trigger: um bloco vinculado a um evento sobre uma tabela, disparado automaticamente pelo SGBD para executar validações e rotinas de auditoria. O trecho do enunciado exemplifica exatamente isso: o gatilho é criado com CREATE OR REPLACE TRIGGER, associado ao evento AFTER INSERT ON PEDIDO, e contém uma validação (verificar se o valor é negativo) e uma rotina de auditoria (inserir registro na tabela de log). O disparo automático é a característica fundamental que define o Trigger.

Alternativa B — ❌ Incorreta

Checkpoint é um mecanismo interno do SGBD que sincroniza o buffer de memória com o disco, garantindo que as alterações confirmadas sejam persistidas. Ele não é um bloco de código vinculado a eventos de manipulação de dados, nem executa validações ou rotinas de auditoria. A descrição da alternativa não corresponde ao recurso apresentado no enunciado.

Alternativa C — ❌ Incorreta

Stored Procedure é um bloco de código SQL armazenado no banco, mas que não é executado automaticamente por eventos. Ele precisa ser invocado explicitamente pela aplicação, usando CALL ou EXECUTE. A alternativa erra ao afirmar que a Stored Procedure é executada automaticamente após eventos de manipulação de dados — essa é a característica do Trigger, não da Stored Procedure. A pegadinha está em confundir os dois conceitos, que são semelhantes por serem blocos de código armazenados, mas diferem no disparo.

Alternativa D — ❌ Incorreta

Commit é o comando que confirma uma transação, tornando permanentes as alterações realizadas. Ele não é um bloco de código executado automaticamente, mas sim uma instrução explícita que a aplicação emite para finalizar uma transação. A alternativa não descreve o recurso do enunciado, que é um bloco de código disparado por evento.

Alternativa E — ❌ Incorreta

Swapping é um conceito de gerenciamento de memória do sistema operacional, que move páginas de memória entre a RAM e o disco. Não tem relação com banco de dados, nem com eventos de manipulação de dados, validações ou auditoria. A alternativa é completamente alheia ao contexto da questão.

NÃO CAIA NESSA!

A banca tenta confundir Trigger com Stored Procedure (alternativa C). Ambos são blocos de código armazenados no banco, mas a diferença crucial é o disparo automático: o Trigger é acionado por eventos, enquanto a Stored Procedure exige chamada explícita. Ao ver um bloco de código com CREATE OR REPLACE e cláusulas como AFTER INSERT ou BEFORE UPDATE, lembre-se: isso é Trigger. Stored Procedure não tem essas cláusulas de evento.

PEGA ESSA DICA!

Para diferenciar Trigger de Stored Procedure na prova, procure por palavras-chave como AFTER, BEFORE, INSTEAD OF, FOR EACH ROW — elas indicam que o bloco é um Trigger. Stored Procedures são invocadas com CALL ou EXECUTE e não possuem essas cláusulas de evento.

Gabarito: letra A

Link permanente: /questoes/qa433526