databasedatabase-designfunctional-dependencies

functional dependencies involving the empty set


I am trying to grasp the concept of the empty set with FDs. Say i have

R(A,B,C,D)

A-> E
B-> C
B-> D

where E is the empty set, from what I understand, this is a trivial FD, since you are learn nothing new from having A. But when you have

E-> A
B-> C
B-> D

what does this mean exactly? Is it simply "Nothing implies A", so A can have any value it wants within the defined domain or is it A must be a NULL value?


Solution

  • The empty set is usually written as ∅ or {}.

    {}->A means the value of A can be determined without using any other value, in other words the value of A must be the same for every tuple in R. This is not the same as saying that A has no determinants or that A is null. If there were no determinants for A then A would be unconstrained and could have different values in different tuples.

    An example of a dependency on the empty set might be the Gender attribute in a Members relation that defines the membership of a men-only club: {}->Gender.