Principal
O que são transações em bancos de dados? Quais são os níveis de isolamento de transações, qual é o seu significado e qual é a principal diferença?
sobes.tech IA
Resposta da IA
Uma transação numa base de dados é uma sequência logicamente relacionada de operações que é executada como uma única unidade. As principais propriedades das transações são descritas pelo acrónimo ACID:
- Atomicidade — todas as operações da transação são concluídas totalmente ou não são realizadas de todo.
- Consistência — a transação leva a base de dados de um estado correto para outro correto.
- Isolamento — transações paralelas não se influenciam mutuamente.
- Durabilidade — após um commit, as alterações permanecem mesmo em caso de falhas.
Níveis de isolamento de transações determinam o grau de visibilidade das alterações de uma transação para outras e influenciam as possíveis anomalias:
- Read Uncommitted — uma transação pode ver alterações não confirmadas de outras (leitura suja).
- Read Committed — apenas alterações confirmadas são visíveis, mas podem ocorrer leituras não repetíveis.
- Repeatable Read — garante que uma leitura repetida dos mesmos dados numa transação dará o mesmo resultado, mas podem ocorrer leituras fantasmas (novas linhas).
- Serializable — o nível mais estrito, as transações são executadas como se fossem sequenciais, eliminando todas as anomalias.
A principal diferença é o equilíbrio entre desempenho e isolamento rigoroso. Quanto mais alto for o nível, menor será o paralelismo, mas maior será a integridade dos dados.