by transitivity you can get b->b which is trivial (if I got this right), so are the other two also trivial?
Studying functional dependencies and this appear in one of the exercises. Thanks,
Nope.
Quoting wikipedia, a functional dependency X -> Y
is called trivial if Y
is a subset of X
.
You're right that you can infer b -> b
from b -> d
and d -> b
via transitivity; but that only means that if the set were {b -> d
, d -> b
, b -> b
} then b -> b
would be trivial and also redundant because of transitivity.
However, your set is only {b -> d
, d -> b
} which is indeed a minimal cover. It means that every b
determines a d
, and that every d
determines a b
, which are two very distinct facts about your schema. You can't simplify anymore without losing information.
If you find confusing wrapping your head about the letters just replace them with some toy attribute and the whole thing will look very intuitive.