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:
-
Transakcije — omogućavaju izvršenje skupa operacija kao celina. Ako jedna operacija ne uspe, sve promene se poništavaju, obezbeđujući integritet podataka.
-
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.
-
Ograničenja integriteta: primarni ključevi, strani ključevi, jedinstvena ograničenja, provere (CHECK), koja sprečavaju unos netačnih podataka.
-
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.