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.