AB ®
C
C ® A BC ® D CD ® B D ® E D ® G BE ® C CG ® D CE ® G |
AB ®
C
C ® A BC ® D D ® E D ® G BE ® C CG ® B CE ® G |
|
|
B:
The definition of functional dependencies is a -> b holds on R if in
any legal relation r(R), for all pairs of tuples t1and t2
in r such that t1[a] = t2[a], it is also the case
t1[b] = t2[b].
Reflexivity rule: if a is a set of attributes, and b is a subset or equal to a, then a -> b.
Assume there exists t1and t2 such that t1[a] = t2[a],Augmentation rule: if a -> b, and c is a set of attributes, then ac -> bc.
t1[b] = t2[b], since b is a subset or equal to a
a -> b, definition of FD
Assume there exists t1and t2 such that t1[ac] = t2[ac]Transitive rule: a -> c and b -> c, then a -> c.
t1[c] = t2[c] since c is a subset or equal to ac
t1[a] = t2[a] since a is a subset or equal to ac
t1[b] = t2[b] definition of a -> b
t1[bc] = t2[bc] definition of bc = b UNION c
ac -> bc definition of FD
Assume there exists t1and t2 such that t1[a] = t2[a]
t1[b] = t2[b] definition of a -> b
t1[c] = t2[c] definition of b -> c
a -> c definition of FD
C:
See the SQL statements here.
Best regards,
Kristian Torp