数据库中的主码、候选码、主属性、非主属性

参考链接

候选码、主码、全码、外码、主属性、主键、主关键字、非主属性清晰总结 - 知乎 (zhihu.com)

1.码:

能够标识一条记录的属性或者属性集

2.候选码

能够标识一条记录的最小属性集

任一候选键的任何真子集都不能唯一标识一个记录(比如在成绩表中(学号,课程号)是一个候选键,单独的学号,课程号都不能决定一条记录)

3.主码

唯一标识一条记录的最小属性集(从候选码中认为的挑选一条)

候选码有很多个,但是主码只有一个,所以是从候选码中挑一个

注意:主键只能有一个,但是主键可以有多个属性(这是一个容易被大家误的地方)

4.主属性

主属性是候选码所有属性的并集

5.非主属性

不包含候选码中的属性称为非主属性,非主属性是相对主属性来定义的。

举例

学生成绩信息表中有(学号、姓名、性别、年龄、系别、专业等)

在这个表中的姓名是唯一的,没有重名现象。

由于学号能确定一个学生,因此学生表中含有学号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(学号,性别)等。

学号唯一,所以是一个超键

姓名唯一,所以是一个超键

(姓名,性别)唯一,所以是一个超键

(姓名,年龄)唯一,所以是一个超键

(姓名,性别,年龄)唯一,所以是一个超键

候选键

学号唯一,而且没有多余属性,所以是一个候选键

姓名唯一,而且没有多余属性,所以是一个候选键

候选键可以是(C)(D)(A ,B)如果是这种的话,单独的A或者B都不能确定一条信息

(姓名,性别)唯一,但是单独姓名一个属性就能确定这个人是谁,所以性别这个属性就是多余属性,所以(姓名,性别)不是候选键

(姓名,年龄),(姓名,性别,年龄)同上,也不是候选键

主键

就是在候选码中选一个,人为规定的,例如学生表中,我们通常会让“学号”做主键,学号能唯一标识这一个元组。

主属性

学号,姓名

非主属性

性别、年龄、系别、专业

练习题

名字会重复

1.答案:

(1)候选关键字2个:(学号),(身份证号)

(2)主关键字:(学号)

(3)主属性2个:学号,身份证号

(4)非主属性2个:姓名,系别

2. 答案:

(1)候选关键字1个:(学号,课程号)

(2)主关键字:(学号,课程号)

(3)主属性2个:学号,课程号

(4)非主属性1个:成绩

3.答案

(1)候选关键字1个:(课程号)

(2)主关键字:(课程号)

(3)主属性1个:课程号

(4)非主属性2个:课程名,学分

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值