Considerando as técnicas e os proced...

Próximas questões
Com base no mesmo assunto
Q482761 Banco de Dados
                        imagem-020.jpg

Considerando as técnicas e os procedimentos de recuperação em caso de falhas, se a técnica de recuperação usada for a de atualização imediata, o que acontece com as transações T1, T2, T3, T4, T5 e T6, que estão sendo executadas em um Sistema Gerenciador de Banco de Dados, conforme apresentado na figura, após a falha?
Alternativas

Comentários

Veja os comentários dos nossos alunos

Simples:
As atualizações que terminaram antes do Check Point são concluídas; (T1 e T4)
As que terminaram depois do Check Point, porém antes da falha(crash) são refeitas. (T2 e T6)
As que não terminaram antes da falha são desfeitas. (T3 e T5)

atualização imediata = UNDO/REDO

T2 e T6 são refeitas porque quando passam pelo CKP, são excluídas do REDO.

Pessoal, existe um grande erro aí. A atualização imediata pode funcionar de duas formas: através de UNDO/REDO e UNDO/NO-REDO. E essa característica muda tudo. A banca não deixa isso claro.

Além disso, na imagem, as transações T3 e T5 continuam funcionando após uma falha no sistema?!?!??!? Isso não faz sentido. Se pegarmos os livros de referência na área, essa característica não existe. Ou seja, como vamos continuar uma transação após uma falha? No momento da falha o sistema deve parar e nenhuma transação deve prosseguir, seja ela nova ou existente, até que o sistema seja recuperado.

Dessa forma, caso utilize o método UNDO/NO-REDO (o que a questão não deixa claro), por exemplo, da atualização imediata, o sistema deve garantir que T1 e T4 estejam OK no sistema pois elas finalizaram antes do checkpoint. As transações T2 e T6 (NO-REDO) também devem estar OK, pois o método UNDO/NO-REDO garante a gravação imediata do LOG em disco (NO-REDO). Por fim, as transações que iniciaram antes da falha e não concluíram, que são T3 e T5 devem ser desfeitas (UNDO), canceladas e reenviadas pela aplicação ou usuário, pois o sistema não tem capacidade de finalizar as operações de uma transação que não foi finalizada. E por que isso acontece nessa última etapa? Pois o sistema não pode 'prever' quais operações seriam executadas na transação pela aplicação/usuário após uma falha no sistema....

Enfim, questão cheia de erros

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo