7.15

The algorithm to generate a canonical cover only removes one extraneous attribute at a time. Use the functional dependencies from Exercise 7.14 to show what can go wrong if two attributes inferred to be extraneous are deleted at once.


In \(X \rightarrow YZ\), one can infer that \(Y\) is extraneous, and so is \(Z\). But deleting both will result in a set of dependencies from which \(X \rightarrow YZ\) can no longer be inferred. Deleting \(Y\) results in \(Z\) no longer being extraneous, and deleting \(Z\) results in \(Y\) no longer being extraneous. The canonical cover algorithm only deletes one attribute at a time, avoiding the problem that could occur if two attributes are deleted at the same time.