数据库原理实体完整性规则

想请问各位一个关于数据库原理的问题:请问是主属性不能取空值,还是主键的属性不能取空值,或是两者都不能取空值?(我看网上很多都说主属性不能取空值,但是施伯乐教材上写的是主键的属性不能取空值。)

实体完整性规则是指关系的主属性不能取空值,即主键和候选键在关系中所对应的属性不能取空值,实体完整性通过主键约束和候选键约束来实现的。

这里的主键,主属性,主键的属性是同一个概念,就是主键。


知识小课堂:
①候选码:如果它的任意真子集都不能成为超码,这样的最小超码就是候选码
②主键是标识实体集的唯一标识,具有两个特点:非空、唯一,是在候选码中挑选出属性列最少的那个
②主属性是候选码中的所有属性,选择了具有最少属性列的候选码作为了主键,另外的候选码中的主属性可以为空

首先回答你的问题,组合主键的字段值不能为空。
不仅是组合主键,连单独的主键也不行!
说明一下为什么:
在所有的数据库中,关于对主键的定义几乎都是这样的:
1、不为空
2、唯一
也就是说,只要是主键,那么在该字段中,所有的字段值必定都是唯一的,同时也都是不为空的。
而联合主键的约束同样在,要求两个字段值均不为空,同时要求不能有两对联合组建的值完全一样,也就是说,单个字段值一样是允许的。
【不知道这样解释,理解没】