Sobes.tech
Junior

Jadvalda munosabat nima uchun kerak?

sobes.tech AI

AIdan javob

Ma'lumotlar bazasida jadvallar o'rtasidagi munosabat yoki bog'lanish quyidagilar uchun zarur:

  • Ma'lumotlarning ortiqchasini bartaraf qilish: Bir nechta jadvalda ma'lumotlarni takrorlash o'rniga, ularni bitta jadvalda saqlash va boshqalar unga murojaat qilishadi. Bu joyni tejash va yangilashni soddalashtiradi.
  • Ma'lumotlarning yaxlitligini ta'minlash: Munosabatlar ma'lumotlarning izchilligini saqlashga yordam beradi. Masalan, agar bir jadvalda satr o'chirilsa, unga murojaat qilayotgan boshqa jadvaldagi satr o'chib bo'lmaydi (cheklov turiga qarab).
  • So'rovlarni soddalashtirish: JOIN operatsiyalari yordamida bir nechta jadvaldan bog'langan ma'lumotlarni osongina olish imkonini beradi.
  • Ma'lumotlar bazasi tuzilmasini yaratish: Haqiqiy dunyo ob'ektlari o'rtasidagi mantiqiy bog'lanishni aks ettiradi, bu esa ma'lumotlar bazasining tuzilishini tushunarli va tartibli qiladi.

Munosabat turlarining misollari:

  • Bir-bir (One-to-one): A jadvalidagi bir satr faqat B jadvidagi bir satr bilan bog'liq va aksincha.
  • Bir-ko'p (One-to-many): A jadvidagi bir satr B jadvidagi bir nechta satr bilan bog'liq bo'lishi mumkin, lekin B jadvidagi satr faqat A jadvidagi bitta satr bilan bog'liq.
  • Ko'p-ko'p (Many-to-many): A jadvidagi satr B jadvidagi bir nechta satr bilan bog'liq bo'lishi mumkin va aksincha. Bu odatda oraliq jadval orqali amalga oshiriladi.

SQL misolida amalga oshirish:

CREATE TABLE mijozlar (
    mijoz_id INT PRIMARY KEY,
    ism VARCHAR(255)
);

CREATE TABLE buyurtmalar (
    buyurtma_id INT PRIMARY KEY,
    buyurtma_sanasi DATE,
    mijoz_id INT,
    FOREIGN KEY (mijoz_id) REFERENCES mijozlar(mijoz_id) // "bir-ko'p" munosabat: bir mijozning ko'plab buyurtmalari bo'lishi mumkin
);