Em um sistema de gerenciamento de banco de dados relacional...

Próximas questões
Com base no mesmo assunto
Q3508337 Banco de Dados

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:



• Leitura suja (dirty read): leitura de dados ainda não confirmados.


• Leitura não repetível (non-repeatable read): dados lidos são alterados por outra transação entre duas leituras.


• Leitura fantasma (phantom read): novas linhas são inseridas por outras transações entre duas leituras.



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

Alternativas

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