关闭

【自学考试】超键、候选键、主键

484人阅读 评论(18) 收藏 举报
分类:

自考过了一段时间了,考的并不是很理想,但也算勉强过了,现在再来复习复习当时我们感觉特别容易混淆的东西吧,记得当时记不住,还总是忘。

一、定义:

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键

候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键

外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。

二、关系图:



三、实例

假设有如下两个表:
学生(学号,姓名,性别,身份证号,教师编号)
教师(教师编号,姓名,工资)
 
超键:
学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。
 
候选键:
候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。
 
主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。
 
外键:
外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。

比如一个小范围的所有人,没有重名的,考虑以下属性

如果还不懂得话,可以看以下的实例:

(身份证 姓名 性别 年龄)


身份证唯一,所以是一个超键
姓名唯一,所以是一个超键
(姓名,性别)唯一,所以是一个超键
(姓名,性别,年龄)唯一,所以是一个超键
--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的

身份证唯一,而且没有多余属性,所以是一个候选键
姓名唯一,而且没有多余属性,所以是一个候选键
--这里可以看出,候选键是没有多余属性的超键

考虑输入查询方便性,可以选择 身份证 为主键
也可以 考虑习惯 选择 姓名 为主键
--主键是选中的一个候选键


总结:虽然考的不理想,但是该总结的还是应该总结的,感觉这些例子挺好的,应该认真看看

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:87873次
    • 积分:4804
    • 等级:
    • 排名:第6202名
    • 原创:107篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1762条
    博客专栏
    UML

    文章:9篇

    阅读:8956
    请联系我
    微信公众号
    最新评论