Sobes.tech
Middle

Qual é a classificação existente dos níveis de isolamento?

sobes.tech IA

Resposta da IA

Os níveis de isolamento em bases de dados determinam o quão isoladas estão as transações umas das outras e das alterações feitas por outras transações. Eles evitam vários problemas de acesso concorrente.

Classificação dos níveis de isolamento (padrão SQL):

  • READ UNCOMMITTED
    • Permite ler alterações não confirmadas (leitura suja / dirty read).
    • Problemas: leitura suja, leitura não repetível, leitura fantasma.
  • READ COMMITTED
    • Permite ler apenas alterações confirmadas.
    • Proíbe a leitura suja.
    • Problemas: leitura não repetível, leitura fantasma.
    • Nível mais utilizado por padrão.
  • REPEATABLE READ
    • Garante que a leitura do mesmo conjunto de linhas numa transação retornará os mesmos dados, mesmo que outras transações as alterem.
    • Proíbe a leitura suja e a leitura não repetível.
    • Problema: leitura fantasma (aparecimento de novas linhas que satisfazem a condição de seleção).
  • SERIALIZABLE
    • Nível mais alto de isolamento.
    • Garante a ausência total de problemas de acesso concorrente. As transações são executadas como se fossem feitas sequencialmente.
    • Proíbe a leitura suja, a leitura não repetível e a leitura fantasma.
    • Pode afetar significativamente o desempenho.

Problemas de acesso concorrente:

Problema READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE
Leitura suja Sim Não Não Não
Leitura não repetível Sim Sim Não Não
Leitura fantasma Sim Sim Sim Não

A escolha do nível de isolamento depende dos requisitos da aplicação e do compromisso entre integridade dos dados e desempenho.