Níveis de isolamento
O que duas transações simultâneas enxergam uma da outra e as anomalias que cada nível permite.
O nível de isolamento define o que uma transação enxerga das outras que rodam ao mesmo tempo. Quanto mais forte o nível, menos anomalias passam, e mais transações falham e precisam ser repetidas.
Os bancos vêm num nível intermediário por padrão, e cada um o implementa de um jeito. Código correto num banco pode perder dados em outro.
- Leitura suja, leitura não repetível e fantasma: ler dados que mudam no meio do caminho.
- Atualização perdida: duas transações leem, calculam e gravam por cima uma da outra.
- Escrita enviesada: cada transação respeita a regra sozinha, e juntas a violam.
- Só o nível serializável barra todas, e exige repetir a transação quando ele recusa.