FD Concept => FD Inference Rules => FDs in DD Airport => Key and Superkey => Redundancy Reduction => BCNF Demo => Quiz

Definition of FD:

Example:

A B C
1 2 3
4 x y
=>
A B C
1 2 3
4 2 ?

If we know that B -> C, what will y be if we say x = 2? The answer is that y = 3 because we have the same value of B as in the first tuple, and by the FD B -> C, we must have the same value of C in the first tuple. The result relational instance should be like this:

A B C
1 2 3
4 2 3

Important Idea of FD:

From the above relation instance, we can see the data for the column B and C duplicated and redundancy occurred. How can we avoid? The answer is that we know that there is a FD B -> C, and we can for sure that same value of B will lead to same value of C, if we can make sure that we will not have the same value of B in a relation, then no data redundancy will occur. This is an objective of studying FD, i.e. to reduce data redundancy by finding all possible FD and constraint the left hand side of attribute(s) of FD occurring more than once. This is in fact, the idea behind the normalization process.

The other usage of FD is for finding the key of the relation. Because the left hand side of FD determines the right hand side attributes, it implies that if the left hand side attributes determines ALL attributes in the relation, then they are the super key of the relation.

To summary, here are the two usages of FD:
1) Help in the data redundancy process.
2) Finding the superkey(s) or key(s) of a relation.