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
}