Given relation
R(a,b,c)
and that there are no functional dependencies:
How are candidate keys computed?
I suppose you mean there are no non-trivial functional dependencies (since dependencies like a -> a
always hold).
Each relation is a set, so it must have at least a candidate key, that is a set of attributes that determines each attribute of the relation.
Consider an attribute like a
, which is not present in any non-trivial functional dependency. In order to be determined by a candidate key, that candidate key must contains it.
So the rule is very simple: each attribute that is not present in any non-trivial functional dependency must be present in every candidate key.
In this case no attribute is present in any non-trivial functional dependency, so that the only possible candidate key is abc
. In fact it determines all the attributes through the trivial dependency abc -> abc
, and no other candidate key has this property.