Sobes.tech
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):

  1. 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.
  2. Read Committed — proíbe leitura suja, mas permite leitura não repetível (non-repeatable read) e leituras fantasmas.
  3. Repeatable Read — proíbe leitura suja e leitura não repetível, mas permite leituras fantasmas.
  4. 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.