Senior
Quais os tipos de isolamento de transações existentes e em quais é possível leitura suja?
sobes.tech IA
Resposta da IA
Tipos de isolamento de transações em bases de dados (por exemplo, no padrão SQL):
- Read Uncommitted — o nível mais baixo de isolamento. Permite leitura suja (dirty read), quando uma transação lê dados que foram modificados, mas ainda não confirmados por outra transação.
- Read Committed — proíbe leitura suja, mas permite leitura não repetível (non-repeatable read) e leituras fantasmas.
- Repeatable Read — proíbe leitura suja e leitura não repetível, mas permite leituras fantasmas.
- Serializable — o nível mais alto de isolamento, previne todas as anomalias mencionadas, incluindo leituras fantasmas.
Leitura suja só é possível no nível Read Uncommitted.
Exemplo de leitura suja:
- A transação A altera dados, mas não faz commit.
- A transação B lê esses dados alterados.
- Se a transação A é revertida, os dados lidos pela transação B tornam-se incorretos.
Na maioria dos SGBDs, o nível Read Uncommitted não é suportado ou não é usado por padrão devido ao risco de erros.