Sobes.tech
Junior — Middle

Verilənlər bazalarının hansı metodları yarış şəraitinə qarşı qoruma təmin edir?

sobes.tech Süni İntellekt

AI-dan cavab

Verilənlər bazalarında yarış şəraitindən qorunmaq üçün aşağıdakı metodlar istifadə olunur:

  • Əməliyyatlar və kilidləmələr: verilənlər bazaları eyni məlumatların eyni vaxtda dəyişdirilməsinin qarşısını almaq üçün sətir, səhifə və ya cədvəl səviyyəsində kilidləmələr tətbiq edir.
  • Əməliyyatların izolasyonu: izolasiya səviyyələri (Read Uncommitted, Read Committed, Repeatable Read, Serializable) əməliyyatlar arasında dəyişikliklərin görünürlüğünü tənzimləyir və münaqişələrin ehtimalını azaldır.
  • Optimist kilidləmə: məlumatlar yenilənərkən, onların oxunmasından bəri dəyişmədikləri yoxlanır (məsələn, versiya və ya zaman nişanı ilə). Əgər dəyişibsə, əməliyyat geri alınır.
  • Pesimist kilidləmə: məlumatlar dərhal oxunarkən kilidlənir ki, digər əməliyyatlar tərəfindən dəyişikliklərə yol verilməsin.

Versiya istifadə edilərək optimist kilidləmə nümunəsi:

// Cədvəldə Version sahəsinin olduğunu fərz edək
var entity = dbContext.Entities.Find(id);
var currentVersion = entity.Version;

// Məlumatları dəyişdirin
entity.Name = "Yeni Ad";

// Yadda saxlamada, versiyanın dəyişmədiyini yoxlayın
try {
    dbContext.SaveChanges();
} catch (DbUpdateConcurrencyException) {
    // Münaqişənin idarə olunması — məlumatlar başqa bir proses tərəfindən dəyişdirilib
}