İ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:
-
İş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.
-
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.
-
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.
-
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.