Functional Dependencies: Determining Which FD Is Not Implied (R(A,B,C,D,E))
We are given a relation schema with the following functional dependencies (FDs):
We must determine which of the candidate FDs is not implied by the given set:
(i)
(ii)
(iii)
(iv)
We will use attribute closure and Armstrong’s axioms to check implication.
Key idea
An FD is implied iff , where is the attribute closure of under the given FD set.
We will compute closures for the relevant left-hand sides: .
type="tip" title="Pro Tip" content="When you see a cycle like , combine it with any rules that produce to derive additional FDs (often yielding closures that grow quickly)."
Compute closures and test each candidate FD
- 1Step 1
Start with . Use to get . Then use to get . From and , obtain and confirm . Use to confirm . So , which includes and .
- 2Step 2
Since and , we have implied.
- 3Step 3
Start with . From we get (already). Then none directly, but use to ensure exists. More importantly, we need and and then . Derive : we can get only via , but we can get if we first get . So we compute systematically: from we can get only; however is one-way. This means we must try a different route by deriving from —so we check whether (or ) is implied by .
- 4Step 4
Notice the only way to get is via . The only way to get is via (since no rule gives from or alone). The only way to get is via . Therefore, unless can imply or , cannot imply . So cannot contain or .
- 5Step 5
Since , is not implied.
- 6Step 6
Start with . From , infer . Now we have and , so gives . Then gives . With and , we confirm and . Thus includes and therefore implies .
- 7Step 7
We have and , hence and is implied.
- 8Step 8
Start with . From , infer . From , infer . Now and are present, so gives . Finally confirms . Thus , which contains .
- 9Step 9
Since and , is implied.
Detailed closure reasoning (clean derivations)
1) Candidate (i):
From the given FD ,
- From ,
- From and ,
So and are in , hence (i) is implied.
2) Candidate (ii):
Start with . What can we infer immediately?
- From , we get (already). There is no rule of the form , nor , nor , nor .
To get we must use . To get we must use . To get we must use — but that needs and already.
So there is no derivation chain that produces from alone. Therefore , hence .
So (ii) is not implied.
3) Candidate (iii):
From ,
Now we have and , so:
- gives
- gives So indeed and are both in , hence (iii) is implied.
4) Candidate (iv):
From ,
So and are already included on the right side:
- therefore Hence (iv) is implied.
Implication Check Results
Whether each candidate FD is implied by the given FD set.
Why the answer is (ii) BD → CD
FD Implication Workflow
Pick candidate
1For , compute using the FD set."
Run derivations
2Repeatedly apply when ."
Test inclusion
3If , then the FD is implied."
Conclude for all options
4Exactly one option fails: (ii) ."
Functional Dependency Mastery (Quick Checks)
Knowledge Check
Which FD is NOT implied by {A→B, A→C, CD→E, B→D, E→A}?