Ma'lumotlar bazalarida ko'p qiymatli qaramlik

Mundarija:

Ma'lumotlar bazalarida ko'p qiymatli qaramlik
Ma'lumotlar bazalarida ko'p qiymatli qaramlik
Anonim

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.

Image
Image

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.

Tavsiya: