Sobes.tech
Junior — Middle

Milyen módszereket használnak az adatok konzisztenciájának megőrzésére relációs adatbázisokban?

sobes.tech MI

Válasz az MI-től

Az adatok összhangjának fenntartása érdekében relációs adatbázisokban a következő módszereket alkalmazzák:

  1. Tranzakciók — lehetővé teszik, hogy egy műveletsorozatot egységként hajtsunk végre. Ha egy művelet nem sikerül, minden változtatás visszavonásra kerül, biztosítva az adatok integritását.

  2. ACID-elvek:

    • Atomitás — a tranzakcióban lévő műveletek vagy teljes egészében végrehajtódnak, vagy egyáltalán nem.
    • Konzisztencia — az adatbázis egyik helyes állapotból a másikba lép.
    • Izoláció — párhuzamos tranzakciók nem befolyásolják egymást.
    • Tartósság — a tranzakció megerősítése után a változások még hibák esetén is megmaradnak.
  3. Integritási korlátozások: elsődleges kulcsok, idegen kulcsok, egyedi korlátozások, ellenőrzések (CHECK), amelyek megakadályozzák a hibás adatok bevitelét.

  4. Zárolások és izolációs szintek — kezelik a párhuzamos hozzáférést, megelőzve a konfliktusokat és biztosítva az összhangot.

Példa Go nyelven tranzakciók használatával:

trx, err := db.Begin()
if err != nil {
    // hiba kezelése
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
    trx.Rollback()
    // hiba kezelése
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
    trx.Rollback()
    // hiba kezelése
}
err = trx.Commit()
if err != nil {
    // hiba kezelése
}

Ebben a példában a pénzátutalás a számlák között egyetlen tranzakcióban történik, ami garantálja az adatok összhangját.