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>.