Em um sistema de gerenciamento de banco de dados relacional...
Em um sistema de gerenciamento de banco de dados relacional que implementa os níveis de isolamento definidos pelo padrão ANSI SQL, cada nível oferece diferentes garantias contra anomalias de concorrência, como:
Com base nesse contexto, avalie as afirmações a seguir:
I. O nível Read Uncommitted permite todas as três anomalias: leituras sujas, leituras não repetíveis e leituras fantasmas.
II. O nível Repeatable Read previne leituras sujas e leituras não repetíveis, mas não previne leituras fantasmas.
III. O nível Serializable evita todos os três fenômenos de concorrência, oferecendo o mais alto grau de isolamento conforme o padrão ANSI SQL.
É correto o que se afirma
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A – I, II e III.
1. Tema central da questão:
A questão aborda concorrência em banco de dados e os níveis de isolamento do padrão ANSI SQL. Esse tema é crucial porque define como as transações interagem em ambientes multiusuário, prevenindo problemas como leitura de dados errados ou inconsistentes.
2. Resumo teórico:
No contexto de bancos de dados, os níveis de isolamento determinam o grau em que as operações de uma transação ficam invisíveis para outras até serem confirmadas (commit). Os quatro níveis do padrão ANSI SQL são:
- Read Uncommitted: permite todas as anomalias (leitura suja, não repetível e fantasma).
- Read Committed: evita leitura suja, mas permite as outras.
- Repeatable Read: evita leitura suja e não repetível, mas permite leitura fantasma.
- Serializable: evita todas as anomalias.
Fontes: ANSI SQL-92, Date, C. J. – Introdução a Sistemas de Banco de Dados.
3. Justificando a alternativa correta:
I. Read Uncommitted permite leitura suja, leitura não repetível e leitura fantasma – correto.
II. Repeatable Read impede leituras sujas e não repetíveis, mas não previne leituras fantasmas – correto.
III. Serializable previne todas as anomalias – correto.
4. Análise das alternativas incorretas:
- B: Omite o nível mais alto de isolamento (Serializable); errada.
- C: Afirma que o nível mais baixo não permite todas as anomalias, o que não é verdade; errada.
- D: Considera apenas Serializable, mas os demais também estão corretos; errada.
- E: Considera apenas Read Uncommitted, mas os outros itens estão certos; errada.
5. Estratégia de resolução:
Ao ler cada afirmação, associe-a ao nível de isolamento estudado. Memorize as anomalias permitidas em cada nível usando siglas ou mapas mentais. Atenção a expressões como “apenas” ou “todos” para evitar pegadinhas.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Revisando os níveis de isolamento:
Read Uncommitted: permite leitura de dados não confirmados (dirty read). Muito frágil → não resolve.
Read Committed: garante que só lê dados já confirmados, mas ainda permite que os mesmos dados sejam modificados depois → não resolve o problema.
Repeatable Read: evita que os registros já lidos sejam modificados por outras transações, mas não impede inserções novas que mudem o resultado de consultas (phantom read).
Serializable: nível mais restritivo → garante que a transação seja executada como se fosse única, bloqueando alterações e inserções que afetariam o conjunto de resultados. É o único que evita tanto leituras sujas quanto não repetíveis e também leituras fantasmas.
Snapshot Read: depende do mecanismo de MVCC (multiversion concurrency control), mas a questão não está abordando esse cenário, e geralmente não é a resposta esperada em provas teóricas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo