Pular para o conteúdo principal

Questão de Banco de Dados — Gerência de Transações — FGV 2026

Banco de DadosGerência de Transações
Código
fg127348
Banca
FGV
Órgão
AL-RO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo (Tecnologia da Informação - Banco de Dados)
Um desenvolvedor precisa criar uma rotina para calcular o imposto de uma transação e outra rotina para registrar o fechamento do caixa diário, que deve inserir dados em uma tabela e, se necessário, realizar um COMMIT ou ROLLBACK.Assinale a opção que apresenta o recurso programático mais apropriado para a rotina de fechamento de caixa diário e sua característica fundamental.
  1. AUma Função, pois ela pode conter lógica de DML e DDL com controle transacional.
  2. BUma View, pois ela é ideal para encapsular lógica de negócios complexa.
  3. CUm Trigger, pois é ativado por comandos DML em uma tabela e não pode ser chamado diretamente.
  4. DUma Stored Procedure, pois ela pode executar comandos DML, DDL e lógica transacional completa, sendo chamada explicitamente.
  5. EUma Cláusula HAVING, pois é usada para encapsular regras de agregação de dados.
Revelar gabarito e comentário

GabaritoD — Uma Stored Procedure, pois ela pode executar comandos DML, DDL e lógica transacional completa, sendo chamada explicitamente.

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

Stored Procedures e Controle Transacional em SQL

Gabarito: letra D. Uma Stored Procedure (procedimento armazenado) é o recurso mais adequado para a rotina de fechamento de caixa diário, pois permite executar comandos DML (INSERT/UPDATE/DELETE), DDL (CREATE/ALTER) e, principalmente, realizar controle transacional completo (COMMIT e ROLLBACK), sendo chamada explicitamente pelo desenvolvedor. As demais opções ou não suportam transações (Funções, Views, HAVING) ou não são chamadas diretamente (Triggers).

A questão testa o conhecimento sobre os tipos de objetos programáveis em SQL e suas características. Uma rotina que precisa inserir dados e tomar decisão entre COMMIT e ROLLBACK exige encapsulamento de lógica transacional, o que é justamente o papel de uma Stored Procedure.

Recurso Programático

Característica Fundamental

Adequado para Rotina de Fechamento de Caixa?

Stored Procedure

Executa comandos DML, DDL e lógica transacional completa (COMMIT/ROLLBACK), sendo chamada explicitamente.

✅ Sim

Function

Pode conter lógica DML e DDL, mas não é projetada para controle transacional (efeitos colaterais).

❌ Não

View

Consulta armazenada; não encapsula lógica de negócios complexa nem suporta DML/transações.

❌ Não

Trigger

Ativado automaticamente por DML em uma tabela; não pode ser chamado diretamente.

❌ Não

Cláusula HAVING

Usada para filtrar grupos em agregações; não encapsula lógica transacional.

❌ Não

Alternativa A — ❌ Incorreta

Uma Function (função) pode conter lógica DML e DDL em alguns SGBDs, mas não é projetada para controle transacional. Funções são usadas para computar valores e devem ser livres de efeitos colaterais (como COMMIT/ROLLBACK). Embora algumas implementações permitam, não é a prática padrão nem o recurso mais apropriado.

Alternativa B — ❌ Incorreta

Uma View (visão) é uma consulta armazenada, que não encapsula lógica de negócios complexa nem suporta comandos DML ou transacionais. Ela apenas representa dados de uma ou mais tabelas, sem executar ações.

Alternativa C — ❌ Incorreta

Um Trigger (gatilho) é ativado automaticamente por comandos DML em uma tabela e executa no contexto da transação que o disparou. No entanto, não pode ser chamado diretamente e não é o recurso adequado para uma rotina explícita de fechamento de caixa, que deve ser invocada sob demanda.

Alternativa D — ✅ Correta ⟵ GABARITO

Uma Stored Procedure é um bloco de código nomeado que pode receber parâmetros, executar comandos DML e DDL, e gerenciar transações com COMMIT e ROLLBACK. Ela é chamada explicitamente (por exemplo, EXEC ou CALL), o que a torna ideal para rotinas como o fechamento de caixa diário, onde se decide entre confirmar ou reverter as operações.

PEGA ESSA DICA!

Lembre-se: procedimentos armazenados são o local correto para colocar lógica transacional. Funções e triggers têm limitações de uso de COMMIT/ROLLBACK. View é apenas consulta; HAVING é cláusula de filtro de grupos, não recurso programático.

Alternativa E — ❌ Incorreta

A cláusula HAVING é usada para filtrar grupos em consultas com GROUP BY. Ela não encapsula lógica, não executa comandos DML/DDL e não tem qualquer relação com controle transacional.

Gabarito: letra D.

Link permanente: /questoes/fg127348