数据库相关基础概念

  • 超码
  • 候选码
  • 主码
  • 主属性
  • 非主属性

超码

定义:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体。

例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名、性别}也是超码.在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,既{姓名}不是一个超码,{性别}、{姓名、性别}也不是。
  
虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。

候选码

定义:如果超码的任一真子集不能包括超码,则称其为候选码;超码包括候选码;

在上例中,只有{学号}、{身份证号}都是候选码;另外,如果性别和姓名可以唯一标识一个学生,则{姓名,性别}也为超码。

主码

定义:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码;此外,应该选择哪些从不或极少变化的属性;

注:

  • 一个实体集中只能有一个主码,但可以有多个候选码
  • 主码的选择必须慎重。
    例如:人的姓名是不可以做主码的,因为可能有多个人重名,而身份证可以做主码。
  • 主码的选择应该是那些从不或极少变化的属性。
    例如:一个人的地址就不应该作为主码的一部分,因为它很可能变化

主属性

定义:包含在任一候选码中的属性称主属性。

非主属性

定义:包含在任一候选码中的属性称为非主属性。

非主属和主属性互为补集。

例如:

表1表1表1

对于表1,(学号、课名)这个属性组就是候选码。该表中有且仅有这一个码。(假设所有课没有重名的情况)
主属性就有两个:学号课名
非主属性:除了学号与课名,其他属性都是非主属性

超码、候选码、主码、主属性、非主属性相关推荐

  1. 数据库—属性 码 候选码 主码 外码 主属性 非主属性

    问题产生:在学习第6章关系数据理论时,由于之前关于码的各种概念不熟悉,导致不理解. 资料来源:数据库系统概论–王珊 概念及举例 (1):基础定义 实体:客观存在的物体 属性:一个实体的某个特征 码:能 ...

  2. 彻底搞懂数据库中的超码,候选码,主码,主属性,非主属性,全码的区别

    超码:某一个能够唯一标识一条记录的属性或属性集 候选码:某一个属性组的值能够唯一的标识一个元组,而其子集不能,则称该属性组为候选码,候选码是一类特殊的超码,包含候选码的属性组一定是超码 主码:若一个关 ...

  3. 超码 候选码 主码

    例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生.假设学生(实体)具有多个属性:学号,身份证号,姓名,性别.因为通过学号可以找到唯一一个学生,所以{学号}是一个 ...

  4. 函数依赖 候选码 主码 第三范式 BCNF 多值依赖

    关系数据库理论 课本第六章 关系数据库理论 一.函数依赖: 1.完全函数依赖 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB. 2.部分函数依赖 通过AB能得出C,通过A也能得出C,通 ...

  5. 区分候选码、主码、超码

    关系:笛卡尔积的子集 定义 超码:由一个或多个属性组成的一个属性集这个属性集可以唯一确定关系中的每一个元素.(子集也可以唯一确定) 候选码:关系中的某一属性组的值能唯一地标识一个元祖,而其子集不能,则 ...

  6. 【数据库】码,超码,候选码与主码,外码

    码的作用 用于区分不同元组.也就是不同行,此表中则为区分不同学生. 超码 超码 是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组: e.g. 在上表中,{学号} 可唯一标 ...

  7. 数据库中码、超码、主码、候选码

    码 码是一个或多个属性的集合. 超码 是一个或多个属性的集合,超码中的这些属性可以让我们在一个实体集中唯一地标识一个实体. 候选码 候选码是极小的超码集,也就是它的任意真子集都不是超码,而他本身是超码 ...

  8. mysql 中外码和主码_数据库原理与应用(6)——关系的候选码、主码和外码、关系完整性、关系代数、元组关系的演算、域关系演算...

    一.关系的候选码 候选码(Candidate Key):能唯一标识关系中元组的一个属性或属性集 性质:唯一性,最小性 二.关系的主码和外码 主码(Primary Key):从多个候选码中选择一个作为查 ...

  9. 数据库原理和应用(6)—— 候选码、主码和外码,关系的完整性、关系代数、关系的演算

    一.候选码.主码和外码 1. 候选码(Candidate Key) 定义:能唯一标识关系中元组的一个属性或属性集,称为候选码. 性质:具有唯一性和最小性. 2. 关系的主码和外码 主码 定义:从多个候 ...

最新文章

  1. vs2015 C#打包程序为exe
  2. 怎么查看电脑硬盘序列号
  3. 阿里技术高P访谈之张俭恭:情义是阿里与外企的最大不同
  4. javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点
  5. Java中 List、Set、Map遍历方式以及性能比较
  6. maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法
  7. Oracle Data Recovery Advisor(DRA) 数据恢复顾问
  8. Vector CANape - How to Send Receive CAN Message in CANape
  9. ios12xen html插件,iOS 12.4 越狱后实用插件推荐(二)
  10. 新一代大数据技术架构
  11. Windows下的YouTube-dl与FFmpeg下载安装配置
  12. vmin、vmax用处
  13. 炼数成金 课件整理数据分析与R语言 第1周
  14. MOOC武汉大学SAS第2章作业
  15. 长角牛网络监听 arp欺骗
  16. 2020秋季校园招聘深信服、噢易云、绿盟面筋
  17. SecureCRT win7 安装破解使用
  18. 推荐安全且匿名的邮箱 ProtonMail -- PGP算法
  19. C语言程序设计-算数运算符、赋值运算符、逗号运算符及表达式
  20. Obsidian_常用三方插件

热门文章

  1. 基于迁移学习的脑肿瘤自动检测研究与系统实现
  2. ”==”和和equals方法究竟有什么区别?
  3. Flutter 精品项目之基于SQLite本地数据的日常支出手帐App(教程含源码)
  4. 好的产品需要「显而易见」,而其本质就是简单
  5. 软件不兼容android5.1.1,Android 解决OPPO 5.1 浮窗权限不兼容问题
  6. python Gooey库打包问题
  7. 哈密尔顿问题与哈密尔顿环
  8. zynq7000创建fsbl启动_【转】Zynq启动过程探讨-进入main函数前不了解的事-Zynq-7000系列-米尔科技论坛...
  9. linux 设置显卡命令,Linux命令行下如何配置nVIDIA显卡
  10. 研究过但未解决或完全解决,要注意“文贵创新”。