真诚地问一问各位关于数据库原理的一个问题:请问是主属性的取值不能为空值,还是主码的取值不能为空值,或是两者都不能为空值?
两者都不能为空值
首先,主码是肯定不能为空的。主码:若一个关系有多个候选码,则选定其中一个为主码。从诸多候选码中选一个作为这个表的主键,他肯定不能为空,但是当前其他候选码可以为空,因为他们没有被选为主码。
再来看看主属性的概念,主属性:候选码的诸属性称为主属性。从概念可以看出,主属性是一个大的概念,它包含诸多属性,所以他肯定不能为空呀,他为空了,就没主码了,主码肯定也为空呀,这肯定就不合适了。
有帮助的话采纳一下哦!
主码就是主键,肯定不能为空,主属性是候选码中的所有属性,如果有多个候选码,你只取其一为主码,自然另外一个候选码中的主属性可以为空
知识小课堂:
①候选码:如果它的任意真子集都不能成为超码,这样的最小超码就是候选码
②主键是标识实体集的唯一标识,具有两个特点:非空、唯一,是在候选码中挑选出属性列最少的那个
②主属性是候选码中的所有属性,选择了具有
最少属性列的候选码作为了主键,另外的候选码
中的主属性一般不为空,例如学生实体集得学号、
身份证号,学号作为了唯一主键,但身份证号只
是候选码种的一个属性,实际上也不能为空。
③做题的话,记住:主属性是不能为空的,符合了数据完整性约束
首先回答你的问题,组合主键的字段值不能为空。
不仅是组合主键,连单独的主键也不行!
说明一下为什么:
在所有的数据库中,关于对主键的定义几乎都是这样的:
1、不为空
2、唯一
也就是说,只要是主键,那么在该字段中,所有的字段值必定都是唯一的,同时也都是不为空的。
而联合主键的约束同样在,要求两个字段值均不为空,同时要求不能有两对联合组建的值完全一样,也就是说,单个字段值一样是允许的。
实体完整性规则规定基本关系的所有主关键字对应的主属性都不能取空值
【不知道这样解释,理解没】
在举个生活实例,以帮助你理解:
例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。
对于实体完整性,有如下规则:
1、实体完整性规则针对基本关系。一个基本关系表通常对应一个实体集,例如,学生关系对应学生集合。
2、现实世界中的实体是可以区分的,它们具有一种唯一性质的标识。例如,学生的学号,教师的职工号等。
在关系模型中,主关键字作为唯一的标识,且不能为空。
都不能为空值,根据实体完整性原则:主属性的取值不能为空值,主属性的候选键的取值要非空且唯一,主码就是主键,也不能为空