Re: What are the differences between the terms, CANDIDATE KEY, PRIMARY KEY, SUPER KEY, COMPOSITE KEY?
Date: 25 Feb 2006 08:06:32 -0800
Jan Hidders wrote:
> Marshall Spight wrote:
> > But it strikes me that there is an air of triviality in any FD where
> > some specific attribute appears both on the left side *and* on the
> > right side. We can apply decomposation to AB->BC and get
> > 1) AB->B
> > 2) AB->C
> > 1) is trivial. AB->BC doesn't say anything that isn't said by AB->C.
> > So if we describe a key as being an FD X->Y, where Y is the
> > header, then we necessarily (unless X is empty) have attributes
> > that appear in both X and Y. It strikes me that this could be reduced
> > by replacing Y with (header - X).
> Correct. But restricting yourself to only non-intersecting FDs has also
> its problems. Armstrong's rules would, for example, no longer be complete.
Does this mean a canonical form for a key is impossible or undesirable?
I ask because I am working on software for working with relations. Early designs had special purpose support for keys, foreign keys, etc., but in later revisions this has been dropped in favor of a more general constraint engine. But one still needs to require a minimum of one key, and I think some amount of special key-related code is useful; one could automatically suggest normalizations, for example. This would be facilitated by having a canonical form for keys.
My suspicion is that one won't be able to derive Armstrong's axioms from more general axioms of constraint propogation.
Also, I seem to recall from somewhere the result that while a normal form exists for FDs, that normal form is not guaranteed to be unique, or something like that. Anyone?
Marshall Received on Sat Feb 25 2006 - 17:06:32 CET