超 键 和候选键都是唯一标识元祖
候选键和 超 键 的区别,当超键消除冗余之后可以成为候选键。
例如一个数据库表有属性
(学号,姓名,性别,年级)
我们可以通过(学号,姓名)来确定你的年级,这就是一个超键。
同时我们也可以单单使用学号来确定你的年级,这就是候选键,比起超键来说减少了一个姓名,其实就是有没有姓名这个属性都不影响我通过学号判断你的年级。
主键就是候选键中随便选一个出来
外键就是其他表的主键
例如
学生表
(学号,姓名,性别,课程号)
课程表
(课程号,课程名)
这时学号为学生表的主键,课程号是课程表的主键,这时课程号属性在学生表中出现,意味着课程号是学生表的主键。