Өгөгдлийн сангийн дизайн дахь олон талт хамтын ажиллагаа

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

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

Олон төрлийн хамааралтай хараат байдал нь хэвийн стандартыг 4-р хэвийн хэлбэрээр (4NF) саад болгодог. Холбогдох өгөгдлийн сан нь бичлэгийн загвар гаргах удирдамжийг төлөөлсөн таван хэвийн маягтыг дагаж мөрддөг. Эдгээр нь өгөгдлийн шинэчлэлтийн аномали болон үл нийцэлээс урьдчилан сэргийлдэг. Дөрөв дэх хэвийн хэлбэр нь өгөгдлийн санд байгаа олон-харилцан хамааралтай холбоотой байдаг.

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

Олон төрлийн хамааралтай хамааралтай байдлыг ойлгохын тулд чиг үүргийн хамаарал гэж юу болох талаар эргэж харах нь зүйтэй юм.

Хэрэв аттрибут X нь аттрибут Y-г төгс бус гэж үзвэл Y нь үйл ажиллагааны хувьд хамааралтай болно. Энэ нь X-> Y гэж бичигдсэн байдаг. Жишээ нь, Оюутны хүснэгтэнд Student_Name нь Major:

Оюутнууд
Student_Name Гол
Рави Урлагийн түүх
Бет Химийн


Энэ функцээс шалтгаалах хамаарлыг бичиж болно: Student_Name -> Major . Student_Name бүр нь яг нэг Major-г тодорхойлдог бөгөөд үүнээс цаашгүй.

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

Оюутнууд
Student_Name Гол Спорт
Рави Урлагийн түүх Хөлбөмбөг
Рави Урлагийн түүх Волейбол
Рави Урлагийн түүх Теннис
Бет Химийн Теннис
Бет Химийн Хөлбөмбөг


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

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

Энэ бол энгийн жишээ бөгөөд амархан танигдах боломжтой хэдий ч олон төрлийн хамааралтай байдал нь том, нарийн төвөгтэй мэдээллийн сан дахь асуудал болж хувирдаг.

Олон төрлийн хамааралтай хамааралтай X -> -> Y. Энэ тохиолдолд:

Student_Name -> -> Гол
Student_Name -> -> Спорт

Үүнийг "Student_Name Multidetermines Major" ба "Student_Name multidetermines Sport" гэж уншдаг.

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

Олон төрлийн хамааралтай хамааралтай байдал, зохицуулалт

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

Одоо доорх хүснэгтэд Student_Name -> Major гэсэн функцтэй бөгөөд multivalued хамааралгүй:

Оюутнууд ба сурагчид
Student_Name Гол
Рави Урлагийн түүх
Рави Урлагийн түүх
Рави Урлагийн түүх
Бет Химийн
Бет Химийн

Энэ хүснэгт нь Student_Name -> Sport гэсэн ганц функцээс хамааралтай боловч:

Оюутнууд ба Спорт
Student_Name Спорт
Рави Хөлбөмбөг
Рави Волейбол
Рави Теннис
Бет Теннис
Бет Хөлбөмбөг

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