Join Dependency คืออะไร?
ถ้าตารางสามารถสร้างใหม่ได้โดยการ Join หลายตาราง และแต่ละตารางมี Subset ของแอตทริบิวต์ของตารางต้นทาง เรียกว่า Join Dependency เป็นการสรุปทั่วไป (Generalization) ของ Multi-valued Dependency
Join Dependency เกี่ยวข้องกับ 5NF โดย Relation อยู่ใน 5NF ก็ต่อเมื่ออยู่ใน 4NF แล้ว และ ไม่สามารถแยกย่อย (Decompose) เพิ่มเติมได้
ตัวอย่าง
<Employee>
| EmpName | EmpSkills | EmpJob (Assigned Work) |
|---|---|---|
| Tom | Networking | EJ001 |
| Harry | Web Development | EJ002 |
| Katie | Programming | EJ002 |
ตารางข้างต้นแยกเป็น 3 ตารางได้ ดังนั้นไม่อยู่ใน 5NF:
<EmployeeSkills>
| EmpName | EmpSkills |
|---|---|
| Tom | Networking |
| Harry | Web Development |
| Katie | Programming |
<EmployeeJob>
| EmpName | EmpJob |
|---|---|
| Tom | EJ001 |
| Harry | EJ002 |
| Katie | EJ002 |
<JobSkills>
| EmpSkills | EmpJob |
|---|---|
| Networking | EJ001 |
| Web Development | EJ002 |
| Programming | EJ002 |
Join Dependency:
| {(EmpName, EmpSkills), (EmpName, EmpJob), (EmpSkills, EmpJob)} |
|---|
ความสัมพันธ์ข้างต้นมี Join Dependency ดังนั้นไม่อยู่ใน 5NF Join ของ 3 Relation นี้เท่ากับ Relation ต้นทาง <Employee>