Alternativa D - Transaction UNDO
A questão aborda o mecanismo de recuperação de falhas em Sistemas de Gerenciamento de Banco de Dados (SGBD), especificamente quando ocorre uma Falha de Transação. Diferente de uma falha de sistema (que derruba toda a máquina), esta falha é isolada ao processo da transação, sem danificar o disco ou a memória física.
Para manter a propriedade de Atomicidade do modelo ACID, qualquer alteração feita por uma transação que termine de forma anormal deve ser desfeita completamente. Isso garante que o banco de dados permaneça em um estado consistente, como se a transação nunca tivesse ocorrido.
A ação correta é realizar o UNDO (desfazer) apenas sobre os dados modificados por aquela transação específica, sem afetar outras transações ou exigir uma recuperação global do sistema.
Análise Técnica
Abaixo, detalhamos os conceitos fundamentais para entender a escolha da alternativa:
- Natureza da Falha: O enunciado descreve uma falha onde "uma transação ativa terminou de forma anormal" mas "não compromete a memória principal e a memória secundária". Isso caracteriza uma Falha de Transação (Soft Failure), distinta de uma Falha de Sistema (Hard Failure).
- Ação de Recuperação (UNDO vs REDO):
- UNDO: Utilizado para reverter alterações não commitadas ou falhadas. É necessário para garantir Atomicidade.
- REDO: Utilizado para reaplicar alterações já commitadas após uma falha de sistema. Não se aplica aqui pois a transação não foi concluída.
- Escopo da Ação (Partial vs Global vs Transaction):
- Global: Implica recuperar todo o sistema (após queda de energia).
- Partial: Termo ambíguo, geralmente não usado em definições padrão de recuperação de transação única.
- Transaction: Especifica que a operação é restrita àquela transação falha, preservando o trabalho das demais.
| Tipo de Falha | Impacto no Disco/Memória | Ação de Recuperação | Escopo |
|---|
| Falha de Transação | Nenhum (Lógica/Processo) | UNDO | Apenas a transação afetada |
| Falha de Sistema | Sim (Perda de Voláteis) | UNDO + REDO | Todo o banco de dados |
Por que não as outras alternativas?
- a. Partial UNDO: Termologia imprecisa. A transação deve ser totalmente desfeita, não parcialmente.
- b. Global UNDO: Seria excessivo e desnecessário, afetando transações que funcionaram corretamente.
- c. e e. REDO: Redo implica refazer mudanças. Como a transação falhou, suas mudanças são inválidas e devem ser removidas, não repetidas.
Conclusão
Diante do cenário descrito, onde a integridade do armazenamento físico está intacta, mas o estado lógico da transação está comprometido, o SGBD deve abortar a transação e desfazer seus efeitos locais. Portanto, a ação técnica correta é o Transaction UNDO, garantindo a consistência dos dados sem interromper o funcionamento geral do servidor.