> 新闻 > 足球新闻

超键、主键与候选键的区别:深入理解 MySQL 中的关键概念

发布时间:2024-08-27 15:58:11 | 新闻来源:JRS直播

超键、主键和候选键之间的区别

最近在看一本MySQL的书时,遇到了一个问题:

既然我们已经有了主键的概念,而且主键已经可以满足需求,那为什么还需要候选键呢?候选键有什么作用呢?文中给出了候选键的定义,但是其实并不能乱用。。

我抱着一探究竟的心态在网上查了一下,也看了大师们的解释,还是没看懂,所以想在这里整理一下,帮助自己更清楚的理解,也希望大家如果理解的可以指出我哪里错了,下面是我的一些理解:

其实还是主键和超键比较好,比如有一张这样的表:

MySQL中超键、主键及候选键的区别是什么

桌子有点粗糙中超数据库,就看一下吧。

超级键

能够识别关系中元??组的属性集称为关系模式的超键。请注意“属性集”的定义。超键可以是一个大集合,只要它可以识别它是哪一行。因此中超数据库,'id'、'user'、'pwd'、''、'name' 都可以是超键的集合。

候选键

不包含冗余属性的超键。例如,在上面的超键中,'id' 可以自行确定它属于哪一行中超数据库,因此它可以是候选键。其他四个也可以是候选键。但这五个加在一起不是候选键,因为有额外的列。(其他四个可以成为候选键,因为每列都可能有重复的内容)

主键

从所有的候选键中找出一个作为主键,即可以是id,也可以是其他四个的组合,或者是其他的选项,只要能够在较小的数内确定所选的集合即可。

总之,候选键是超键的子集,主键是候选键的子集。

其实梳理了这么多,我还是没明白候选键的作用是什么。其实可能就好比一个候车室,火车上只剩下一个座位,几个主键就坐在候车室里。我来告诉你:“我们几个人都买了票,有资格上车,你选谁就跟谁上车。”应该就是这样。

理解超键、候选键、主键的概念以及关系的基本概念

候选键是超键的子集,主键是候选键之一。

例如

考虑属性集(身份证号码,姓名,性别,年龄),假设没有重复的姓名

a.其中超级键为:

b. 超密钥中的候选密钥

c. 选择主键

还是不明白?

例子:

在SQL数据库中,有一张学生信息表如下图所示,该表中不能作为候选键的属性集是( )(单选)

学生证号 姓名 性别 年龄 院系 专业

李惠南 20 计算机软件开发

张明南 18 计算机软件开发

王小宇 19 物理与力学

李淑华女17 生物动物学

赵静楠 21 化学 食品化学

赵静 女 20岁 生物植物学

a) {学生证号码}

b) {学生编号,姓名}

c) {年龄,部门}

d) {姓名,性别}

e) {姓名,专业}

至此,相信大家对“MySQL中超键、主键、候选键有什么区别”已经有了比较深刻的理解,不妨在实践中尝试一下吧!这里是易速云网站,更多相关内容请进入相关频道查看,关注我们,不断学习!

相关资讯

足球录像

NBA录像