# Re: No exceptions?

From: J M Davitt <jdavitt_at_aeneas.net>
Date: Sat, 01 Jul 2006 16:54:43 GMT

```> Jon Heggland wrote:
>
```

>> J M Davitt wrote:

>>
>>> Jon Heggland wrote:
>>>
>>>> There is some confusion here on both parts, I think. Any relvar can
>>>> have an empty key, regardless of the number of attributes in the
>>>> relvar. It follows that such a relvar can have no other keys. A
>>>> relvar has a set of (candidate, if you will, but I consider that
>>>> term meaningless) keys, in general, but this set cannot be empty
>>>> ---there is always at least one key.
>>>
>>>
>>> I understand your point about candidate keys; I believe the term
>>> is used to distinguish the irreducible set of attributes that hold
>>> unique values from the sets of values that comprise superkeys.
>>
>>
>> In my experience, it is used to distinguish "primary" keys from the
>> rest. No matter.
>>
>>
>>> The rest of your post confuses me. I understand that the last
>>> sentence refers to a set of keys, but I'm not sure how it is that
>>> there is only one key in that set of keys if that key's set of
>>> attributes is empty. It seems to me that every attribute would be
>>> a key and every combination of attributes would be a superkey. I
>>> don't see how an empty attribute key precludes other keys.
>>
>>
>> "Every attribute" would also be a superkey (speaking loosely). The empty
>> set is a subset of every set.
```>
>
> I respectfully suggest the confusion caused by your use of key without
> the 'candidate' qualification demonstrates exactly why we have the term.
> I suppose irreducible key would do just as well, but for historical
> reasons, candidate key already means an irreducible key.

```

Using JH's definitions: if an empty key is declared, any other keys are superkeys. This would be the case if one presumes that the "no attribute" is also a component of all those superkeys, right? And I don't understand why that must be so. Once a key without attributes is declared, the relation value can hold no more than one tuple - but I don't see why every other attribute cannot also be a key.

On other words, I don't understand why "[i]t follows that such a relvar can have no other keys." Received on Sat Jul 01 2006 - 18:54:43 CEST

Original text of this message