Canonical cover
A canonical cover for F (a set of functional dependencies on a relation scheme) is a set of dependencies such that F logically implies all dependencies in , and logically implies all dependencies in F.
The set has two important properties:
- No functional dependency in contains an extraneous attribute.
- Each left side of a functional dependency in is unique. That is, there are no two dependencies and in such that .
A canonical cover is not unique for a given set of functional dependencies, therefore one set F can have multiple covers .
Algorithm for computing a canonical cover [1]
- Repeat:
- Use the union rule to replace any dependencies in of the form and with ..
- Find a functional dependency in with an extraneous attribute and delete it from
- ... until does not change
gollark: the supreme overlord of all, master of all space and time, destroyer of worlds, devourer of souls/the supreme overlord of all, master of all space and time, destroyer of worlds, devourer of souls/the supreme overlord of all, master of all space and time, destroyer of worlds, devourer of souls's/the supreme overlord of all, master of all space and time, destroyer of worlds, devourer of souls's/the supreme overlord of all, master of all space and time, destroyer of worlds, devourer of souls is quite long.
gollark: <@241757436720054273> But then you can't subscribe to each other's pronouns. Or have multiple. Really, that's only good as a sort of weird reference book.
gollark: No, a Rust templating engine.
gollark: This seems somewhat insane.
gollark: I decided to look at some of sailfish to see how it was doing its really fast templating, and it seems to actually have an AVX2-based implementation of HTML escaping?
References
- Database system concepts by Abraham Silberschatz et al
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.