Relyatsion ma'lumotlar bazasida bir xil ma'lumotlar bazasi jadvalida saqlangan ma'lumotlar bir xil jadvalda saqlangan boshqa ma'lumotlarni yagona aniqlaganda, qaramlik yuzaga keladi. Ko'p qiymatli bog'liqlik jadvalda bir yoki bir nechta satr mavjudligi xuddi shu jadvalda bir yoki bir nechta boshqa qatorlar mavjudligini nazarda tutganda yuzaga keladi. Boshqacha qilib aytganda, jadvaldagi ikkita atribut (yoki ustun) bir-biridan mustaqil, lekin ikkalasi ham uchinchi atributga bog‘liq.
Ko'p qiymatli bog'liqlik to'rtinchi normal shaklni normallashtirish standartini oldini oladi. Relyatsion ma'lumotlar bazalari yozuvlarni loyihalash bo'yicha ko'rsatmalarni ifodalovchi beshta oddiy shaklga amal qiladi. Ular yangilanish anomaliyalari va ma'lumotlardagi nomuvofiqliklarning oldini oladi. To'rtinchi oddiy shakl ma'lumotlar bazasidagi ko'p-bir munosabatlarga tegishli.
Funktsional bog'liqlik va ko'p qiymatli bog'liqlik
Ko'p qiymatli qaramlikni tushunish uchun funksional qaramlik nima ekanligini qayta ko'rib chiqish foydali bo'ladi.
Agar X atributi Y atributini yagona aniqlasa, Y funksional jihatdan X ga bogʻliq boʻladi. Bu X -> Y sifatida yoziladi. Masalan, quyidagi Talabalar jadvalida Talaba_Nomi mutaxassislikni aniqlaydi:
Talaba_ismi | Major |
---|---|
Ravi | San'atTarixi |
Bet | Kimyo |
Ushbu funktsional bogʻliqlikni yozish mumkin: Talaba_Ismi -> Major. Har bir Talaba_Nomi aynan bitta yoʻnalishni belgilaydi va ortiq emas.
Agar siz maʼlumotlar bazasi oʻquvchilar shugʻullanayotgan sport turlarini ham kuzatib borishini istasangiz, buni amalga oshirishning eng oson yoʻli “Sport” sarlavhali boshqa ustunni qoʻshishdir:
Talaba_ismi | Major | Sport |
---|---|---|
Ravi | San'atTarixi | Futbol |
Ravi | San'atTarixi | Voleybol |
Ravi | San'atTarixi | Tennis |
Bet | Kimyo | Tennis |
Bet | Kimyo | Futbol |
Bu erda muammo shundaki, Ravi ham, Bet ham bir nechta sport turlari bilan shug'ullanadi. Har bir qoʻshimcha sport turi uchun yangi qator qoʻshish kerak.
Bu jadval koʻp qiymatli bogʻliqlikni kiritdi, chunki mutaxassislik va sport bir-biridan mustaqil, lekin ikkalasi ham talabaga bogʻliq. Bu oddiy misol va uni osongina aniqlash mumkin, lekin koʻp qiymatli bogʻliqlik katta va murakkab maʼlumotlar bazasida muammoga aylanishi mumkin.
Ko'p qiymatli bog'liqlik X ->-> Y yoziladi. Bu holda:
Talaba_Ismi ->-> Major
Talaba_Ismi -2-4 > Sport
Bu "Talaba_ismi koʻp yoʻnalishni belgilaydi" va "Talaba_ismi sportni koʻp jihatdan aniqlaydi" deb oʻqiladi.
Koʻp qiymatli bogʻliqlik har doim kamida uchta atributni talab qiladi, chunki u uchinchisiga bogʻliq boʻlgan kamida ikkita atributdan iborat.
Ko'p qiymatli qaramlik va normalizatsiya
Koʻp qiymatli bogʻliqlikka ega jadval toʻrtinchi normal shaklning normallashtirish standartini buzadi, chunki u keraksiz ortiqcha qismlarni yaratadi va nomuvofiq maʼlumotlarga hissa qoʻshishi mumkin. Buni 4NF ga oshirish uchun bu maʼlumotni ikkita jadvalga boʻlish kerak.
Quyidagi jadvalda endi Student_Name -> Major funksional bogʻliqligi bor va koʻp qiymatli bogʻliqliklar yoʻq:
Talaba_ismi | Major |
---|---|
Ravi | San'atTarixi |
Ravi | San'atTarixi |
Ravi | San'atTarixi |
Bet | Kimyo |
Bet | Kimyo |
Bu jadvalda Talaba_ismining yagona funksional bogʻliqligi ham bor -> Sport:
Talaba_ismi | Sport |
---|---|
Ravi | Futbol |
Ravi | Voleybol |
Ravi | Tennis |
Bet | Tennis |
Bet | Futbol |
Normallashtirish koʻpincha murakkab jadvallarni soddalashtirish orqali amalga oshiriladi, shunda ular bitta jadvalda juda koʻp turli xil maʼlumotlarni oʻz ichiga olishi oʻrniga ularda bitta gʻoya yoki mavzuga oid maʼlumotlar mavjud boʻladi.