数据库码的理解

简介: 写下个人理解
1.码或键

通过属性或者属性组区分两个不同的元组,这样的属性或者属性组称为码或键。比如:一个学生表中,可以通过学号这一个属性区分不同学生,也可以通过(学号、身高、性别)这一属性组来区分不同学生

2.超码或超键

如果有个码,可以去掉其中某个属性,它依然是这个关系的码,那么这样的码是超码。比如:(学号、身高、性别)这里面去掉性别依然可以区分不同学生。每个关系默认最少一个超码,因为一个表不能只有一列,默认的超码就是这个表的所有属性的集合

3.候选码或候选键

对应超码去理解,如果有个码,不能移除任一属性,否则就不是码了,这样就是候选码。比如:一个学生表中,单独一个学号属性可以是候选码,候选码就是最小超码,候选码不代表就只能是一个属性,假设一个学生表中存在姓名相同,身高不同的两个人,那么(姓名、身高)这一属性组就可以称为候选码,所以一个表可能有多个候选码,最少得有一个

4.主码或主键

通常说主键,在候选码中选最小的那个,比如学号,身份证号,选其中一个就可以

5.全码或主键

当一个表中所有属性的集合才是这个表的候选码,那么可以称为全码,比如:性别、年龄、年级、身高,如果这四个属性一起才能确认一条元组,那么这个属性的集合就是这个关系的主码

6主属性和非主属性

关系中任意一个候选码中的属性为主属性,不在任一候选码中的属性为非主属性

举例说明:
创建一个成绩表
image.png
数据如下
image.png

码:(学号、学科、成绩) 、(学号、学科)
超码:(学号、学科、成绩)
候选码:(学号、学科)
主码:(学号、学科)
没有主码
主属性:学号、学科
非主属性:成绩

注意:
这个表没有单一的属性可以作为主键,只能添加联合主键:
格式:alter table 表名 add constraint 主键约束的名字 primary key(列名1,列名2)
alter table chengji add constraint lh_pk primary key(学号,学科)
目录
相关文章
|
网络架构
静态路由配置实验(超详细讲解+详细命令行)
本文详细的介绍静态路由配置实验,内含详细的实例解析,该文你值得拥有。
|
JSON 网络协议 数据安全/隐私保护
nps npc docker 部署 解决端口报错问题
nps npc docker 部署 解决端口报错问题
1246 0
|
3月前
|
JSON 监控 测试技术
微服务接口设计全解:RESTful/RPC 规范、兼容方案与生产级实战
本文系统阐述微服务接口设计规范,涵盖RESTful与RPC两大体系:明确接口作为行为契约的本质,提出语义清晰、兼容稳定、高性能等五大设计目标;详解URI设计、HTTP方法/状态码、请求响应体等RESTful规范,并给出完整代码实例;解析RPC的契约优先、幂等性、序列化等核心要求;对比二者差异,提供选型指南与灰度发布、多版本共存等生产级兼容方案,助力构建高可靠微服务架构。
538 4
|
7月前
|
人工智能 弹性计算 自然语言处理
史上首次!万卡AI集群支撑双11,通义千问大规模落地
2025年双11,阿里云提供超千万核ECS算力及万卡灵骏智算集群,支撑淘宝推荐等核心业务性能提升超30%。通义千问大模型大规模落地,Qwen-MT单日调用超14亿次,助力商品出海、客服与经营分析,全面赋能双11智能化升级。
1106 0
史上首次!万卡AI集群支撑双11,通义千问大规模落地
|
11月前
|
安全 数据安全/隐私保护
SAP集成HTTP接口(x-www-form-urlencoded格式)
实现这一过程时,务必遵循最佳实践,包括确保代码的稳定性、考虑到异常处理和系统资源的优化使用。这样做不仅能确保数据的安全和有效性,还能提高系统集成的效率和可靠性。
705 4
|
人工智能 自然语言处理 API
硅基流动入驻阿里云云市场,核心API服务将全面接入阿里云百炼平台💐
2025年6月18日,AI Infra企业硅基流动与阿里云达成战略合作,加入“繁花计划”并入驻云市场。其大模型推理平台SiliconCloud核心API将接入阿里云百炼平台,依托灵骏智能计算集群为客户提供高效服务。作为国内领先的MaaS平台,SiliconCloud已集成百余款开源大模型,服务600万用户及众多企业。双方将在算力协同、行业解决方案等领域深化合作,推动AI生态发展。
1411 0
|
存储 安全 算法
MiniOS 3.3.4 发布,新功能有这些!
【10月更文挑战第19天】
1111 0
MiniOS 3.3.4 发布,新功能有这些!
|
存储 人工智能 供应链
区块链技术在金融领域的应用与挑战
区块链技术在金融领域的应用与挑战
736 0
|
Oracle 关系型数据库 数据库连接
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
1696 0
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法