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

摘要:
基于示例的具体解释:假设有如下两个表:学生-教师超键:根据超键的定义,学生表中学生编号或ID编号的任何组合都是表的超键。外键主要用于描述两个表之间的关系。

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键成为主键
外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。


结合实例的具体解释:

假设有如下两个表:
学生(学号,姓名,性别,身份证号,教师编号)
教师(教师编号,姓名,工资)

超键:
由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。

候选键:
候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。

主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。

外键:
外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。

免责声明:文章转载自《数据库—超键、候选键、主键、外键》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VC++通用控件编程Features for Multi-Target Multi-Camera Tracking and Re-identification论文解读下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关系数据库设计方法

概念结构设计方法(概念模式) 概念模式通常采取自顶向下法(实体分析法),通过两个步骤完成概念设计: 建立局部信息结构 将局部信息合并为全局信息结构并优化,使用 E-R 模型作为概念模型的描述工具 E-R 图的表示方法 概念结构设计是将需求分析得到的用户需求抽象为信息结构(概念模型)的过程,通常使用E-R图作为建模工具具体由三部分组成: 实体型:用矩形...

MySQL连表操作之一对多

引入 当我们在数据库中创建表的时候,有可能某些列中值内容量很大,而且重复。 例子:创建一个学生表,按学校年纪班级分,表的内容大致如下: id name partment 1 xxx x学校x年级x班级 2 ooo x学校x年级x班级 3 zzz z学校x年级x班级 4 ddd y学校x年级x班级 我们看出来对应的partment对应...

navicat如何设置外键

今天上午刚刚弄明白了在navicatformysql上如何设置外键,现在分享出来,希望能够对大家有帮助。 先介绍一下基本情况。现在有两个表一张是teacher表一张是dept表,现在我想把teacher表中的dept属性设置为外键,关联dept表中的code属性。具体情况如图;好了,基本情况介绍完毕,现在开始教你们navicatformysql怎么设置外...

报错:无法截断表 '某表',因为该表正由 FOREIGN KEY 约束引用

某表的某个字段作为另一个表的FOREIGN KEY,在truncate另外一个表后,再truncate某表,就报如上的错。 解决方法: → 删除另外一个表的外键 IF OBJECT_ID(N'[dbo].[外键]', 'F') IS NOT NULL ALTER TABLE [dbo].[另外一个表] DROP CONSTRAINT [外键];...

MYSQL数据库基础篇

MySQL基础入门 一、数据库1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: l  可存储大量数据; l  方便检索; l  保持数据的一致性、完整性; l  安全,可共享; l  通过组合分析,可产生新数据。 数据库具有原子性,数据不可再分割! 1.2 数据库的发展历程 l  没有数据库,使用...

SQLite 如何设置自增字段

SQLite 如何设置自增字段 转自:https://www.wenjiangs.com/article/sqlite-autoincrement-key.html 使用数据库的程序员都知道,一个表需要一个或多个主键,避免和其它表的数据冲突,更好的索引表数据。主键一般都是自动增长的,并且会自动创建索引。 什么是主键? 主键是表中经常有一个列或列的组合,其值...