Sobes.tech
Junior — Middle

Ma'lumotlar bazalari qanday usullar bilan poyga sharoitlariga qarshi himoya qiladi?

sobes.tech AI

AIdan javob

Ma'lumotlar bazalarida poydevor shartlaridan himoyalanish uchun quyidagi usullar qo'llaniladi:

  • Transaktsiyalar va blokirovkalar: ma'lumotlar bazalari yozuv, sahifa yoki jadval darajasida blokirovkalarni qo'llaydi, shunda bir vaqtning o'zida bir xil ma'lumotlarni o'zgartirish oldini oladi.
  • Transaktsiya izolyatsiyasi: izolyatsiya darajalari (Read Uncommitted, Read Committed, Repeatable Read, Serializable) transaktsiyalar o'rtasidagi o'zgarishlarni ko'rinishini boshqaradi va nizolar ehtimolini kamaytiradi.
  • Optimistik blokirovka: ma'lumotlarni yangilashda, ular o'qilganidan beri o'zgarganligini tekshiradi (masalan, versiya yoki vaqt markeri yordamida). Agar o'zgargan bo'lsa, operatsiya bekor qilinadi.
  • Pesimistik blokirovka: ma'lumotlar darhol o'qishda bloklanadi, shunda boshqa transaktsiyalar tomonidan o'zgartirishlar oldini olinadi.

Versiya yordamida optimistik blokirovka misoli:

// Jadvalda Version maydoni bor deb faraz qilamiz
var entity = dbContext.Entities.Find(id);
var currentVersion = entity.Version;

// Ma'lumotlarni o'zgartirish
entity.Name = "Yangi Nomi";

// Saqlashda, versiya o'zgarmaganligini tekshirish
try {
    dbContext.SaveChanges();
} catch (DbUpdateConcurrencyException) {
    // Nizo bilan ishlash — ma'lumotlar boshqa jarayon tomonidan o'zgartirilgan
}