Sobes.tech
Junior — Middle

Ce metode se utilizează pentru a menține coerența datelor în bazele de date relaționale?

sobes.tech AI

Răspuns de la AI

Pentru a menține coerența datelor în bazele de date relaționale, se aplică următoarele metode:

  1. Tranzacții — permit executarea unui set de operațiuni ca o singură unitate. Dacă o operațiune eșuează, toate modificările sunt anulate, asigurând integritatea datelor.

  2. Principiile ACID:

    • Atomicitate — operațiunile din cadrul unei tranzacții sunt executate complet sau deloc.
    • Consistență — baza de date trece de la o stare corectă la alta.
    • Izolare — tranzacțiile paralele nu se influențează reciproc.
    • Durabilitate — odată confirmată, tranzacția rămâne, chiar și în caz de defecțiuni.
  3. Restricții de integritate: chei primare, chei externe, restricții unice, verificări (CHECK), care previn introducerea de date incorecte.

  4. Blocări și niveluri de izolare — gestionează accesul concurent, prevenind conflictele și asigurând coerența.

Exemplu în Go cu utilizarea tranzacțiilor:

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

În acest exemplu, transferul de bani între conturi are loc în cadrul unei singure tranzacții, garantând coerența datelor.