# Functional Dependencies

Let relational schema R(A,B,C,D,E,F,G,H,I).

The functional dependencies are: A -> BC, AD -> BE, C ->F , A->F , D-> E

Find the number of non-trivial functional dependencies ? I know that R has only five non-trivial functional dependencies but i do not know how to prove this(How to think)?

• Can you list the five non-trivial functional dependencies you know? That should help people answer your question. – John L. Dec 15 '18 at 21:31
• A-> BC , AD->BE , C -> F , A->F, D->E – Emily Serone Dec 16 '18 at 14:48
• You might start with proving that AD -> BE is redundant, and discard that one. Then, I'd try to perform some closure operation. – chi Dec 20 '18 at 12:05

$$R$$ has only five non-trivial functional dependencies (FDs).

No, $$R$$ has many more non-trivial FDs. For example, Since A-> BC and C -> F, we also have AC->BF, which is also a non-trivial FD although not a irreducible FD.

What you can say is that all given 5 FDs are non-trivial FDs, since for each given FD, the dependent set is not a subset of the the determinant set.

If you want to see all non-trivial function dependencies of $$R$$, you have to obtain the dependency closure of the given FDs, following, for example, the procedure given here using Armstrong's axioms.

Step-1 : Add the attributes which are present on Left Hand Side in the original functional dependency.

Step-2 : Now, add the attributes present on the Right Hand Side of the functional dependency.

Step-3 : With the help of attributes present on Right Hand Side, check the other attributes that can be derived from the other given functional dependencies. Repeat this process until all the possible attributes which can be derived are added in the closure.

You can enter R(A,B,C,D,E,F) and A -> B,C; A,D -> B,E; C ->F ; A->F; D-> E into the first two fields on this page. Hit the "Calculate" button and view the result. It will list a lot of related concepts. In particular, it shows the following 43 non-trivial FDs.

A → B,C,F
C → F
D → E
A,B → C,F
A,C → B,F
A,D → B,C,E,F
A,E → B,C,F
A,F → B,C
B,C → F
B,D → E
C,D → E,F
C,E → F
D,F → E
A,B,C → F
A,B,D → C,E,F
A,B,E → C,F
A,B,F → C
A,C,D → B,E,F
A,C,E → B,F
A,C,F → B
A,D,E → B,C,F
A,D,F → B,C,E
A,E,F → B,C
B,C,D → E,F
B,C,E → F
B,D,F → E
C,D,E → F
C,D,F → E
A,B,C,D → E,F
A,B,C,E → F
A,B,D,E → C,F
A,B,D,F → C,E
A,B,E,F → C
A,C,D,E → B,F
A,C,D,F → B,E
A,C,E,F → B
A,D,E,F → B,C
B,C,D,E → F
B,C,D,F → E
A,B,C,D,E → F
A,B,C,D,F → E
A,B,D,E,F → C
A,C,D,E,F → B


To distinguish trivial and non-trivial functional dependencies first check if the dependent is subset of determinant or not if dependent is subset(not necessary a proper subset) then it is trivial dependency otherwise the functional dependency is non-trivial.successively you can count the number of functional dependencies whether trivial or non-trivial.For example:- A functional dependency X-> Y id non-trivial if Y is not a subset of X.

I think you are asking not for how many "non-trivial functional dependencies" there are in the relation, but how many "dependencies" there are in the canonical cover of these 5 dependencies (let's call the set of these 5 dependencies $$F$$ ).

If that is the case, then you can compute the canonical cover of $$F$$ using the algorithm given on that page and count the number of dependencies in it.

You can refer to this and this if you are unclear about any of these concepts, e.g., what is meant by an "extraneous" attribute, or what the "closure" of a set of functional dependencies means.