超键、候选键、主键的区别和主键约束与唯一约束的区别

本文深入解析了数据库中超键、候选键、主键的概念及其区别,同时对比了主键约束与唯一约束的不同之处,帮助读者理解数据库键的原理与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超键、候选键、主键的区别和主键约束与唯一约束的区别

超键、候选键、主键的区别

超键(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个选项都可以作为候选键,假设学号被选择作为用户正在使用的候选键来惟一标识元组了,那么他就获得了主键的称号

转自:https://www.cnblogs.com/lumnm/archive/2010/11/08/1871783.html

主键约束与唯一约束的区别

1.主键约束(PRIMARY KEY)

  1. 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。
  2. 是不可能(或很难)更新.
  3. 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).
  4. 主健可作外健,唯一索引不可;

2.唯一性约束(UNIQUE)

  1. 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束.
  2. 只要唯一就可以更新.
  3. 即表中任意两行在 指定列上都不允许有相同的值,允许空(NULL).
  4. 一个表上可以放置多个唯一性约束

from: https://zhidao.baidu.com/question/873544394916011572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值