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
}