Pular para o conteúdo principal

Questão de Banco de Dados — Gerência de Transações — FGV 2026

Banco de DadosGerê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,
  1. Aleitura suja e durabilidade.
  2. Batualização perdida e isolamento.
  3. Cescrita não repetível e consistência.
  4. Dconflito de escrita-escrita e atomicidade.
  5. 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.

Gabarito: letra B

Link permanente: /questoes/fg126144