Bosh sahifa Wiki Relationship

Relationship

Relationship — ma’lumotlar modelidagi ikki yoki undan ortiq obyekt turi o‘rtasidagi mazmunli bog‘lanishdir. Relyatsion bazada u tashqi kalit va bog‘lovchi jadval orqali, grafik bazada esa odatda alohida qirra orqali ifodalanadi. Relationship obyektlarning bir-biriga qanday tegishli ekanini, bog‘lanish sonini va yaxlitlik qoidalarini aniq ko‘rsatadi.

Kardinallik

Kardinallik bir obyekt nechta boshqa obyekt bilan bog‘lanishi mumkinligini belgilaydi. Birga-bir aloqada har ikki tomonda ko‘pi bilan bittadan mos yozuv bor. Birga-ko‘p aloqada, masalan, bitta mijozda ko‘plab buyurtma bo‘lishi mumkin. Ko‘pga-ko‘p aloqada talabalar ko‘plab kurslarga, kurslar esa ko‘plab talabalarga bog‘lanadi.

Tur Misol Odatdagi amalga oshirish
Birga-bir Shaxs va pasport noyob tashqi kalit
Birga-ko‘p Mijoz va buyurtma “ko‘p” tomondagi tashqi kalit
Ko‘pga-ko‘p Talaba va kurs bog‘lovchi jadval

Majburiylik ham muhim: buyurtma mijozsiz mavjud bo‘la olmasligi mumkin, profil rasmi esa ixtiyoriydir. Bu cheklovlar NOT NULL, tashqi kalit yoki grafik sxema qoidalari bilan mustahkamlanadi.

Relyatsion ifoda

Relyatsion modelda bog‘lanish kalit qiymatlari orqali hosil qilinadi. Masalan, buyurtma.mijoz_id ustuni mijoz.id ga murojaat qiladi. Tashqi kalit mavjud bo‘lmagan mijozga buyurtma yozilishini to‘sadi. O‘chirish paytidagi RESTRICT, CASCADE yoki SET NULL siyosati bog‘liq yozuvlar taqdirini belgilaydi.

Ko‘pga-ko‘p aloqa uchun talaba_kurs kabi oraliq jadval yaratiladi. U faqat ikkita kalitni emas, ro‘yxatdan o‘tish sanasi yoki baho kabi aloqaning o‘ziga tegishli atributlarni ham saqlashi mumkin. Bunday atributni tomonlardan biriga ko‘chirish semantik xatoga olib keladi.

Grafik ifoda

Property graphda relationship ko‘pincha yo‘nalgan va nomlangan qirradir. SHAXS-[:ISHLAYDI]->KOMPANIYA yozuvi aloqaning ma’nosi va yo‘nalishini bevosita bildiradi. Qirraga boshlanish_sanasi yoki lavozim xususiyati biriktirilishi mumkin. Traversiya bir tugundan bog‘langan tugunlarga o‘tadi, shuning uchun ko‘p bosqichli aloqa so‘rovlari tabiiy ifodalanadi.

Yo‘nalish har doim jismoniy bir tomonlama ma’noni anglatmaydi. “Do‘st” simmetrik bo‘lsa, tizim bitta qirrani ikki yo‘nalishda talqin qilishi yoki ikkita qirra saqlashi mumkin. Tanlangan qoida barcha yozish va so‘rovlarda bir xil bo‘lishi kerak.

Modellash sifati

Relationship nomi biznes ma’nosini aniq ifodalashi lozim. Juda umumiy BOGLIQ qirrasi turli semantikalarni aralashtirib yuboradi. Aksincha, keragidan ortiq mayda turlar sxemani boshqarishni qiyinlashtiradi. Vaqt bo‘yicha o‘zgaradigan aloqalarda amal qilish oralig‘i yoki tarixiy yozuvlar saqlanadi; eski holatni shunchaki o‘chirish audit talablariga mos kelmasligi mumkin.

Indekslar tashqi kalit bo‘yicha birlashtirishni tezlashtiradi, grafik tizimlarda esa qo‘shnichilik tuzilmasi qirralar bo‘ylab yurishni qo‘llaydi. Yaxlitlik, kardinallik va takrorlanishni nazorat qilish dastur kodiga butunlay tashlab qo‘yilsa, parallel yozuvlar nomuvofiq holat yaratishi mumkin. Shu sababli imkon qadar ma’lumotlar bazasi cheklovlari va tranzaksiyalardan foydalaniladi.

So‘rov va evolyutsiya

Bog‘lanishlar ko‘payganda N+1 so‘rov muammosi yuzaga kelishi mumkin: dastur asosiy ro‘yxatdan keyin har element uchun alohida so‘rov yuboradi. Birlashtirish, oldindan yuklash yoki batch o‘qish tarmoq qatnovini kamaytiradi. Sxema o‘zgarganda yangi relationshipni orqaga mos migratsiya bilan kiritish, eski yozuvlarni to‘ldirish va ikki xil model vaqtincha yonma-yon ishlashini nazorat qilish zarur. Migratsiya yakunlangach eski bog‘lanish yozuvlari va kod yo‘llari ehtiyotkorlik bilan olib tashlanadi.

Bog‘liq tushunchalar

Tashqi kalit, Kardinallik, Bog‘lovchi jadval, Property graph, Qirra, Ma’lumotlar yaxlitligi