Өгөгдлийн сан дахь олон утгат хамаарал

Агуулгын хүснэгт:

Өгөгдлийн сан дахь олон утгат хамаарал
Өгөгдлийн сан дахь олон утгат хамаарал
Anonim

Харилцааны өгөгдлийн санд нэг өгөгдлийн сангийн хүснэгтэд хадгалагдсан мэдээлэл нь тухайн хүснэгтэд хадгалагдсан бусад мэдээллийг өвөрмөц байдлаар тодорхойлох үед хамаарал үүсдэг. Хүснэгтэд нэг буюу хэд хэдэн мөр байгаа нь тухайн хүснэгтэд нэг буюу хэд хэдэн мөр байгааг илтгэх үед олон утгатай хамаарал үүсдэг. Өөрөөр хэлбэл, хүснэгтийн хоёр шинж чанар (эсвэл багана) нь бие биенээсээ хамааралгүй боловч хоёулаа гуравдагч шинж чанараас хамаардаг.

Image
Image

Олон утгат хамаарал нь дөрөв дэх хэвийн хэлбэрийг хэвийн болгохоос сэргийлдэг. Харилцааны мэдээллийн сан нь бичлэгийн дизайны удирдамжийг төлөөлдөг ердийн таван хэлбэрийг дагаж мөрддөг. Эдгээр нь өгөгдлийн шинэчлэлтийн гажуудал, зөрчилдөөнөөс сэргийлдэг. Дөрөв дэх ердийн хэлбэр нь өгөгдлийн сан дахь олон нэгтэй харилцах харилцааг харуулдаг.

Функциональ хамаарал ба олон утгат хамаарал

Олон утгат хамаарлыг ойлгохын тулд функциональ хамаарал гэж юу болохыг эргэн харах нь тустай.

Хэрэв X шинж чанар нь Y-г өвөрмөц байдлаар тодорхойлдог бол Y нь X-ээс функциональ хамааралтай байна. Үүнийг X -> Y гэж бичнэ. Жишээлбэл, доорх Оюутны хүснэгтэд Оюутны_Нэр нь үндсэн мэргэжлийг тодорхойлно:

Оюутны_Нэр Хошууч
Ravi Урлагийн түүх
Бет Хими

Энэ функциональ хамаарлыг бичиж болно: Оюутны_Нэр -> Гол. Оюутны_Нэр бүр яг нэг мэргэжлийг тодорхойлдог бөгөөд үүнээс илүүгүй.

Хэрэв та мэдээллийн санд оюутнуудын хичээллэдэг спортыг хянахыг хүсвэл үүнийг хийх хамгийн хялбар арга бол Спорт гэсэн өөр багана нэмэх явдал гэж бодож магадгүй:

Оюутны_Нэр Хошууч Спорт
Ravi Урлагийн түүх Хөлбөмбөг
Ravi Урлагийн түүх Воллейбол
Ravi Урлагийн түүх Теннис
Бет Хими Теннис
Бет Хими Хөлбөмбөг

Энд байгаа асуудал бол Рави, Бет хоёр хэд хэдэн спортоор хичээллэдэг. Нэмэлт спорт бүрт шинэ мөр нэмэх шаардлагатай.

Мэргэжлийн болон спорт нь бие биенээсээ хамааралгүй боловч хоёулаа суралцагчаас хамаардаг тул энэ хүснэгтэд олон утгат хамаарлыг оруулсан болно. Энэ бол энгийн жишээ бөгөөд тодорхойлоход хялбар боловч олон утгын хамаарал нь том, нарийн төвөгтэй мэдээллийн санд асуудал болж болзошгүй.

Олон утгат хамаарлыг X ->-> Y гэж бичнэ. Энэ тохиолдолд:

Оюутны_Нэр ->-> Хошууч

Оюутны_Нэр 5-6-4 > Спорт

Үүнийг "Оюутны_Нэр мэргэжлийг олон талт тодорхойлдог" ба "Оюутны_Нэр спортыг олон талт тодорхойлдог" гэж уншдаг.

Олон утгат хамаарал нь гуравны нэгээс хамааралтай дор хаяж хоёр шинж чанараас бүрддэг тул үргэлж дор хаяж гурван шинж чанарыг шаарддаг.

Олон утгат хамаарал ба хэвийн байдал

Олон утгат хамаарал бүхий хүснэгт нь 4 дэх хэвийн хэлбэрийн нормчлолын стандартыг зөрчиж байна, учир нь энэ нь шаардлагагүй илүүдэл үүсгэж, зөрчилтэй өгөгдөлд хувь нэмэр оруулах боломжтой. Үүнийг 4NF болгохын тулд энэ мэдээллийг хоёр хүснэгтэд хуваах шаардлагатай.

Доорх хүснэгтэд одоо Оюутны_Нэр -> Голын функциональ хамаарал байгаа бөгөөд олон утгат хамаарал байхгүй:

Оюутны_Нэр Хошууч
Ravi Урлагийн түүх
Ravi Урлагийн түүх
Ravi Урлагийн түүх
Бет Хими
Бет Хими

Энэ хүснэгтэд мөн Оюутны_Нэр -> Спорт: гэсэн ганц функциональ хамааралтай байдаг.

Оюутны_Нэр Спорт
Ravi Хөлбөмбөг
Ravi Воллейбол
Ravi Теннис
Бет Теннис
Бет Хөлбөмбөг

Нэг хүснэгтийг хэт их ялгаатай мэдээлэл агуулсан болгохыг оролдохын оронд нэг санаа эсвэл сэдэвтэй холбоотой мэдээллийг агуулсан байхаар нарийн төвөгтэй хүснэгтүүдийг хялбарчлах замаар нормчилдог.

Зөвлөмж болгож буй: