Pular para o conteúdo principal

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

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

Analise o seguinte trecho de comandos SQL executados em um sistema de gerenciamento de banco de dados relacional, de acordo com o padrão ANSI/ISO SQL (ISO/IEC 9075):

 

BEGIN TRANSACTION;
UPDATE Conta
SET saldo = saldo - 500
WHERE id_conta = 1;
UPDATE Conta
SET saldo = saldo + 500
WHERE id_conta = 2;
ROLLBACK;

 

Considerando os conceitos de transações em banco de dados, assinale a alternativa correta.

  1. AApenas a primeira atualização será desfeita, mantendo a segunda alteração.
  2. BO comando ROLLBACK executa novamente todas as operações da transação.
  3. CAs alterações serão mantidas apenas se houver erro na execução das instruções.
  4. DOs valores das contas 1 e 2 serão modificados permanentemente após a execução das instruções.
  5. ENenhuma das alterações será mantida, pois o comando ROLLBACK desfaz todas as operações realizadas na transação.
Revelar gabarito e comentário

GabaritoE — Nenhuma das alterações será mantida, pois o comando ROLLBACK desfaz todas as operações realizadas na transação.

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

Transações em Banco de Dados: COMMIT e ROLLBACK

Gabarito: letra E. O comando ROLLBACK desfaz todas as operações realizadas desde o início da transação (marcado pelo BEGIN TRANSACTION), restaurando o banco de dados ao último estado confirmado. Como o trecho executa dois UPDATEs e depois um ROLLBACK, nenhuma das alterações será mantida — é exatamente o que a alternativa E afirma, e é o comportamento padrão do controle de transações no SQL (ISO/IEC 9075).

Uma transação é uma unidade lógica de trabalho: um conjunto de operações sobre o banco de dados que deve ser executado de forma atômica — ou seja, ou todas as operações são aplicadas, ou nenhuma delas é. Essa é a propriedade de atomicidade do modelo ACID. Para controlar esse comportamento, o SQL oferece comandos específicos: BEGIN TRANSACTION (inicia a transação), COMMIT (confirma permanentemente as alterações) e ROLLBACK (desfaz as alterações).

O COMMIT é o comando que salva permanentemente as mudanças feitas durante a transação. Enquanto a transação não é confirmada, as alterações são visíveis apenas para a própria transação (isolamento) e podem ser revertidas. Já o ROLLBACK é o comando que restaura o banco de dados ao último estado confirmado, desfazendo todas as operações executadas desde o BEGIN TRANSACTION (ou desde um SAVEPOINT, se usado).

No trecho da questão, temos:

BEGIN TRANSACTION;
UPDATE Conta SET saldo = saldo - 500 WHERE id_conta = 1;
UPDATE Conta SET saldo = saldo + 500 WHERE id_conta = 2;
ROLLBACK;

A transação começa, executa duas atualizações (débito na conta 1 e crédito na conta 2) e, em seguida, é finalizada com ROLLBACK. Isso significa que ambas as alterações são desfeitas — o banco de dados volta ao estado em que estava antes do BEGIN TRANSACTION. Nenhuma das contas é modificada permanentemente.

A pegadinha clássica aqui é o candidato pensar que o ROLLBACK desfaz apenas a última operação, ou que as alterações são mantidas porque não houve erro. Mas o ROLLBACK é global: ele desfaz tudo o que foi feito na transação, independentemente de ter havido erro ou não. O COMMIT é que seria necessário para manter as alterações.

Guarde a fronteira decisiva: COMMIT = confirma e mantém tudo; ROLLBACK = desfaz tudo. É exatamente nessa distinção que as alternativas se dividem.

  1. 1BEGIN TRANSACTION
  2. 2UPDATEs (débito/crédito)
  3. 3COMMIT → mantém tudo
  4. 4ROLLBACK → desfaz tudo
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que apenas a primeira atualização será desfeita, mantendo a segunda. Isso é falso: o ROLLBACK desfaz todas as operações da transação, não apenas uma. As duas atualizações (débito e crédito) são revertidas. A alternativa confunde o efeito do ROLLBACK com o de um SAVEPOINT, que permitiria reverter apenas até um ponto específico — mas aqui não há SAVEPOINT.

Alternativa B — ❌ Incorreta

Afirma que o ROLLBACK executa novamente todas as operações da transação. Isso é um erro conceitual: o ROLLBACK desfaz as operações, não as reexecuta. O comando que executa novamente operações não existe no controle de transações padrão; o ROLLBACK restaura o estado anterior ao BEGIN TRANSACTION.

Alternativa C — ❌ Incorreta

Afirma que as alterações serão mantidas apenas se houver erro na execução das instruções. Isso inverte completamente a lógica: as alterações são mantidas quando a transação é confirmada com COMMIT (sem erro), e são desfeitas com ROLLBACK (que pode ser usado justamente quando há erro, mas também pode ser usado voluntariamente). A alternativa troca o papel dos comandos.

Alternativa D — ❌ Incorreta

Afirma que os valores das contas 1 e 2 serão modificados permanentemente. Isso só ocorreria se a transação fosse finalizada com COMMIT. Como o trecho usa ROLLBACK, as alterações são desfeitas e os valores voltam ao estado original. A alternativa ignora o efeito do ROLLBACK.

Alternativa E — ✅ Correta ⟵ GABARITO

Afirma que nenhuma das alterações será mantida, pois o ROLLBACK desfaz todas as operações realizadas na transação. Isso está correto: o ROLLBACK restaura o banco de dados ao último estado confirmado, desfazendo os dois UPDATEs. É exatamente o comportamento esperado do comando.

NÃO CAIA NESSA!

A banca explora a confusão entre COMMIT e ROLLBACK. O candidato pode pensar que, como não houve erro, as alterações seriam mantidas — mas o ROLLBACK desfaz tudo, independentemente de erro. Lembre-se: COMMIT confirma e mantém; ROLLBACK desfaz tudo. Com treino, você enxerga essa troca de longe 💪

Gabarito: letra E

Link permanente: /questoes/qa433484