Sobes.tech
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:

  1. Transaktsioonid — võimaldavad täita operatsioonide komplekti kui ühtset tervikut. Kui üks operatsioonidest ebaõnnestub, tühistatakse kõik muudatused, tagades andmete terviklikkuse.

  2. 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.
  3. Kinnitused (constraints): primaarvõtmed, välisvõtmed, unikaalsed piirangud, kontrollid (CHECK), mis takistavad ebaõigeid andmeid.

  4. 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.