prime属性是否具有空值?

时间:2014-08-27 15:55:09

标签: database relational-database primary-key candidate-key

我知道候选键不能有NULL值。但候选键本身可以是许多属性的组合,这些属性称为主要属性。这些素数属性可以将NULL作为值吗?

此致

2 个答案:

答案 0 :(得分:2)

  

Prime属性显示为某些属性的属性   候选人的关键(它不一定是主键,甚至不是任何键   兴趣。)

Schemas and keys

Prime属性是候选键的一部分。顾名思义,候选键是主键的候选键。这意味着,如果需要,候选键可以成为主键。

现在,如果你还记得,任何主键都不能为空。因此,根据定义,prime属性不能为null。如果它为null,则它不再是主要属性。

这是一个解释。

如果您有复合候选键,请说

CK1(P1, P2)

P1和P2是主要属性。您可以将P1或P2设置为null,因为除主键属性之外的素数属性没有约束。

所以,

CK1(P1, P2=null)

现在,CK1不能成为主键,因此不再是候选键,因此P2不再是主要属性。

答案 1 :(得分:0)

我认为这取决于您使用的数据库。

例如,您不必在MySQL中明确地执行此操作。这在the manual

中定义
  

PRIMARY KEY是一个唯一索引,其中必须定义所有键列   作为NOT NULL。如果它们没有显式声明为NOT NULL,那么MySQL   如此隐含地(并且默默地)声明它们。