| Name | Explanation | Example |
|
if B is a subset of A, then A->B
|
sName,Position->Position
|
| if A->B, then A,C->B,C |
bAddress->branchNo => bAddress,Position->branchNo,Position |
| If  |
A->B |
, then A->C |
| and |
| B->C |
|
staffNo->branchNo branchNo->bAddress |
=> staffNo->bAddress |
|
Note that each of these three rules can be directly derived from the definition
of functional dependency. The rules are complete in that given a set
X of functional dependencies, all functional dependencies implied
by X can be derived from X using these rules.
In other words, the rules can be used to derived the closure of X+.
Several further rules can be derived from the three given above that simplify
practical task of computing X+.
|
| A->A |
|
| If A->B,C, then |
A->B and A->C
|
|
| staffNo->Position,Salary => |
staffNo->Position and staffNo->Salary |
|
| If | A->B and A->C |
, then A->B,C |
|
staffNo->Position and staffNo->Salary |
=> staffNo->Position,Salary |
|
| If | A->B and C->D |
, then A,C->B,D |
|
staffNo->sName and branchNo->bAddress |
=> staffNo,branchNo->Position,bAddress |
|