当前位置: 首页 > news >正文

数据库核心概念:候选码、主码与外码详解

一句话先记住:
候选码是“能唯一标识一行”的最小属性集;从中挑一个当主码;外码是“引用别人主码”的属性;主属性是任何候选码里的成员。

下面分开说清楚:

  1. 候选码(Candidate Key)
    定义:关系里能唯一标识一条元组、且去掉其中任一属性就不再唯一的最小属性集合。
    特点:

    • 唯一性:不同元组在该属性集上取值绝不重复。
    • 最小性:再少一个属性就失去唯一性。
    • 可以有多个:例如学生表里(学号)和(身份证)都可做候选码。
  2. 主码(Primary Key)
    定义:人为选定、用来在表里唯一区分行的那个候选码。
    特点:

    • 只能选一个;DBMS 会自动为它建唯一索引并强制 NOT NULL。
    • 其余候选码如果也声明,就叫“唯一键/候补键(Alternate Key)”。
  3. 外码(Foreign Key)
    定义:一个表(子表)里的属性或属性集,其取值必须要么全空,要么等于被参照表(父表)主码的某个现有值
    作用:建立两个表之间的参照完整性约束。
    例子:
    选课表(学号, 课号, 成绩) 里的“学号”引用学生表的主码“学号”;选课表的“学号”列就是外码。

  4. 主属性(Prime Attribute)
    定义:任何一个候选码里包含的属性都称为主属性。
    非主属性(Non-prime Attribute):不属于任何候选码的属性。
    例子:
    若候选码有(学号)和(身份证),那么学号、身份证都是主属性;姓名、年龄等是非主属性。

记忆口诀
“候选”是最小唯一键,
“主码”是选定的真命键;
“外码”拿来连别人,
“主属性”一切候选都包含。

http://www.jsqmd.com/news/234105/

相关文章:

  • 【开题答辩全过程】以 基于Python对手表数据的分析与可视化设计为例,包含答辩的问题和答案
  • 小白必看:AI分类器云端部署指南,没GPU也能用
  • Intel MiDaS深度估计部署案例:WebUI集成详解
  • 如何高效提取人名地名机构名?AI智能实体侦测服务一键高亮识别
  • MiDaS模型优化指南:提升深度估计准确率的技巧
  • 手把手玩转S7-200与双变频器Modbus通讯
  • Linux系统调用追踪与性能分析实战
  • 【开题答辩全过程】以 高校学生会管理系统为例,包含答辩的问题和答案
  • 分类模型持续学习:云端自动更新权重,准确率随时间提升
  • 移动端推送实现:极光推送、Firebase Cloud Messaging 实战
  • 零基础部署Qwen3-VL|通过Qwen3-VL-WEBUI镜像快速体验4B-Instruct版本
  • PLC数据监控小程序,最短10ms刷新一次,可监控西门子、GE、三菱、欧姆龙等各种PLC的变量...
  • 自然连接与等值连接全解析
  • AI MiDaS应用开发:自定义深度估计流程详解
  • 零代码玩转AI分类:预置镜像5分钟上线,按分钟计费不浪费
  • 3D空间感知实战:MiDaS模型在自动驾驶场景的应用案例
  • 浓度迁移与损伤方程的研究与探讨
  • AI分类模型部署神器:1小时1块云端GPU,比本地快5倍
  • Qwen3-VL-WEBUI镜像全解析|赋能视觉-语言理解新高度
  • Linux磁盘IO优化实战:从调度器到文件系统
  • 【AI编程工具】-Trae AI Solo模式完全指南(从入门到精通)
  • 单目深度估计应用案例:MiDaS在无人机导航中的实践
  • 边缘计算网关有什么好用的推荐
  • Elasticsearch生产环境最佳实践指南
  • 如何提升图纸识别准确率?试试Qwen3-VL-WEBUI增强推理模式
  • 万能分类器避坑指南:云端GPU实测,这些参数调优省80%时间
  • 移动端性能优化:Android/iOS 启动速度与流畅度优化
  • ResNet18模型体验馆:24小时自助,随到随玩
  • 达普韦伯 —— 让区块链落地更简单,让Web3梦想更快实现。
  • AI分类器融合技巧:投票集成+云端并行加速5倍