Sobes.tech
Principal

Šta su transakcije u bazama podataka? Koji su nivoi izolacije transakcija, kakvog su značenja i koja je glavna razlika?

sobes.tech АИ

Одговор од АИ

Transakcija u bazi podataka je logički povezani niz operacija koji se izvršava kao jedinstvena celina. Glavne osobine transakcija opisuju se akronimom ACID:

  • Atomost — sve operacije transakcije se izvršavaju u potpunosti ili se uopšte ne izvršavaju.
  • Konzistentnost — transakcija prenosi bazu iz jednog ispravnog stanja u drugo.
  • Izolacija — paralelne transakcije ne utiču jedna na drugu.
  • Izdržljivost — nakon potvrde (commit), promene ostaju čak i u slučaju kvara.

Nivoi izolacije transakcija određuju stepen vidljivosti promena jedne transakcije za druge i utiču na moguće anomalije:

  1. Read Uncommitted — transakcija može videti nepotvrđene promene drugih (prljavo čitanje).
  2. Read Committed — vide se samo potvrđene promene, ali mogu nastati neponovljive čitanja.
  3. Repeatable Read — garantuje da će ponovljeno čitanje istih podataka dati isti rezultat, ali mogu nastati fantomska čitanja (nove redove).
  4. Serializable — najstroži nivo, transakcije se izvršavaju kao da su sekvencijalne, eliminirajući sve anomalije.

Glavna razlika je u ravnoteži između performansi i stroge izolacije. Što je viši nivo, to je manji paralelizam, ali veći integritet podataka.