候选键数据库
发布时间: 2024-06-28 03:25:47
Ⅰ 数据库候选键的问题
sql">候选键的严格定义:关系模式R(u)的属性集合K∈u的候选键,如果
(1)R(u)的任何一个关系实例的任意两个元素在属性集合K上的值部不相同————唯一性
(2)K的任何真子集都不满足条件————最小性
换句话说:选键(candidatekey)就是不含有多余属性的超键称为候选键
示例:
在SQLServer数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为()(选择一项)
学号姓名性别年龄系别专业
20020612李辉男20计算机软件开发
20060613张明男18计算机软件开发
20060614王小玉女19物理力学
20060615李淑华女17生物动物学
20060616赵静男21化学食品化学
20060617赵静女20生物植物学
a){学号}
b){学号、姓名}
c){年龄、系别}
d){姓名、性别}
e){姓名、专业}
答案分析:a)是主键,作为用户正在使用的候选键来惟一标识元组
b)如果我们不使用姓名也可以惟一的标识一条数据实体,可以说姓名字段在这里是多余的。那么很明显,b选项包含了多余字段属性。那么这题答案应该选择b
我们来看原题:个关系R里面,有A,B→C;A,B→D;C→B;D→E
(1)由A,B可以确定C
由A,B可以确定D
可以确定是A,B是最小原则,所以A是侯选建
(2)再由C确定B,假设C是上例的name字段,而B是一外键(或主键),那么第二个答案不可以作为单独的答案
原题是什么?可以贴图?感觉答案不对呀
Ⅱ 数据库中什么是候选键
数据库中候选键的定义:
候选键是对具有关系键特性的一个或多个属性(组)的统称。
它需要同时满足下列两个条件:
1.这个属性集合始终能够确保在关系中能唯一标识元组。
2.在这个属性集合中找不出合适的子集能够满足条件。
满足第一个条件的属性集合称为超键,因此也可以把候选键定义为"最小超键",即不含有多余属性的超键。
例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
而在选课表中,只有属性组“学号”和“课程号”才能唯一地标识一个元组,则候选键为(学号,课程号)。
Ⅲ 数据库里面的主键和外键及候选键是什么意思啊
1、主键(primary key)吧:一张表(关系)的一个列(属性)或多个列可以作为主键,但是前提是让这个列作主键,这个列就能保证该列下的各个行(元组)的值不能相同,比如说用姓名属性作主键的话,那么这个主键就不一定可以,如果有两个人是同样的名字的话,就不能做到该属性下的各个元组数据的值不同,如果用阿拉伯数字作主键就是一个很好的选择。
2、外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键。
3、候选键(Candidate Key):能唯一标识表(关系)中行(元组)的列(属性),则称该属性为候选键,也称 候选关键字 或 候选码;由此来看候选键可以不只一个,还看一看得出的就是主键同时它也是候选键。
热点内容