Pular para o conteúdo principal

Questão de Banco de Dados — Gerência de Transações — FUNDATEC 2025

Banco de DadosGerência de Transações
Código
qg475068
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Suporte em Banco de Dados
No contexto de transações ACID e de mecanismos de recuperação em SGBDs relacionais, assinale a alternativa correta sobre commit/rollback e as regras de log WAL.
  1. APela regra WAL, os registros de log com os valores “antes” (before-state) podem ser gravados após a escrita das páginas de dados.
  2. BO rollback de uma transação deve forçar o rollback de outras transações concorrentes para prevenir inconsistências.
  3. CSe uma restrição adiada (deferred) for violada no COMMIT, o SGBD conclui o commit e corrige o dado depois.
  4. DA regra de precedência do commit (forma simplificada) exige gravar o log antes do COMMIT.
  5. EAtomicidade permite preservar parte dos efeitos de uma transação mesmo que alguma operação falhe.
Revelar gabarito e comentário

GabaritoD — A regra de precedência do commit (forma simplificada) exige gravar o log antes do COMMIT.

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 ACID e WAL

Gabarito: letra D. A regra de precedência do commit exige que o log (inclusive o registro de commit) seja gravado em armazenamento estável antes de o commit ser confirmado. Essa é a essência do Write-Ahead Logging (WAL). As demais alternativas ou violam os princípios ACID ou distorcem a regra WAL.

A banca testa o conhecimento sobre o log de transações e as propriedades ACID, especialmente a atomicidade e a recuperação via WAL.

Alternativa A — ❌ Incorreta

Afirma que os registros de log com valores "antes" (before-state) podem ser gravados após a escrita das páginas de dados. A regra WAL determina exatamente o oposto: os registros de log (undo e redo) devem ser escritos em disco antes das páginas de dados serem atualizadas. Isso garante que, em caso de falha, seja possível desfazer ou refazer operações.

Alternativa B — ❌ Incorreta

Diz que o rollback de uma transação deve forçar o rollback de outras transações concorrentes. O rollback de uma transação não deve forçar rollback de outras, a menos que haja dependência de leitura (cascading rollback). Isso violaria o isolamento. Cada transação é independente; o SGBD gerencia a concorrência para evitar interferências, mas não força rollback alheio.

Alternativa C — ❌ Incorreta

Afirma que se uma restrição adiada (deferred) for violada no COMMIT, o SGBD conclui o commit e corrige o dado depois. Restrições adiadas são verificadas no momento do commit; se violadas, o commit é rejeitado (rollback). Não há correção posterior – a atomicidade exige que a transação inteira seja desfeita.

Alternativa D — ✅ Correta ⟵ GABARITO

A regra de precedência do commit (forma simplificada) determina que o log deve ser gravado antes do COMMIT. No WAL, o registro de commit (que indica que a transação terminou com sucesso) precisa estar em disco antes de o SGBD notificar o usuário que o commit ocorreu. Isso assegura que, mesmo que ocorra uma falha logo após, os efeitos possam ser recuperados.

Alternativa E — ❌ Incorreta

Afirma que a atomicidade permite preservar parte dos efeitos de uma transação mesmo que alguma operação falhe. Pelo contrário: atomicidade exige tudo ou nada. Se qualquer operação falha, todos os efeitos devem ser desfeitos (rollback). Preservar parte viola a atomicidade.

NÃO CAIA NESSA!

A alternativa A inverte a regra WAL – o candidato pode lembrar que "log vem antes" mas confundir a ordem. A alternativa B explora o conceito de rollback em cascata (que existe, mas não é forçado). Fique atento: o WAL exige antes, não depois.

Gabarito: letra D

Link permanente: /questoes/qg475068