← Questões de Banco de Dados

Banco de Dados · FGV · 2022

Questão comentada de Banco de Dados

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, é:

Gabarito: B

Em transações, pense no ACID como quatro “travas” para o banco não virar bagunça. A consistência garante que o estado permaneça válido; aqui, a questão pede a falha em outras propriedades, caso a caso. O segredo é olhar o efeito prático de cada intercorrência: se uma parte da operação fica e a outra não, o problema é de atomicidade, porque a transação deveria acontecer como um todo ou não acontecer. No caso II, outra transação lê um valor intermediário e depois a operação é desfeita, então o erro é de isolamento, pois uma transação não deveria enxergar um estado “em obra”. Já no caso III, T1 termina com sucesso, mas depois os dados somem por falha na instalação, o que viola a durabilidade, isto é, o compromisso de que o que foi confirmado permanece salvo. É exatamente por isso que o gabarito é B: atomicidade, isolamento e durabilidade, nessa ordem.

Continue treinando

Questões relacionadas