Questão nº 64
Questão de Banco de Dados · FGV CGU 2021 - Tarde (nº 64)
Considere uma transação T1 de bancos de dados que transfere uma quantia em dinheiro da conta A para a conta B, gravando uma retirada da conta A e um depósito para a conta B.
Analise as três intercorrências independentes que poderiam surgir numa transação desse tipo.
I. É feita a retirada da conta A, mas T1 falha; a retirada é mantida, mas o depósito na conta B não é efetuado.
II. A retirada da conta A é efetuada; uma transação T2 lê o saldo da conta A após a retirada; o depósito na conta B falha e a retirada é revertida. T2 prossegue, com valores errôneos.
III. T1 é completada normalmente, mas há uma posterior falha na instalação, e as operações realizadas na execução de T1 são perdidas.
No âmbito das propriedades ACID para bancos de dados, além da consistência, a violação em cada caso, na ordem, é:
- Aatomicidade, durabilidade, isolamento;
- Batomicidade, isolamento, durabilidade; (alternativa correta)
- Cdurabilidade, isolamento, atomicidade;
- Disolamento, atomicidade, durabilidade;
- Eisolamento, durabilidade, atomicidade.
Resposta comentada
Gabarito Alternativa B
Conceito-chave: ACID são as quatro garantias de uma transação: Atomicidade (tudo ou nada), Isolamento (transações não enxergam estados intermediários umas das outras) e Durabilidade (uma vez commitada, a mudança sobrevive a falhas). A Consistência é o estado válido dos dados antes e depois.
- (A) Incorreta: A ordem está errada: o caso II é isolamento (T2 viu estado intermediário), não durabilidade; e o caso III é durabilidade, não isolamento.
- (B) Correta: Caso I viola atomicidade (retirada sem depósito = parcial); caso II viola isolamento (T2 leu dado não commitado, depois revertido); caso III viola durabilidade (dados commitados perdidos após falha).
- (C) Incorreta: Caso I não é durabilidade (durabilidade só se aplica a transações commitadas; T1 falhou); caso III não é atomicidade (T1 completou, mas o efeito sumiu).
- (D) Incorreta: Caso I não é isolamento (é falha parcial da própria T1, sem outra transação envolvida); caso III não é atomicidade (T1 foi completa).
- (E) Incorreta: Caso I não é isolamento; caso II não é durabilidade (durabilidade não se aplica a transação revertida); caso III não é atomicidade.
Armadilha do distrator (A): A banca troca isolamento e durabilidade de posição. No caso II, a pegadinha é pensar "a transação foi revertida, então é atomicidade", mas atomicidade se refere à própria transação (T1), e aqui T1 foi revertida corretamente. O erro real é T2 ter lido um valor intermediário — isso é violação de isolamento. No caso III, a falha é após o commit — isso é durabilidade, não atomicidade.
Fonte: FGV CGU 2021 - Tarde Auditor Federal de Finanças e Controle - Área Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.