3

question:Determine the canonical cover using Armstrong’s Axioms. Give the axioms that you use to arrive at each step.

R = (A, B, C, D, E, F) Fdependencies = {A -> B, A -> C, CD -> E, CD -> F, B -> E}

I know armstrong's axioms:union, decomposition, pseudotransitivity, reflexivity, augmentation, and transitivity. I also know what canonical cover is. However, I do not know how to use armstrong's axioms to reach an answer for this particular question-- I thought you would usually use armstrong's axioms to compute F+, not the cc. Thanks for the help.

pete
  • 31
  • 1
  • 2
  • 2
    Does your textbook not have an algorithm for computing the canonical cover given a set of functional dependencies? If not, you can Google "canonical cover", or you can look through chapter 5 of Maier's book. http://web.cecs.pdx.edu/~maier/TheoryBook/MAIER/C05.pdf – Mike Sherrill 'Cat Recall' Apr 18 '11 at 03:34

1 Answers1

1

The top answer showing up when I googled "canonical cover" :

http://www.koffeinhaltig.com/fds/ueberdeckung.php

Computing F+ is itself usually not very interesting. Computing some minimal set that is provably equivalent may be a bit more interesting, allthough I have my doubts.

Note (not your actual question, but I'll mention it nonetheless) that while your problem is about "minimizing the attribute sets on both sides of the FDs", the most useful use of Armstrong's axioms is to compute FDs that have minimal attribute sets on the left, but maximal on the right (=all attributes). That gives you all the (minimal) keys, and thus gives you an easy way to check the NF.

Erwin Smout
  • 18,113
  • 4
  • 33
  • 52
  • 2
    For the people who program database management systems, the minimal equivalent set is really important for performance. It represents the least amount of work the dbms has to do to guarantee that all the functional dependencies hold. But most of us design and build database systems, not database management systems. – Mike Sherrill 'Cat Recall' Apr 18 '11 at 12:17
  • 1
    Huh ? I have never heard of a DBMS in which the user (that is, the database designer) is supposed to specify FDs for the DBMS to use. I _have_ heard of DBMS where the database designer is supposed to specify **keys** for the DBMS to use. – Erwin Smout Apr 18 '11 at 13:11
  • 2
    By "people who program database management systems", I mean the people who write the source code that compiles into Oracle executables, SQL Server executables, etc. I'm not one of them; I'm one of the people who use Oracle to build database systems. – Mike Sherrill 'Cat Recall' Apr 18 '11 at 13:27
  • I am one of those people too (who write source code that ends up as an etc. executable). So I think I understand the reason why I say that DBMS systems simply do not deal with FDs (except of course those that are guised as a key declaration). And I think I therefore also understand the reason why I say that DBMS systems simply do not do any "FD computation", including "computation of the minimal equivalent". – Erwin Smout Apr 18 '11 at 14:31
  • Then you certainly know more about it than I do. I'll take your word for it. – Mike Sherrill 'Cat Recall' Apr 18 '11 at 15:22