手机号码为151*****502的用户, 现在她通过我站悬赏问答网发布了一个紧急帮助信息,标题是:【mysql数据库中超键的具体作用】,具体需求内容是【mysql数据库中超键指什么。他的具体作用是什么呢?】,但是由于本站人力物力有限,由于其问题太过于专业性太强,也或者是我们根本无暇顾及该用户的具体需求,导致本站根本无法为该用户提供最有效的服务。现在她(他)通过本站悬赏问答网平台发布了这一需求,希望有能人之士能够帮他解决这一个问题,并愿意付出10元作为报酬,不甚感激。
如果您觉得这个提问很好,可以点击左方的按钮进行推广,支持微信,短信和邮件推广。
注:10元只是象征性的价格标示,不代表实际成交价格,实际成交价格以能回答之人的定价为准。如果答案确实好,并且列出了一部分可信的免费内容(足以让购买回答答案者用户放心购买),则您可以放心购买。如果通过本站购买产生了交易纠纷,本站愿意承担一切线上交易的成交财务风险(限定在悬赏以后发生的购买金额范围以内,不承担线下交易的人身风险以及财务风险等任何风险)。
如果你无法确定或者不知道回答的内容是不是你想要的,可以在线咨询回答者以确定具体情况,根据具体情况请回答者做必要的修改或者补充。 如果确实已经发生了交易纠纷,您可以联系本站 仲裁处理。
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键
比如一个小范围的所有人,没有重名的,考虑以下属性:
身份证、姓名、性别、年龄。
身份证 唯一 所以是一个超键
姓名 唯一 所以是一个超键
(姓名,性别) 唯一 所以是一个超键
(姓名,性别,年龄) 唯一 所以是一个超键
--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的
身份证 唯一而且没有多余属性 所以是一个候选键
姓名 唯一而且没有多余属性 所以是一个候选键
--这里可以看出,候选键是没有多余属性的超键
考虑输入查询方便性,选择身份证为主键
也可以考虑习惯,选择姓名为主键
--主键是选中的一个候选键
一题搞懂什么是候选键:
在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为( ) (选择一项)
学号 姓名 性别 年龄 系别 专业
20020612 李辉 男 20 计算机 软件开发
20060613 张明 男 18 计算机 软件开发
20060614 王小玉 女 19 物理 力学
20060615 李淑华 女 17 生物 动物学
20060616 赵静 男 21 化学 食品化学
20060617 赵静 女 20 生物 植物学
a){学号}
b){学号、姓名}
c){年龄、系别}
d){姓名、性别}
e){姓名、专业}
可能大家不知道如何来选择。如果这个题目我们可以正确的解答,那么对于超键以及候选键和主键的概念已经有很深刻的认识了。
透过概念,我们可以了解到,超键包含着候选键,候选键中包含着主键。主键一定是惟一的。为什么呢?因为他的爷爷超键就是惟一的。
我们分析一下上面的题目,abcde5个答案都可以作为超键,他们组合在一起的集合可以用来惟一的标识一个实体。
请注意我们的要求:候选键。候选键要求是不能包含多余属性的超键,我们看一下答案b。在答案b中,如果我们不使用姓名也可以惟一的标识一条数据实体,可以说姓名字段在这里是多余的。那么很明显,b选项包含了多余字段属性。那么这题答案应该选择b。
那么其他的4个选项都可以作为候选键,假设很幸运,a)学号 被选择作为用户正在使用的候选键来惟一标识元组了,那么他很幸运的获得了主键的称号(主键->候选键)。