# Question concerning minimal/cannonical cover For the question above, I am confused with how to approach simplifying the left hand side of BDCE->A. Do I get rid of E, as D depends on it, or do I get rid of CD as well, as CD->A?

Here's what I thought I did: Computed the closure of B,C,D,E,BC,BD,DE,CD,CE,BCD,BCE,BDE,CDE, then saw which closures actually use the dependency BCDE->A, and which dependencies actually get A. So far, CD is the smallest amount of attributes that get A.

The above leaves me with CD->A. Is this correct?

The algorithm to compute the minimal cover of a set of dependencies requires that, when there are multiple attributes on the left part, we should eliminate the extraneous ones, that is the attributes such that the remaining ones still determine the right part.

In other words, if you have a dependency like `BCDE → A`, you should in turn try to eliminate each attribute on the left part, and see if `A` is contained in the closure of the remaining attributes.

Let’s try the algorithm in your case:

``````1. Try to eliminate B, and see if A ∈ CDE⁺; CDE⁺ = ABCDE, so B can be eliminated
2. Try to eliminate C from CDE, and see if A ∈ DE⁺; DE⁺ = ABCDE, so C can be eliminated
3. Try to eliminate D from DE, and see if A ∈ E⁺; E⁺ = BCE, so D cannot be eliminated
4. Try to eliminate E from DE, and see if A ∈ D⁺; D⁺ = ABCDE, so E can be eliminated
``````

So, the dependency `BCDE → A` can be substituted by `D → A`. Applying this algorithm to all the dependencies (remember to check at the end if there are superfluous dependencies), produces the following canonical cover:

``````D → A
D → E
E → B
E → C
``````