Re: Functional Dependencies > Uniqueness Constraints

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Thu, 31 Aug 2006 02:38:55 GMT
Message-ID: <3ZrJg.6431$9u.76902_at_ursa-nb00s0.nbnet.nb.ca>


Marshall wrote:

> Bob Badour wrote:
>

>>paul c wrote:
>>
>>
>>>Marshall wrote:
>>>
>>>
>>>>... (And of course there must be a rule that
>>>>says every base table must have at least one functional
>>>>dependency in which the union of the determinant set
>>>>and the dependent set equals the set of attributes. (This
>>>>restriction is sufficient to ensure every base table is a
>>>>relation; is it necessary?))
>>>>...
>>>
>>>I would say not necessary.  If a table is a representation of a
>>>relation, then I`d think that even if no rule is stated, by definition
>>>the union of the attributes is a CK, eg., if there is no stated
>>>determinant set, all the attributes are in the dependent set.  I can`t
>>>think why one would want to state this, shouldn`t a dbms assume itÉ
>>
>>I think you have determinant and dependent reversed. The attributes of a
>>candidate key are the determinant set, and the remaining attributes are
>>each dependent attributes. Thus, if no other key is specified, all
>>attributes are in the determinant set and the set of dependent
>>attributes is empty.
>>
>>What Marshall stated is an invariant of every relation for every
>>candidate key. In fact, it seems to me Marshall's statement is just a
>>restatement of candidate keys, but there could be subtleties I miss.

>
> Yes, that's exactly what it is: a restatement of the requirement for
> at least one candidate key, but stated in the terminology of
> functional dependencies. The requirement comes from the
> definition of set, of course, so any constraint of whatever
> form that satisfies the definition of set (which is to say,
> no duplicates) is sufficient.
>
> I think the way I stated it is overly strong for what is
> necessary to meet the definitional requirement. However
> using any weaker requirement *for base tables* seems
> like a really, really bad idea. On the other hand, for
> a result set, the FDs are whatever they are.

Because one can derive a candidate key for every result set, whatever they are will still match the stated invariant. Received on Thu Aug 31 2006 - 04:38:55 CEST

Original text of this message