Junior — Middle
Milliseid meetodeid kasutatakse andmete järjepidevuse säilitamiseks relatsioonandmebaasides?
sobes.tech AI
Vastus AI-lt
Andmete konsistentsuse tagamiseks relatsioonilistes andmebaasides kasutatakse järgmisi meetodeid:
-
Transaktsioonid — võimaldavad täita operatsioonide komplekti kui ühtset tervikut. Kui üks operatsioonidest ebaõnnestub, tühistatakse kõik muudatused, tagades andmete terviklikkuse.
-
ACID põhimõtted:
- Atomicity (Aatomilisus) — transaktsiooni sees olevad operatsioonid täidetakse täielikult või mitte üldse.
- Consistency (Konsistentsus) — andmebaas liigub ühest kehtivast olekust teise.
- Isolation (Isoleeritus) — paralleelsed transaktsioonid ei mõjuta üksteist.
- Durability (Kestvus) — pärast transaktsiooni kinnitamist säilivad muudatused ka rikke korral.
-
Kinnitused (constraints): primaarvõtmed, välisvõtmed, unikaalsed piirangud, kontrollid (CHECK), mis takistavad ebaõigeid andmeid.
-
Lukud ja isoleerimistasemed — haldavad paralleelset juurdepääsu, vältides konflikte ja tagades konsistentsi.
Näide Go keeles transaktsiooniga:
tx, err := db.Begin()
if err != nil {
// vea töötlemine
}
_, err = tx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
tx.Rollback()
// vea töötlemine
}
_, err = tx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
tx.Rollback()
// vea töötlemine
}
err = tx.Commit()
if err != nil {
// vea töötlemine
}
Selles näites toimub raha ülekandmine kontode vahel ühe transaktsiooni raames, mis tagab andmete konsistentsuse.