2
$\begingroup$

Let's say we have a relation $R$ with a set of functional and multivalued dependencies $F$, and we found a dependency that violates some normal form. Then we decompose $R$ into $R_1$ and $R_2$. How to compute the corresponding sets of dependencies $D_1$ and $D_2$?

I'm not sure if we can just take all dependencies (probably inferred by Armstrong's axioms) from $D$ which work only on attributes in a corresponding new relation, because we can lose one of the original FDs or MVDs.

Like in the famous example, $R(A, B, C)$ with $\{AB \rightarrow C, C \rightarrow B\}$ and candidate keys $AC, AB$.
The $C \rightarrow B$ violates the BCNF, since $C$ is not a superkey.
We can't just decompose it into $R_1(C, B)$ and $R_2(C, A)$, because we then lose the $AB \rightarrow C$.

So the question is how to make sure the decomposition doesn't break our original set of dependencies and how to infer new ones for new relations?


UPDATE: I have found this is called dependency preserving decomposition. There are some algorithms I'm looking for, but I can't find them with proofs so I can understand how they work. Are there any?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.