"Armstrong's axioms are a set of axioms (or, more precisely, inference rules) used to infer all the functional dependencies on a relational database"(link).
- R: ABCDE
- F: C->AB, D->A, BE->CE, E->B
BE->CE can be split in BE->C and BE->E. The trivial functional dependency BE->E can be skipped. BE->C can be replaced by E->C because from BE->C and E->B one can deduce E->C. Therefore the set of functional dependencies can be reduced to:
- R: ABCDE
- F: C->AB, D->A, E->C, E->B
A and B cannot be member of a key because they cannot be found on the left site of a functional dependency. So it is sufficient to search all keys of the relational system (remove the Attributes A B from R and all functional dependencies containing A and B)
C is not on the left side of a functional dependcy so again one can reduce the system to
So the list F of functional identities is empty. The only key of this relational system is DE which is also the only key of the unreduced systems. So your answer of your first question is true.
You can use this page to find your candidate keys
To check if the system is in BCNF it is not necessary to find all candidate keys. It is sufficient to find one functional dependency which has a left side that is no a key.
C->AB is such a functional dependency: C is not a key because the closure of C is C. This means that no further attributes can be generated by applying functional dependencies on C.
You can use this page to find check if a relation is in normal form.
The mistake is in your understanding of transitive dependency. From wikipedia: Transitive dependency
In mathematics, a transitive dependency is a functional dependency which holds by virtue of transitivity. A transitive dependency can occur only in a relation that has three or more attributes. Let A, B, and C designate three distinct attributes (or distinct collections of attributes) in the relation. Suppose all three of the following conditions hold:
1. A → B
2. It is not the case that B → A
3. B → C
Then the functional dependency A → C (which follows from 1 and 3 by the axiom of transitivity) is a transitive dependency.
In your case though, (2) does not hold:
1. U → T -- correct
2. It is not the case that T → U -- wrong
3. T → V -- correct
Therefore {V}
is NOT transitively dependent on {U}
.
Best Answer
That is correct. F2 and F3 are equivalent but F1 is not.
F2 is equivalent to F3 because from
A → C
we can infer thatAB → C
(thereforeF2 => F3
) and fromA → B, AB → C
we can infer:A → AB
and thenA → C
(thereforeF3 => F2
).You could also prove that
F1 => F2
(andF1 => F3
) but notF2 => F1
.A counterexample should convince that there are cases where F2 (
A → B, A → C
) holds but not F1 (B → C
):