Questão de Banco de Dados — Recuperação de Dados em SGBDs — CESPE / CEBRASPE 2023
Banco de Dados›Recuperação de Dados em SGBDs
Código
ce398074
Banca
CESPE / CEBRASPE
Órgão
DATAPREV
Ano
2023
Cargo
Ana TI ( )
No que se refere à recuperação após falha, julgue o item a seguir.
Na técnica de modificação de banco de dados adiada, a atomicidade da transação é garantida registrando-se todas as modificações do banco de dados no log, mas adiando-se a execução de todas as operações WRITE de uma transação até que a transação seja parcialmente confirmada, para transações executadas em série.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
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”.
Recuperação de dados: técnica de modificação adiada (deferred update)
Gabarito: Certo. A afirmação está correta porque descreve com precisão a técnica de modificação adiada (deferred update), na qual as operações de escrita (WRITE) de uma transação são adiadas até que a transação atinja o ponto de confirmação parcial (partial commit), registrando-se todas as modificações no log para garantir a atomicidade. Essa é a definição clássica apresentada por Elmasri e Navathe em sua obra sobre sistemas de banco de dados.
A técnica de modificação adiada é um dos métodos fundamentais de recuperação de banco de dados. Para entender por que ela funciona, é preciso primeiro compreender o papel do log (registro de transações) e o conceito de atomicidade. O log é um arquivo sequencial que registra todas as operações realizadas pelas transações, incluindo leituras, escritas e os eventos de início, confirmação (commit) e aborto (rollback). A atomicidade, uma das propriedades ACID, garante que uma transação seja executada por completo ou não seja executada — nunca parcialmente. Se uma falha ocorre no meio da execução, o banco de dados deve retornar ao estado consistente anterior.
Na técnica de modificação adiada, o princípio é simples: as operações de escrita não são aplicadas diretamente ao banco de dados físico. Em vez disso, todas as modificações são registradas no log, e a execução das operações WRITE é adiada até que a transação esteja prestes a ser confirmada. Quando a transação atinge o ponto de confirmação parcial (partial commit), as operações de escrita são então executadas de fato. Se uma falha ocorrer antes desse ponto, basta ignorar as entradas do log relativas à transação — como nada foi gravado no banco, não há nada a desfazer. Isso garante a atomicidade de forma elegante: ou a transação completa todas as escritas (commit), ou nenhuma escrita é efetivada.
Um exemplo concreto ajuda a fixar: imagine uma transação que transfere R$ 100 da conta A para a conta B. Na técnica adiada, o SGBD registra no log as operações de débito em A e crédito em B, mas não altera imediatamente os valores no banco. Somente quando a transação está pronta para ser confirmada (partial commit) é que as escritas são aplicadas. Se o sistema falhar antes disso, o log mostra que a transação não foi confirmada, e o banco permanece intacto — sem necessidade de undo. Essa abordagem contrasta com a técnica de modificação imediata (immediate update), na qual as escritas são aplicadas ao banco antes da confirmação, exigindo operações de undo (desfazer) em caso de falha.
A distinção entre as duas técnicas é um ponto clássico de cobrança em provas. Na modificação imediata, as escritas são feitas no banco à medida que a transação executa, e o log registra tanto os valores antigos quanto os novos, permitindo undo e redo. Na modificação adiada, as escritas são adiadas, e o log registra apenas os valores novos, pois não há necessidade de undo — basta não aplicar as escritas se a transação não confirmar. Essa diferença fundamental é o que a banca explora: o candidato que confunde as duas técnicas marca errado.
A pegadinha desta questão está na expressão "para transações executadas em série". O candidato pode pensar que a técnica adiada só se aplica a transações seriais, mas isso não é um erro — a descrição da técnica é válida independentemente do nível de concorrência. A banca usa essa expressão para contextualizar, mas o núcleo da afirmação — registrar no log e adiar as escritas até a confirmação parcial — está correto. Guarde a fronteira entre modificação adiada e imediata: é exatamente nela que as questões sobre recuperação de dados se dividem.
Técnicas de recuperação
1Modificação adiada (deferred update)
WRITE adiado até o partial commit
Log registra só valores novos
Falha antes do commit → nada a desfazer (sem undo)
Atomicidade garantida
2Modificação imediata (immediate update)
WRITE aplicado antes do commit
Log registra valores antigos e novos
Falha antes do commit → undo necessário
LEVEL · soulevel.com.br
Item — ✅ CERTO
A afirmação descreve corretamente a técnica de modificação adiada. Ela afirma que a atomicidade é garantida registrando-se todas as modificações no log e adiando a execução das operações WRITE até a confirmação parcial. Isso está em conformidade com a definição de Elmasri e Navathe, que descreve a técnica de atualização adiada como aquela em que "as operações de escrita são adiadas até que a transação atinja o ponto de confirmação parcial". O log registra as modificações, e as escritas são aplicadas somente após a transação estar pronta para confirmar. Se uma falha ocorre antes, a transação é simplesmente ignorada, garantindo a atomicidade. A expressão "para transações executadas em série" não invalida a afirmação, pois a técnica é descrita corretamente em seu núcleo conceitual.
NÃO CAIA NESSA!
Para diferenciar as técnicas de recuperação, lembre-se: na modificação adiada, as escritas são adiadas até o commit — se falhar antes, nada a desfazer (sem undo). Na modificação imediata, as escritas são aplicadas antes do commit — se falhar, é preciso desfazer (undo). Nas provas, a banca costuma trocar esses comportamentos: se a questão diz que as escritas são aplicadas antes da confirmação, é imediata; se diz que são adiadas, é adiada.