Junior — Middle
Aké metódy sa používajú na zachovanie konzistencie údajov v relačných databázach?
sobes.tech AI
Odpoveď od AI
Na zachovanie konzistencie dát v relačných databázach sa používajú nasledujúce metódy:
-
Transakcie — umožňujú vykonanie súboru operácií ako celku. Ak jedna operácia zlyhá, všetky zmeny sa vrátia späť, čím sa zabezpečí integrita dát.
-
Princípy ACID:
- Atomickosť — operácie v rámci transakcie sa vykonajú úplne alebo vôbec.
- Konzistentnosť — databáza prechádza z jedného správneho stavu do iného.
- Izolácia — paralelné transakcie sa navzájom neovplyvňujú.
- Trvácnosť — po potvrdení transakcie zostávajú zmeny aj pri zlyhaní.
-
Obmedzenia integrity: primárne kľúče, cudzie kľúče, jedinečné obmedzenia, kontroly (CHECK), ktoré zabraňujú nesprávnym dátam.
-
Zámky a úrovne izolácie — riadia súbežný prístup, zabraňujú konfliktom a zabezpečujú konzistenciu.
Príklad v Go s použitím transakcií:
trx, err := db.Begin()
if err != nil {
// spracovanie chyby
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
trx.Rollback()
// spracovanie chyby
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
trx.Rollback()
// spracovanie chyby
}
err = trx.Commit()
if err != nil {
// spracovanie chyby
}
V tomto príklade sa prevod peňazí medzi účtami vykonáva v rámci jednej transakcie, čo garantuje konzistenciu dát.