การพึ่งพาหลายค่าคืออะไร
เมื่อการมีอยู่ของแถวอย่างน้อยหนึ่งแถวในตารางแสดงถึงแถวอื่นๆ อย่างน้อยหนึ่งแถวในตารางเดียวกัน การขึ้นต่อกันแบบหลายค่าจะเกิดขึ้น
หากตารางมีคุณสมบัติ P, Q และ R ดังนั้น Q และ R จะเป็นข้อเท็จจริงที่มีหลายค่าของ P
มันถูกแทนด้วยลูกศรคู่ −
->-> |
สำหรับตัวอย่างของเรา:
P->->Q P->->R |
ในกรณีข้างต้น การขึ้นต่อกันแบบหลายค่าจะเกิดขึ้นก็ต่อเมื่อ Q และ R เป็นแอตทริบิวต์อิสระ
ตารางที่มีการขึ้นต่อกันแบบหลายค่าละเมิด 4NF
ตัวอย่าง
มาดูตัวอย่างกัน &mins;
<นักเรียน>
StudentName | หลักสูตร | กิจกรรม |
อามิท | คณิตศาสตร์ | ร้องเพลง |
อามิท | คณิตศาสตร์ | การเต้นรำ |
ยุวราช | คอมพิวเตอร์ | คริกเก็ต |
Akash | วรรณกรรม | การเต้นรำ |
Akash | วรรณกรรม | คริกเก็ต |
Akash | วรรณกรรม | ร้องเพลง |
ในตารางด้านบน เราจะเห็น Student Amit และ อาคัช มีความสนใจมากกว่าหนึ่งกิจกรรม
นี่เป็นการพึ่งพาหลายค่าเพราะ หลักสูตร ของนักเรียนเป็นอิสระจากกิจกรรม แต่ขึ้นอยู่กับนักเรียน
ดังนั้นการพึ่งพาหลายค่า -
StudentName ->-> CourseDiscipline ชื่อนักเรียน ->-> กิจกรรม |
ความสัมพันธ์ข้างต้นละเมิดรูปแบบปกติที่สี่ในการทำให้เป็นมาตรฐาน
ในการแก้ไข ให้แบ่งตารางออกเป็นสองตารางแยกกันและแยกการพึ่งพาแบบหลายค่า −
StudentName | หลักสูตร |
อามิท | คณิตศาสตร์ |
อามิท | คณิตศาสตร์ |
ยุวราช | คอมพิวเตอร์ |
Akash | วรรณกรรม |
Akash | วรรณกรรม |
Akash | วรรณกรรม |
<กิจกรรมของนักเรียน>
StudentName | กิจกรรม |
อามิท | ร้องเพลง |
อามิท | การเต้นรำ |
ยุวราช | คริกเก็ต |
Akash | การเต้นรำ |
Akash | คริกเก็ต |
Akash | ร้องเพลง |
สิ่งนี้ทำลายการพึ่งพาแบบหลายค่าและตอนนี้เรามีการพึ่งพาการทำงานสองประการ -
StudentName -> CourseDiscipline StudentName -> กิจกรรม |