数据库中的超码、候选码、主码
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。 候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。 是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。
超码:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体。
例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名、性别}也是超码.在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,既{姓名}不是一个超码,{性别}、{姓名、性别}也不是。
虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。
候选码:如果任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码;
在上例中,只有{学号}、{身份证号}都是候选码;另外,如果性别和姓名可以唯一标识一个学生,则{姓名,性别}也为超码。
主码:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码;此外,应该选择哪些从不或极少变化的属性;
总结: 所有码都是一个集合。 所有可以用来在实体集中标识唯一实体的集合,都是超码。 如果任意超码的真子集不能包括超码,则称其为候选码。 被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码。 超码包括候选码,候选码包括主码。
转载于:https://www.cnblogs.com/linqiang/archive/2013/01/06/3391330.html
数据库中的超码、候选码、主码相关推荐
- mysql 多个主码_数据库中几个基本概念 主码 外码
[一 逻辑模型中的信息可以用三个概念来描述:(1) 实体(如果一个对象拥有许多特性和值,那么它可能是个实体)(2) 属性(如果一个对象拥有一个特性的值,那么它可能是属性) 主码 ,外码也可以称为主键, ...
- 数据库中几个基本概念 主码 外码
主码 ,外码也可以称为主键,外键. 什么是主码,主码是一个能唯一标识一个元组的属性.在一个关系(表)中,主码不一定只有一个,但是一定要有的.因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都 ...
- 彻底搞懂数据库中的超码,候选码,主码,主属性,非主属性,全码的区别
超码:某一个能够唯一标识一条记录的属性或属性集 候选码:某一个属性组的值能够唯一的标识一个元组,而其子集不能,则称该属性组为候选码,候选码是一类特殊的超码,包含候选码的属性组一定是超码 主码:若一个关 ...
- 数据库—属性 码 候选码 主码 外码 主属性 非主属性
问题产生:在学习第6章关系数据理论时,由于之前关于码的各种概念不熟悉,导致不理解. 资料来源:数据库系统概论–王珊 概念及举例 (1):基础定义 实体:客观存在的物体 属性:一个实体的某个特征 码:能 ...
- 函数依赖 候选码 主码 第三范式 BCNF 多值依赖
关系数据库理论 课本第六章 关系数据库理论 一.函数依赖: 1.完全函数依赖 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB. 2.部分函数依赖 通过AB能得出C,通过A也能得出C,通 ...
- 超码 候选码 主码
例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生.假设学生(实体)具有多个属性:学号,身份证号,姓名,性别.因为通过学号可以找到唯一一个学生,所以{学号}是一个 ...
- 数据库SQL语句UPDATE能否修改主码
首先需要说明的是,本文是在RDBMS为 SQL Server 的前提下进行探讨的,其他RDBMS具体情况不清楚,大家根据自身情况选择性阅读~ 问题来源: 在学习UPDATE关键字修改数据的时候,有一条 ...
- java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...
- 数据库中如何计算候选键/候选码(candidate key)
在这里不提及过多的概念.原理,直接讲如何计算candidate key
最新文章
- Apache Httpd 2.2 配置CA证书,实现Https加密通讯
- 第三轮316工程知识竞赛简讯_【资讯】第五届日本文化知识竞赛决赛
- java 调整数组顺序使奇数位于偶数前面
- 截取指定字符前_VBA学习笔记35-1:字符串拆分与组合
- python正弦波和等腰三角波_正弦波脉宽调制(SPWM)原理
- 【FFMPE系列】之FFMPEG常用命令
- “Hello World!“”团队第七周召开的第二次会议
- 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
- 服务器端移动端车牌识别sdk
- Scratch3.0(一)初识Scratch3.0
- 统计|如何理解两个总体均值之差的区间估计的计算
- ASP.NET Development Server的Directory Browsing模式HTML垃圾代码
- Linux学习笔记_2021-01-21
- VMWare下载安装以及创建虚拟机教程
- 网络分层的真实含义是什么?
- 三维点云语义分割模型介绍
- Java实现 蓝桥杯 算法训练 Cowboys
- 如何用 LaTeX 排版高中数学试卷(转)_Simplelife_新浪博客
- 关于VSCODE的插件 一
- math.pow 和 Math.sqrt函数