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

  1. Read Uncommitted — uma transação pode ver alterações não confirmadas de outras (leitura suja).
  2. Read Committed — apenas alterações confirmadas são visíveis, mas podem ocorrer leituras não repetíveis.
  3. Repeatable Read — garante que uma leitura repetida dos mesmos dados numa transação dará o mesmo resultado, mas podem ocorrer leituras fantasmas (novas linhas).
  4. 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.