Sobes.tech
Junior — Middle

Koje metode koriste za očuvanje konzistentnosti podataka u relacionim bazama podataka?

sobes.tech АИ

Одговор од АИ

Za očuvanje konzistentnosti podataka u relacijskim bazama podataka primenjuju se sledeće metode:

  1. Transakcije — omogućavaju izvršenje skupa operacija kao celina. Ako jedna operacija ne uspe, sve promene se poništavaju, obezbeđujući integritet podataka.

  2. ACID principi:

    • Atomisnost — operacije unutar transakcije se ili u potpunosti izvršavaju ili uopšte ne.
    • Konzistentnost — baza prelazi iz jednog ispravnog stanja u drugo.
    • Izolacija — paralelne transakcije ne utiču jedna na drugu.
    • Trajnost — nakon potvrde, promene ostaju čak i u slučaju kvara.
  3. Ograničenja integriteta: primarni ključevi, strani ključevi, jedinstvena ograničenja, provere (CHECK), koja sprečavaju unos netačnih podataka.

  4. Zaključavanja i nivoi izolacije — upravljaju paralelnim pristupom, sprečavaju konflikte i obezbeđuju konzistentnost.

Primer u Go-u sa korišćenjem transakcija:

trx, err := db.Begin()
if err != nil {
    // obrada greške
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
    trx.Rollback()
    // obrada greške
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
    trx.Rollback()
    // obrada greške
}
err = trx.Commit()
if err != nil {
    // obrada greške
}

U ovom primeru, transfer novca između računa se obavlja u okviru jedne transakcije, što garantuje konzistentnost podataka.