键之间的区别

简介: 键之间的区别

超键:在关系中能唯一标识元组的属性称为模式的超键。


候选键:如果一个属性集能唯一标识元组,且有不包含多余属性,那么这个属性集称为候选键(候选键是没有多余属性的超键) 。


主键:关系模式中用户正在使用的候选键称主键(primary key)。一般,如不加说明,键是指主键。


外键:在关系模式R中,如果某属性集是其他模式的候选键,那么该属性集对模式R来说就是外键。


全键:在最极端的情况下,一个关系中的所有属性集构成这个关系的 候选键,称为全键。


假设有如下两个表: 学生(学号,姓名,性别,身份证号,教师编号) 教师(教师编号,姓名,工资)


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


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


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


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


总结


主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。


相关文章
获取两个list中相互不包含的部分
获取两个list中相互不包含的部分
154 0
|
4月前
|
存储 Python
set() 和 freezeset() 之间有什么区别?
【8月更文挑战第29天】
37 6
|
7月前
如何实现数组和 List 之间的转换?
如何实现数组和 List 之间的转换?
|
4月前
|
安全 前端开发 Java
|
5月前
|
存储 NoSQL Java
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
|
7月前
13.从M个球中取出N个球的所有组合情况
13.从M个球中取出N个球的所有组合情况
44 0
|
7月前
|
算法 编译器 C++
【C++ 概念区分】C++ 中覆盖,重写,隐藏 三者的区别
【C++ 概念区分】C++ 中覆盖,重写,隐藏 三者的区别
197 0
|
7月前
|
索引 Python
列表、元组和字典之间的区别是什么
列表、元组和字典之间的区别是什么
81 0
|
安全
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
180 0
|
存储 JavaScript
02-TsVSJs之间的区别
02-TsVSJs之间的区别
66 0