开发者社区> 问答> 正文

超键、候选键、主键、外键分别是什么?

超键、候选键、主键、外键分别是什么?

展开
收起
请回答1024 2020-03-31 11:10:50 4371 0
2 条回答
写回答
取消 提交回答
  • Java程序员

    首先看看各种键的定义:

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

    候选键(candidate key):不含有多余属性的超键称为候选键

    主键(primary key):用户选作元组标识的一个候选键程序主键

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

     

    结合实例的具体解释:

    假设有如下两个表:

    学生(学号,姓名,性别,身份证号,教师编号)

    教师(教师编号,姓名,工资)

     

    超键:

    由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。

     

    候选键:

    候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。

     

    主键:

    主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。

     

    外键:

    外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。

    2020-03-31 11:15:35
    赞同 展开评论 打赏
    • 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
    • 候选键:是最小超键,即没有冗余元素的超键。
    • 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。
    • 外键:在一个表中存在的另一个表的主键称此表的外键。
    2020-03-31 11:11:03
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载