Questão de Banco de Dados — Transações (Locks, ACID, etc.) — FGV 2024
- Código
- fg165245
- Banca
- FGV
- Órgão
- TJ MS
- Ano
- 2024
- Cargo
- Tec NS ( )
- Aatomicidade;
- Bconsistência;
- Cisolamento;
- Ddurabilidade;
- Enormalização.
GabaritoC — isolamento;
Gabarito: letra C. A propriedade que garante que o resultado parcial de uma transação não seja acessado por outra transação até a sua efetivação é o isolamento — uma das quatro propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) que regem o processamento de transações em bancos de dados.
O enunciado descreve exatamente o conceito de isolamento: cada transação deve operar como se fosse a única no sistema, sem que outras transações concorrentes enxerguem seus resultados intermediários. Essa propriedade é essencial para evitar problemas de concorrência, como leituras sujas (dirty reads), leituras não repetíveis e leituras fantasma.
Vamos entender cada propriedade ACID para fixar:
Atomicidade: trata a transação como uma unidade indivisível — ou todas as operações são executadas com sucesso (commit), ou nenhuma delas (rollback). É o princípio do "tudo ou nada".
Consistência: garante que a transação leve o banco de dados de um estado válido para outro estado válido, respeitando todas as regras e restrições (chaves, unicidade, integridade referencial).
Isolamento: assegura que transações simultâneas não interfiram umas nas outras; os resultados parciais de uma transação não são visíveis para as demais até o commit.
Durabilidade: uma vez confirmada (commit), as alterações são permanentes, mesmo em caso de falha do sistema.
A pegadinha da questão está em distinguir isolamento de atomicidade. A atomicidade também lida com "não deixar transações parciais", mas sob o aspecto da indivisibilidade lógica (tudo ou nada), não da visibilidade entre transações concorrentes. O isolamento é especificamente sobre o controle de concorrência — é ele que impede que uma transação veja o trabalho parcial de outra.
Na prática, o isolamento é implementado pelo SGBD por meio de locks (bloqueios) e níveis de isolamento (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE), que controlam o grau de exposição entre transações concorrentes.
Guarde a fronteira: atomicidade = indivisibilidade da transação; isolamento = não interferência entre transações concorrentes. É exatamente nessa distinção que as alternativas se dividem.
A atomicidade garante que a transação seja executada por completo ou não seja executada (tudo ou nada), mas não trata da visibilidade de resultados parciais entre transações concorrentes. O enunciado fala de "não sofrer interferências de outras transações executadas simultaneamente", o que é isolamento, não atomicidade.
A consistência assegura que o banco de dados permaneça em um estado válido após a transação, respeitando regras e restrições de integridade. Não tem relação com o acesso a resultados parciais por outras transações.
O isolamento é exatamente a propriedade que garante que uma transação não sofra interferência de outras transações executadas simultaneamente, e que o resultado parcial de uma transação não seja acessado por outra até a sua efetivação (commit). É o mecanismo de controle de concorrência do SGBD.
A durabilidade garante que, após o commit, as alterações sejam permanentes e persistam mesmo em caso de falha do sistema. Não trata da interferência entre transações concorrentes.
Normalização é um processo de modelagem de dados para eliminar redundâncias e anomalias, não é uma propriedade de transações. Não se aplica ao contexto de concorrência.
Gabarito: letra C
Link permanente: /questoes/fg165245