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

数据库 超键、候选键、主键、外键

前言:

一说到键,总感觉迷迷糊糊,于是总结一下它们之间的区别。
一、超键:

超键:在关系模式中,能唯一标识元组的属性集称为超键。

二、候选键:

候选键:如果一个属性集能唯一标识元组,且有不包含多余属性,那么这个属性集称为候选键(候选键是没有多余属性的超键)。

三、主键:

主键:关系模式中用户正在使用的候选键称为主键。一般,如不加说明,键是指主键。

四、外键:

外键:在关系模式R中,如果某属性集是其他模式的候选键,那么该属性集对模式R来说是外键。

举例:

光讲了定义,相当于没有说,我们通过一个例子来理解什么是超键、候选键、主键及外键。

学号姓名性别年龄学院专业
20170101任雅琪22心理心理
20170102李润霞21生科生科
20170104景晓芳20教育数学
20170106佟彤20化材化学
20170107柴一帆19艺术画画
20170108张佳佳18音乐唱歌

A:{学号}
B:{学号、姓名}
C:{年龄、学院}
D:{姓名、性别}
E:{姓名、专业}

说一下自己的理解吧。
A:{学号}可以唯一的标识一个元组,比如我们用学号为20170101就可以知道性别为女,名字为任雅琪的人。由于没有多余的属性,所以{学号}既可以称为一个超键,也可以称为一个候选键。
B:{学号、姓名}也可以唯一的标识一个元组,但是这个集合里的姓名属性是不必要的,也就是多余的,即如果没有{姓名}这个属性,那么这个集合{学号、姓名}也可以唯一确定一个元组。由于有多余的属性,所以{学号、姓名}可以称为超键,但是不能称为候选键。
C:{年龄、学院}、D:{姓名、性别}、E:{姓名、专业}均可以唯一的标识一个元组,并且其中每一个属性均是必须的,去掉任意一个属性,那么其所在的集合便不能唯一的标识一个元组,所以C、D、E均可以称为超键,也可以称为候选键。

总结:

候选键可以称为超键,但超键不一定可以称为候选键。候选键的属性一定不多余,但超键的属性不一定均有用。用集合的关系来说就是候选键隶属于超键,而主键为候选键中的一个元素。

http://www.lryc.cn/news/2419313.html

相关文章:

  • 【Flink-HDFS】Call From * to * failed on connection exception: java.net.ConnectException: 拒绝连接;
  • cs服务器(cs索沛服务器)
  • 梯度下降法求解线性回归之python实现
  • ASP.NET运行环境配置
  • 云诺网盘为什么关停了好用的企业网盘有哪些
  • 使用vAPP管理资源
  • Unity - Shader - Projector 高空云层底下透明阴影 - semitransparent shadow
  • Linux 串口RS232/485/GPS 驱动实验(移植minicom)
  • MTK 平台屏蔽 factory mode
  • Redis可视化工具Windows版 Another Redis Desktop Manager 安装与使用_保姆级别
  • 多益网络,面试智商测试题
  • 如果人生太难,就去医院看看
  • Synchronized、lock、volatile、ThreadLocal、原子性总结、Condition
  • 内与外的困惑:找出System进程占用100%CPU的元凶
  • GIS空间分析(四)—— 空间分布类型
  • 如何取消标题栏
  • windows清理系统垃圾bat脚本
  • linux安装zend,linux安装配置Zend Optimizer详解
  • PowerSyncKM 包尔星克 对拷线无法自动链接windows和统信系统
  • GRUB的配置文件的menu.lst的写法(旧版grub)
  • 局域网、以太网、无线局域网学习笔记
  • 关于司南导航全系概况模糊学习记录
  • 数据结构和算法(38)之八皇后问题
  • 优秀网站博客集锦
  • 何为Turing Machine(图灵机)?
  • 手机中的com.android.provision删除可不可以,Android Provision (Setup Wizard)
  • windows7怎么一键重装系统 电脑重装操作系统Windows7
  • SSL连接建立过程分析(1)
  • MATLAB|基于QPSO-LSTM的短期风电负荷预测模型(完全复现)
  • java 环境变量的配置