Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.
  3. Integritet cheklovlari: asosiy kalitlar, tashqi kalitlar, yagona cheklovlar, tekshiruvlar (CHECK) — noto'g'ri ma'lumotlarning kirib kelishini oldini oladi.

  4. 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.