Sobes.tech
Junior — Middle

İlişkisel veritabanlarında veri tutarlılığını sağlamak için hangi yöntemler kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

İlişkisel veritabanlarında verilerin tutarlılığını sağlamak için aşağıdaki yöntemler uygulanır:

  1. İşlemler (Transaksiyonlar) — bir dizi işlemi tek bir bütün olarak yürütmeye olanak tanır. Bir işlem başarısız olursa, tüm değişiklikler geri alınır ve veri bütünlüğü sağlanır.

  2. ACID ilkeleri:

    • Atomiklik — bir işlemin içindeki tüm adımlar ya tamamen gerçekleştirilir ya da hiç yapılmaz.
    • Tutarlılık — veritabanı doğru bir durumdan başka doğru bir duruma geçer.
    • İzolasyon — paralel işlemler birbirini etkilemez.
    • Dayanıklılık — bir işlem onaylandıktan sonra, değişiklikler arızalara rağmen korunur.
  3. Bütünlük kısıtlamaları (constraints): birincil anahtarlar, yabancı anahtarlar, benzersiz kısıtlamalar, kontroller (CHECK) gibi yanlış veya hatalı verileri engelleyen kurallar.

  4. Kilitler ve izolasyon seviyeleri — eşzamanlı erişimi yönetir, çatışmaları önler ve tutarlılığı sağlar.

Go dilinde işlem kullanımıyla örnek:

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

Bu örnekte, hesaplar arasındaki para transferi tek bir işlem kapsamında gerçekleşir, bu da veri tutarlılığını garanti eder.