Олон талт хараат байдал дөрөв дэх хэвийн хэлбэрийг эвддэг
Холбогдох мэдээллийн санд хамааралтай мэдээллийн сан нь нэг мэдээллийн санд хадгалагдаж буй мэдээллийн нэг хүснэгтэнд хадгалагдаж байгаа бусад мэдээллийг адилаар тодорхойлох үед хамаардаг. Нэг хүснэгтэд нэг буюу түүнээс олон эгнээ байгаа үед нэг буюу хэд хэдэн эгнээний мөрөнд нэг зэрэг олон хамааралтай хамааралтай болдог. Өөрөөр хэлбэл хүснэгтийн хоёр шинж чанар (эсвэл багана) нь бие биеэсээ хараат бус байдаг боловч хоёулаа гуравдагч шинж чанараас хамаардаг.
Олон төрлийн хамааралтай хараат байдал нь хэвийн стандартыг 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 | Спорт |
---|---|
Рави | Хөлбөмбөг |
Рави | Волейбол |
Рави | Теннис |
Бет | Теннис |
Бет | Хөлбөмбөг |
Нарийн төвөгтэй хүснэгтүүдийг энгийн хялбар болгохын тулд нэг ширээнд нэг санаа гаргахаасаа илүү ганц санаа эсвэл сэдэвтэй холбоотой мэдээлэл агуулж байдаг.