Questão de Banco de Dados — Gerência de Transações — FGV 2026
Banco de Dados›Gerência de Transações
Código
fg126144
Banca
FGV
Órgão
AL-GO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo - Analista de Infraestrutura
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,
Aleitura suja e durabilidade.
Batualização perdida e isolamento.
Cescrita não repetível e consistência.
Dconflito de escrita-escrita e atomicidade.
Econflito de leitura-escrita e inconsistência.
Revelar gabarito e comentário▾
GabaritoB — atualização perdida e isolamento.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Transações e Concorrência: Lost Update e Isolamento
Gabarito: letra B. O cenário descreve o problema clássico de atualização perdida (lost update). A propriedade ACID violada é o isolamento, que exige que transações concorrentes não interfiram umas nas outras. Como T1 e T2 leram o mesmo saldo inicial (R$100) e gravaram sem sincronização, a atualização de T1 foi sobrescrita pela gravação de T2, resultando em saldo incorreto (R$130 em vez de R$180).
O problema de concorrência é a atualização perdida, que ocorre quando duas transações leem e modificam o mesmo dado concorrentemente sem mecanismos de bloqueio ou isolamento adequado. A propriedade ACID violada é o isolamento, que deveria garantir que a execução concorrente produzisse o mesmo resultado que alguma execução serial (serializabilidade).
Alternativa A — ❌ Incorreta
A leitura suja (dirty read) ocorre quando uma transação lê dados ainda não confirmados (não commitados). No cenário, ambas as transações leram o saldo confirmado inicial (R$100), sem ler dados não commitados. A propriedade violada não é durabilidade, que se refere à persistência de alterações após o commit.
Alternativa B — ✅ Correta ⟵ GABARITO
Descrição correta do lost update (atualização perdida) e da violação da propriedade isolamento. O cenário ilustra exatamente a perda da atualização de T1 porque T2 gravou um valor baseado em uma leitura anterior, sem considerar a escrita de T1.
Alternativa C — ❌ Incorreta
Escrita não repetível (non-repeatable read) refere-se à leitura de um dado que é modificado por outra transação no meio de uma transação atual. Não é o caso, pois cada transação realizou apenas uma leitura. A propriedade consistência não foi violada diretamente (o banco permaneceu consistente, mas com valor incorreto devido à concorrência).
Alternativa D — ❌ Incorreta
Embora haja um conflito de escrita-escrita, o nome técnico do problema é atualização perdida, não apenas "conflito de escrita-escrita". A propriedade atomicidade (tudo-ou-nada) não foi violada, pois cada transação foi executada atomicamente.
Alternativa E — ❌ Incorreta
Conflito de leitura-escrita é um tipo de conflito, mas o problema específico é atualização perdida. A inconsistência resultante é consequência da violação do isolamento, mas a alternativa não nomeia corretamente o problema e a propriedade violada (deveria ser isolamento, não inconsistência).
PEGA ESSA DICA!
Em questões sobre concorrência, identifique a sequência de operações: se duas transações leem o mesmo valor inicial e depois escrevem, sem sincronização, é lost update. Se uma transação lê um valor que outra ainda não confirmou, é dirty read. Se uma transação lê valores diferentes em duas leituras, é non-repeatable read. A propriedade violada em lost update é sempre o isolamento.