Regular coverage results are not unique.
One of the methods:
-
Partialize right to single attribute
-
Remove the redundant attributes of the left part,
such as AB-> C- Assuming that A is redundant, then see if B's closure contains C
- Assuming that B is redundant, ...
-
Remove redundant functional dependencies
- If A-> B is removed, then see if it can be changed by A
-
Merge functional dependencies
Simple example:
the functional dependency set F on the pattern (A, B, C):
A-> BC
B-> C
A-> B
AB-> C
- After dividing the right part into a single attribute
A-> B
A-> C
B-> C
AB-> C - After removing the redundant attributes on the left,
A-> B
A-> C
B-> C - After removing the redundant function dependency
A-> B
B-> C - Combine
A-> B
B-> C
to get regular coverage
The functional dependency set F of the relational pattern r (A, B, C, D, E):
A-> BC
CD-> E
B-> D
E-> A
- After the right part is converted into a single attribute,
A-> B
A-> C
CD-> E
B-> D
E-> A - Remove the redundant attribute on the left
A-> B
A-> C
CD-> E
B-> D
E-> A - Remove redundant function dependency
A-> B
A-> C
CD-> E
B-> D
E-> A - The combined
A-> the BC
the B-> D
CD-> E
E-> A