What is Join Dependency?
If a table can be recreated by joining multiple tables and each of this table have a subset of the attributes of the table, then the table is in Join Dependency. It is a generalization of Multivalued Dependency
Join Dependency can be related to 5NF, wherein a relation is in 5NF, only if it is already in 4NF and it cannot be decomposed further.
Example
<Employee>
| EmpName | EmpSkills | EmpJob (Assigned Work) |
| Tom | Networking | EJ001 |
| Harry | Web Development | EJ002 |
| Katie | Programming | EJ002 |
The above table can be decomposed into the following three tables; therefore it is not in 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 |
Our Join Dependency −
| {(EmpName, EmpSkills ), ( EmpName, EmpJob), (EmpSkills, EmpJob)} |
The above relations have join dependency, so they are not in 5NF. That would mean that a join relation of the above three relations is equal to our original relation <Employee>.