Sobes.tech
Junior — Middle

Можеш ли набројати различите нивое изолације трансакција у базама података и објаснити њихову разлику?

sobes.tech АИ

Одговор од АИ

U bazama podataka postoje nekoliko standardnih nivoa izolacije transakcija, koji određuju kako i kada promene koje je jedna transakcija napravila postaju vidljive drugim transakcijama. Glavni nivoi izolacije:

  1. Read Uncommitted (Čitanje nepotvrđeno)

    • Transakcija može videti promene drugih transakcija, čak i ako one još nisu potvrđene.
    • Moguće su "prljave čitanja" (dirty reads).
  2. Read Committed (Potvrđeno čitanje)

    • Transakcija vidi samo one promene koje su potvrđene.
    • Uklanja prljave čitanja, ali mogući su neponovljivi pregledi.
  3. Repeatable Read (Ponovljivo čitanje)

    • Garantuje da će podaci pročitani u transakciji ostati nepromenjeni pri ponovnom čitanju.
    • Uklanja neponovljive čitanja, ali mogući su fantomski pregledi.
  4. Serializable (Serijalizabilno)

    • Najstroži nivo izolacije.
    • Transakcije se izvršavaju kao da se izvršavaju sekvencijalno, jedna za drugom.
    • Uklanja fantomske čitanja i obezbeđuje potpunu izolaciju.

Izbor nivoa izolacije utiče na performanse i integritet podataka: stroži nivoi obezbeđuju veću integritet, ali mogu smanjiti paralelizam i povećati blokade.