Relatsion bazalarda ma'lumotlarning muvofiqligini saqlash uchun qanday usullar qo'llaniladi?
sobes.tech AI
AIdan javob
Relatsion bazalarda ma'lumotlarning izchilligini ta'minlash uchun quyidagi usullar qo'llaniladi:
-
Transaktsiyalar — bir qator operatsiyalarni yagona birlik sifatida bajarishga imkon beradi. Agar biror operatsiya muvaffaqiyatsiz bo'lsa, barcha o'zgarishlar bekor qilinadi va ma'lumotlarning yaxlitligi ta'minlanadi.
-
ACID tamoyillari:
- Atomiklik — transaktsiya ichidagi operatsiyalar to'liq bajariladi yoki umuman bajarilmaydi.
- Mos kelishlik — ma'lumotlar bazasi bir holatdan to'g'ri holatga o'tadi.
- Izolyatsiya — parallel transaktsiyalar bir-biriga ta'sir qilmaydi.
- Barqarorlik — transaktsiya tasdiqlangandan so'ng, o'zgarishlar xatoliklar bo'lsa ham saqlanib qoladi.
-
Integritet cheklovlari: asosiy kalitlar, tashqi kalitlar, yagona cheklovlar, tekshiruvlar (CHECK) — noto'g'ri ma'lumotlarning kirib kelishini oldini oladi.
-
Blokirovka va izolyatsiya darajalari — parallel kirishni boshqaradi, nizolarni oldini oladi va izchillikni ta'minlaydi.
Go tilida transaktsiya bilan misol:
trx, err := db.Begin()
if err != nil {
// xatolikni boshqarish
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = ?", fromID)
if err != nil {
trx.Rollback()
// xatolikni boshqarish
}
_, err = trx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = ?", toID)
if err != nil {
trx.Rollback()
// xatolikni boshqarish
}
err = trx.Commit()
if err != nil {
// xatolikni boshqarish
}
Ushbu misolda, hisoblar o'rtasidagi pul o'tkazmasi bitta transaktsiya doirasida amalga oshiriladi, bu esa ma'lumotlarning izchilligini ta'minlaydi.