Sobes.tech
Senior

Koje vrste transakcija poznaješ? Čemu služe?

sobes.tech АИ

Одговор од АИ

U Go, transakcije su obično povezane s bazama podataka i koriste se za osiguranje ACID svojstava (atomičnost, konzistentnost, izolacija, trajnost).

Vrste transakcija:

  • Automatske transakcije — kada se svaka operacija izvršava kao odvojena transakcija.
  • Ekslicitne transakcije — kada programer eksplicitno započinje, potvrđuje ili poništava transakciju pomoću metoda Begin(), Commit(), Rollback().
  • Dugotrajne transakcije — koriste se u distribuiranim sistemima, gde transakcija može trajati dugo i zahteva koordinaciju.

Zašto su transakcije potrebne:

  • Garantuje da će grupa operacija biti izvršena u celosti ili nikako.
  • Sprečavaju uslove trke i obezbeđuju integritet podataka.
  • Omogućavaju vraćanje promena u slučaju grešaka.

Primer korišćenja transakcije u Go sa bazom podataka:

tx, err := db.Begin()
if err != nil {
    log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}
err = tx.Commit()
if err != nil {
    log.Fatal(err)
}