Sobes.tech
Principal

Czym są transakcje w bazach danych? Jakie są poziomy izolacji transakcji, co one oznaczają i jaka jest główna różnica?

sobes.tech AI

Odpowiedź od AI

Transakcja w bazie danych to logicznie powiązana sekwencja operacji, która jest wykonywana jako jedna całość. Główne właściwości transakcji opisuje akronim ACID:

  • Atomowość — wszystkie operacje transakcji są wykonywane w całości lub wcale.
  • Spójność — transakcja przenosi bazę z jednego poprawnego stanu do innego.
  • Izolacja — równoległe transakcje nie wpływają na siebie nawzajem.
  • Trwałość — po zatwierdzeniu (commit) zmiany są zachowywane nawet w przypadku awarii.

Poziomy izolacji transakcji określają stopień widoczności zmian jednej transakcji dla innych i wpływają na możliwe anomalie:

  1. Read Uncommitted — transakcja może widzieć niezatwierdzone zmiany innych (brudne odczyty).
  2. Read Committed — widoczne są tylko zatwierdzone zmiany, ale mogą wystąpić niepowtarzalne odczyty.
  3. Repeatable Read — gwarantuje, że powtarzalne odczyty tych samych danych w transakcji dadzą ten sam wynik, ale mogą wystąpić odczyty fantomowe (nowe wiersze).
  4. Serializable — najbardziej rygorystyczny poziom, transakcje są wykonywane tak, jakby były sekwencyjne, eliminując wszystkie anomalie.

Główna różnica polega na równowadze między wydajnością a ścisłą izolacją. Im wyższy poziom, tym mniejszy paralelizm, ale większa integralność danych.