Functional Dependencies-More Examples
Functional Dependencies-More Examples
Dependencies-More
Examples
1
Exercise #1
Below is an instance of R(A1,A2,A3,A4).
Choose the FD which may hold on R
1. A4->A1
2. A2A3->A4
3. A2A3->A1
2
Solution #1
1. A4->A1 ???
Incorrect: The 1st and 4th tuple violates it
2. A2A3->A4 ???
Incorrect: The1st and 2nd tuple violates it.
3
Exercise #2
Let R(ABCDEFGH) satisfy the following
functional dependencies: {A->B, CH->A, B->E,
BD->C, EG->H, DE->F}
Which of the following FD is also guaranteed to
be satisfied by R?
1. BFG --> AE Hint: Compute the closure of the LHS
2. ACG --> DH of each FD that you get as a choice.
If the RHS of the candidate FD is
3. CEG --> AB contained in the closure, then the
candidate follows from the given FDs,
otherwise not. 4
Solution #2
FDs: {A->B, CH->A, B->E, BD->C, EG->H, DE->F}
1. BFG --> AE ???
Incorrect: BFG+ = BFGEH, which includes E, but not A
2. ACG --> DH ???
Incorrect: ACG+ = ACGBEH, which does not includes D.
3. CEG --> AB ???
Correct: CEG+ = CEGHAB, which contains AB
5
Question #3
Which of the following could be a key for
R(A,B,C,D,E,F,G) with functional
dependencies {AB->C, CD->E, EF->G, FG-
>E, DE->C, and BC->A}
1. BDF
2. ACDF
3. ABDFG
4. BDFG
6
Solution #3 - 1
{AB->C, CD->E, EF->G, FG->E, DE->C, and BC-
>A}
1. BDF ???
No. BDF+ = BDF
2. ACDF ???
No. ACDF+ = ACDFEG (The closure does not
include B)
3. ABDFG ???
No. This choice is a superkey, but it has proper
subsets that are also keys (e.g. BDFG+ =
BDFGECA)
7
Solution #3 - 2
{AB->C, CD->E, EF->G, FG->E, DE->C, and BC-
>A}
4. BDFG ???
BDFG+ = ABCDEFG
8
Finding Keys using FDs
Tricks for finding the key:
If an attribute never appears on the RHS of
any FD, it must be part of the key
If an attribute never appears on the LHS of
any FD, but appears on the RHS of any FD, it
must not be part of any key
9
Exercise #5
Consider R = {A, B, C, D, E, F, G, H} with a set
of FDs
F = {CD→A, EC→H, GHB→AB, C→D, EG→A,
H→B, BE→CD, EC→B}
Find all the candidate keys of R
10
Solution #5 - 1
F = {CD→A, EC→H, GHB→AB, C→D, EG→A,
H→B, BE→CD, EC→B}
First, we notice that:
EFG never appear on RHS of any FD. So, EFG
must be part of ANY key of R
A never appears on LHS of any FD, but appears
on RHS of some FD. So, A is not part of ANY key
of R
We now see if EFG is itself a key…
EFG+ = EFGA ≠ R; So, EFG alone is not key
11
Solution #5 - 2
Checking by adding single attribute with EFG (except A):
BEFG+ = ABCDEFGH = R; it’s a key [BE→CD, EG→A,
EC→H]
CEFG+ = ABCDEFGH = R; it’s a key [EG→A, EC→H,
H→B, BE→CD]
DEFG+ = ADEFG ≠ R; it’s not a key [EG→A]
EFGH+ = ABCDEFGH = R; it’s a key [EG→A, H→B,
BE→CD]
If we add any further attribute(s), they will form the
superkey. Therefore, we can stop here searching for
candidate key(s).
Therefore, candidate keys are: {BEFG, CEFG, EFGH}
12
Exercise #6
Consider R = {A, B, C, D, E, F, G} with a set of
FDs
F = {ABC→DE, AB→D, DE→ABCF, E→C}
Find all the candidate keys of R
13
Solution #6 - 1
F = {ABC→DE, AB→D, DE→ABCF, E→C}
First, we notice that:
G never appears on RHS of any FD. So, G must
be part of ANY key of R.
F never appears on LHS of any FD, but appears
on RHS of some FD. So, F is not part of ANY key
of R
G+ = G ≠ R So, G alone is not a key!
14
Solution #6 - 2
Now we try to find keys by adding more attributes (except F) to
G
Add LHS of FDs that have only one attribute (E in E→C):
GE+ = GEC ≠ R
Add LHS of FDs that have two attributes (AB in AB→D and DE in
DE→ABCF):
GAB+ = GABD
GDE+ = ABCDEFG = R; [DE→ABCF] It’s a key!
Add LHS of FDs that have three attributes (ABC in ABC→DE),
but not taking super set of GDE:
GABC+ = ABCDEFG = R; [ABC→DE, DE→ABCF] It’s a key!
GABE+ = ABCDEFG = R; [AB→D, DE→ABCF] It’s a key!
If we add any further attribute(s), they will form the superkey.
Therefore, we can stop here.
The candidate key(s) are {GDE, GABC, GABE}
15
Exercise #7
Consider R = {A, B, C, D, E} with a set of FDs F =
{AB→DE, C→E, D→C, E→A}
And we wish to project those FDs onto relation S={A,
B, C}
Give the FDs that hold in S
Hint:
We need to compute the closure of all the subsets
of {A, B, C}, except the empty set and ABC.
Then, we ignore the FDs that are trivial and those
that have D or E on the RHS
16
Solution #7
R = {A, B, C, D, E}
F = {AB→DE, C→E, D→C, E→A}
S={A, B, C}
A+ = A
B+ = B
C+ = CEA [C→E, E→A]
AB+ = ABDEC [AB→DE, D→C]
AC+ = ACE [C→E]
BC+ = BCEAD [C→E, E→A, AB→DE]
We ignore D and E.
So, the FDs that hold in S are:
{C→A, AB→C, BC→A}
(Note: BC→A can be ignored because it follows logically 17
from C→A)