【数据库】主键,超键,候选键,外键区别与联系?
本文为借阅书籍资料,观看他人博客总结得出,欢迎提问:
一. 前期说明
作为一个初学者,很容易搞不清楚主键,候选键等等,数据库中的各种键被搞得云里雾里,本次重点来介绍数据库中的各种键。
二.定义概要
首先来看看对键的各种定义:
超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键。
候选键(candidate key): 不含多余属性的超键被称为候选键。
主键(primary key):用户选作元组标识的一个候选键 称为主键
外键(foreign key): 关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。
说到这里可能读者还是比较懵。下面我来举例说明。
三.举例论证
假设有两个关系模式:
学生(学号,姓名 ,班级,课程号 , 身份证号)课程(课程号 , 课程名)
超键:能够唯一表示元组的属性集都可构成超键,所以,由上表知只要是含有 学号,身份证号 的集合都可以作为此表的超键,如 :(学号)
, (学号,姓名 ,班级)
,(身份证号,课程号)
都可以构成。
候选键:候选键是属于超键的,被称为是最小的超键,也就是去掉候选键中的任何一个属性,他都不是超键了。上例中候选键有(学号)
, (身份证号)
。
主键:主键是候选键中的一个,是人为规定选出符合业务的一个候选键,如上,虽然学生表中有两个候选键,但是,由于业务需要,通常你可以选择学号作为主键。课程表也是。
外键:外键的概念比较容易区分,学生表中的外键就是课课程号。外键主要是用来描述表之间关系的属性。
其实,这些键的概念非常容易区分,只是缺少一些必要的训练,所以会被键的一些名称搞混。
博文总结
主键 一定是 候选键, 候选键不一定是主键。
候选键一定是超键,但超键不一定是候选键。
外键用来连接两张表,是另一张表的主键。
【数据库】主键,超键,候选键,外键区别与联系?相关推荐
- 数据库中什么是主键,什么是外键?
数据库中什么是主键,什么是外键? 作者:不染丹心 来源:博客园 发布时间:2009-12-17 22:57 阅读:128 次 原文链接 [收藏] 这需要理清几个概念: 1)候选键: 关 ...
- SQL语句 -非空约束 - 唯一约束 - 主键约束 - 默认约束 -外键约束
文章目录 约束 约束介绍和分类 非空约束 唯一约束 主键约束 默认约束 案例练习 外键约束 约束 约束介绍和分类 约束的概念: 约束是作用于表中列上的规则,用于限制加入表的数据 约束的存在保证了数据库 ...
- mysql是否需要设置外键_数据库到底需不需要设置外键?
在大型系统中(性能要求不高,安全要求高),最好使用外键(外键可以增强数据库数据的完整性和一致性) 在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率) 小 ...
- 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
概述 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的 ...
- 数据库表设置外键VS不设置外键,哪个更好?
转发自极光轻学,原文链接:https://jiguangqingxue.com/info/24 必须设置外键VS不要设置外键的争论 数据库表到底要不要设置外键约束,一直具有非常大的争议.我认为完全没有 ...
- mysql主外键添加_mysql 增加外键:(+创建主键)
MySQL是开源免费的数据库软件,是一款很优秀的软件,作为我们的学生或者科研人员在开发软件的时候,最好用也是最省钱的.所以MySQL学好是至关重要的! SQL语言包含4个部分: ※ 数据定义语言(DD ...
- mysql设置外键_mysql怎么增加外键
mysql增加外键的方法:1.在CREATE TABLE语句中,通过FOREIGN KEY关键字来添加外键:2.在ALTER TABLE语句中,通过ADD和FOREIGN KEY关键字来添加外键. M ...
- 是否有必要使用外键?为什么不用外键?
什么是外键: 如果一个实体的某个字段指向另一个实体的主键,就称为外键.被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 外键的作用: ① ...
- mysql删除表外键_MySQL删除所有表的外键约束、禁用外键约束
数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关 ...
- mysql 外键详解_mysql外键详解
1.1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确 ...
最新文章
- 描述一下 Intent 和 IntentFilter?
- java memcachedclient_Java memcached client怎样建立长连接
- Codeforces Gym 100342J Problem J. Triatrip 求三元环的数量 bitset
- java关于包的叙述_Java中构造方法,包的引用,final,super等词的概括
- 西门子rwd60参数设置调试手册_西门子控制器RWD60
- 解决ant design vue中的modal弹框样式修改无效问题 修改modal样式无效
- caffe lmdb
- Chrome谷歌浏览器Flash Player被屏蔽如何解决
- 【贪玩巴斯】数字图像处理基础课堂笔记(六)——「一维、二维离散傅里叶变化及其方变换,卷积定理,频域滤波的步骤」 2021-11-08
- 31个全网最常用python实现(体系学习,学完显著提高代码复用能力)
- html个人空间制作,html+css+js制作简单网站首页
- Room使用遇到的问题
- 你鼓舞了我是世界杯主题曲吗_20位鼓舞人心的科技女性
- Java基础 IP地址
- html5 相册翻转效果,HTML5 css3:3D旋转木马效果相册
- 6个开源项目提高GIS编程技能
- 离散数学概论---(8)图论:图的基本概念
- GitHub Flavored Markdown 规范
- Shift_JIS、CP932、MS932、Windows-31J区别
- pigpio 利用普通GPIO为树莓派增加软串口实现ttl通讯