Junior — Middle
Qual é o objetivo de usar o nível de isolamento de transações Repeatable Read nos sistemas de gestão de bases de dados?
sobes.tech IA
Resposta da IA
O nível de isolamento de transações Repeatable Read destina-se a prevenir o fenómeno de leitura não repetível (non-repeatable read). Isto significa que, dentro de uma mesma transação, ao reler os mesmos dados, estes não irão mudar, mesmo que outras transações tentem atualizá-los.
Objetivos:
- Garantir que os dados lidos no início da transação permaneçam inalterados até à sua conclusão.
- Prevenir situações em que uma transação veja valores diferentes para os mesmos registos em leituras repetidas.
No entanto, com Repeatable Read, podem ocorrer leituras fantasmas (phantom reads), quando novas linhas que satisfazem a condição da consulta aparecem como resultado de outras transações.
Em C# e .NET, o nível Repeatable Read pode ser definido ao trabalhar com transações através de TransactionScope ou SqlTransaction.