Junior — Middle
What methods are used to maintain data consistency in relational databases?
sobes.tech AI
Answer from AI
The following methods are used to maintain data consistency in relational databases:
-
Transactions — allow executing a set of operations as a single unit. If one operation fails, all changes are rolled back, ensuring data integrity.
-
ACID principles:
- Atomicity — operations within a transaction are executed completely or not at all.
- Consistency — the database transitions from one correct state to another.
- Isolation — parallel transactions do not affect each other.
- Durability — after a transaction is committed, changes are saved even in case of failures.
-
Integrity constraints: primary keys, foreign keys, unique constraints, checks (CHECK), which prevent incorrect data.
-
Locks and isolation levels — manage concurrent access, prevent conflicts, and ensure consistency.
Example in Go using a transaction:
trx, err := db.Begin()
if err != nil {
// handle error
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
trx.Rollback()
// handle error
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
trx.Rollback()
// handle error
}
err = trx.Commit()
if err != nil {
// handle error
}
In this example, transferring money between accounts occurs within a single transaction, which guarantees data consistency.