超键 主键 候选键 可选键

本文介绍了数据库设计中的键定义,包括超键、候选键、主键和可选键的概念,并通过一个具体的例子说明了这些概念的区别及应用。

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

简介

本文介绍一下数据库设计中的键如何定义

定义

超键

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键

超键可能存在信息冗余,比如某个超键可能是由3个字段组成,事实上由其中的2个字段就能唯一识别实体中的实例

候选键

候选键(Candidate Key):一个或者多个属性的集合,可以唯一确定实体的一个实例

主键

主键(Primary Key):从候选键中,选中用来作为唯一标识的属性或者属性组被称为主键

可选键

可选键(Alternative Key):候选键中没有选中的其他键,称为可选键

举例介绍

假如有一张表记录员工的信息,主要有身份证、姓名、性别、年龄这四个字段.(假设不存在重名的现象)我们可以做出如下的判断:

  • 身份证唯一,所以是一个超键
  • 姓名唯一,所以是一个超键
  • (姓名,性别)唯一,所以是一个超键
  • (姓名,性别,年龄)唯一,所以是一个超键
这里可以看出,超键的组合是唯一的,但可能不是最小唯一的
  • 身份证唯一,而且没有多余属性,所以是一个候选键
  • 姓名唯一,而且没有多余属性,所以是一个候选键
这里可以看出,候选键是没有多余属性的超键

考虑输入查询方便性,可以选择身份证为主键,那么姓名就是一个可选键

题目

在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为()(选择一项)

学号姓名性别年龄系别专业
20020612李辉20计算机软件开发
20060613张明18计算机软件开发
20060614王小玉19物理力学
20060615李淑华17生物动物学
20060616赵静21化学食品化学
20060617赵静20生物植物学
a{学号}
b{学号、姓名}
c{年龄、系别}
d{姓名、性别}
e{姓名、专业}

答案为b,因为候选键为没有多余属性的超键,只用学号就可以唯一识别学生信息,姓名属性是多余的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值