No contexto de sistemas de gerenciamento de banco de dados ...

Próximas questões
Com base no mesmo assunto
Q3881251 Banco de Dados
No contexto de sistemas de gerenciamento de banco de dados relacionais, considere um cenário hipotético em que duas transações simultâneas (T1 e T2) tentam atualizar o saldo da conta bancária de um analista de infraestrutura da ALEGO. A transação T1 lê o saldo de R$100,00 da conta, a Transação T2 também lê o mesmo saldo R$100,00 da conta. A Transação T1 adiciona R$ 50,00 na conta e grava e, logo em seguida a Transação T2 adiciona R$ 30,00 na conta e grava. O resultando do saldo final é de R$130,00 em vez de R$180,00.

O problema de concorrência e propriedade ACID que foi violada são, respectivamente,
Alternativas

Comentários

Veja os comentários dos nossos alunos

O cenário descreve o seguinte fluxo:

  1. T1 lê Saldo = 100.
  2. T2 lê Saldo = 100 (antes de T1 atualizar).
  3. T1 calcula 100 + 50 = 150 e grava (COMMIT).
  4. T2 calcula 100 + 30 = 130 e grava (COMMIT).

Como a T2 baseou seu cálculo em um valor "antigo" (que já havia sido alterado por T1, mas T2 não "percebeu"), ela acabou sobrescrevendo a alteração feita por T1. O depósito de R$ 50,00 foi simplesmente "perdido".

O Problema (Atualização Perdida): Ocorre quando duas transações leem o mesmo dado e ambas tentam atualizá-lo com base no valor lido. A última transação a gravar "atropela" a anterior.

A Propriedade Violada (Isolamento): O I do ACID (Isolation) dita que a execução de uma transação não deve ser interferida por outras transações simultâneas. Se o isolamento fosse perfeito (ou estivesse ao nível Serializable), a T2 seria obrigada a esperar o fim de T1 ou teria que ler o saldo atualizado (150) antes de somar seus 30.

Clique para visualizar este comentário

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