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:
- Read Uncommitted — transakcija može videti nepotvrđene promene drugih (prljavo čitanje).
- Read Committed — vide se samo potvrđene promene, ali mogu nastati neponovljive čitanja.
- Repeatable Read — garantuje da će ponovljeno čitanje istih podataka dati isti rezultat, ali mogu nastati fantomska čitanja (nove redove).
- 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.