Junior — Middle
Jaké metody se používají k zachování konzistence dat v relačních databázích?
sobes.tech AI
Odpověď od AI
Pro zachování konzistence dat v relačních databázích se používají následující metody:
-
Transakce — umožňují provádět sadu operací jako jeden celek. Pokud jedna operace selže, všechny změny jsou vráceny zpět, čímž je zajištěna integrita dat.
-
Principy ACID:
- Atomicita — operace v rámci transakce jsou buď úplně provedeny, nebo vůbec.
- Konzistence — databáze přechází z jednoho správného stavu do jiného.
- Izolace — paralelní transakce na sebe navzájem neovlivňují.
- Důvěrnost — po potvrzení transakce zůstávají změny zachovány i při selhání.
-
Omezení integrity: primární klíče, cizí klíče, unikátní omezení, kontroly (CHECK), které zabraňují nesprávným datům.
-
Zámky a úrovně izolace — řídí souběžný přístup, předcházejí konfliktům a zajišťují konzistenci.
Příklad v Go s použitím transakcí:
trx, err := db.Begin()
if err != nil {
// zpracování chyby
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
trx.Rollback()
// zpracování chyby
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
trx.Rollback()
// zpracování chyby
}
err = trx.Commit()
if err != nil {
// zpracování chyby
}
V tomto příkladu se převod peněz mezi účty provádí v rámci jedné transakce, což zaručuje konzistenci dat.