一:相关定义及举例

定义

在《数据库系统概论》(第五版)——王珊、萨师煊编著中:
1.候选码的定义:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码;
3.主属性定义:候选码的诸属性称为主属性;
4.非主属性定义:不包含在任何候选码中的属性称为非主属性;
5.实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。

例子

根据上面的定义,如果有下表:
工号 | 姓名 | 住址 | 年龄 | 职位

假设工号、姓名和职位都可以唯一标识一个实体,说明都是候选码,那三者也应该都是主属性,三者根据实体完整性规则不可以取空值,余下是非主属性(还是说选定了工号作为主码以后,工号是主属性,其余是非主属性,工号不可以取空值)

码的定义是什么?

以下定义出自热心网友:
1.是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。  
2.超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。  
3.候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。
4.按照上面码的定义看看外码的定义如下:
设F是基本关系R的一个或者一组属性,但不是关系R的码。K(s)是基本关系S的主码。如果F与K(s)相对对应,则称F是R的外码。
综上:F是非主属性组,必定可以取空值,但是课本例子包括课后题都说F可以是主属性,当为主属性时,为了保持实体完整性,不可以取空值。

二、举例

(在《数据库系统概论》(第五版)——王珊、萨师煊编著中P179页student表为例)

1.列举任意一个例6.1中Student模式上的函数依赖、无依赖关系的属性
Sdept依赖于sno,sdept与grade无依赖关系。

2.分别列举例6.1中Student模式上存在的一个平凡函数依赖和非平凡函数依赖
x->y,但x里面不含有y,则x->y称为非平凡依赖函数,例如知道学号不一定知道课程成绩(sno->sdept), 平凡依赖反之(sno->sno),平凡依赖是一定成立的。

3.分别列举例6.1中Student模式上存在的一个完全函数依赖和部分函数依赖
P181中间
(sno,cno)->grade 完全依赖
(sno,cno)->sdept 部分依赖,因为sno->sdept

4.分别列举例6.1中Student模式上存在的传递依赖。
Sno->sdept,sdept->mname 所以sno->mname(P181)

5.找出例6.1中Student模式上的候选码、主码、超码、外码、主属性、非主属性
候选码:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(sno,cno)一起
主码:如果一个关系有多个候选码,则选定其中一个为主码(sno,cno)一起
超码:是一个或多个属性的集合,超码中的这些属性可以让我们在一个实体集中唯一地标识一个实体(sno,cno)一起
外码:cno,sno(相对于普通学生表,和课程表)
主属性定义:候选码的诸属性称为主属性;
非主属性定义:不包含在任何候选码中的属性称为非主属性

数据库:候选码、主码、超码、外码、主属性、非主属性相关推荐

  1. 码、候选码、主码、全码和外码的区分

    关系数据库中的几个容易混淆的几个概念 码 也称码键.表中的某个属性组,它可以唯一确定一个元组.比如学号 候选码 若关系中某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码 候选码的 ...

  2. 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  3. 在数据库什么是主键与外键

    在数据库什么是主键与外键 2008-03-05 15:03 这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的 ...

  4. 数据库中的候选码、主码、全码、外码、主属性

    1.候选码:能够唯一标识一条记录的最小属性集.若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码. 2.主码:主码指主关键字.主关键 ...

  5. 数据库系统--码,超码,候选码,主属性,非主属性,主码,全码,外码基本概念

    当然,上述只针对学生这一个关系.若涉及参照关系还要引入外码(Foreign Key) ,A关系的其中一个属性同时是B关系的主码,那么该属性则是A关系的一个外码,参照B关系.

  6. MySQL数据库SQL的主键和外键的作用

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  7. 一文搞懂候选码、主码、全码、外码、主属性、主键、主关键字、非主属性清晰总结

    一.讲解 首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字... 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系. 话不多说,上图 ...

  8. 候选码、主码、全码、外码、主属性、主键、主关键字、非主属性

    一.讲解 首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字- 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系. 话不多说,上图: ...

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

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

  10. 数据库(笔记)——候选码、主码、外码以及关系的完整性

    关系的码与关系的完整性 关系的码 1. 候选码 2. 主码 3. 外码 关系的完整性 总结 关系的码 1. 候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 如: 学生关系中 ...

最新文章

  1. 对标Mobileye!百度Apollo公布L4级自动驾驶纯视觉解决方案Apollo Lite
  2. 【算法】我面了N+算法岗候选人,这样的给了SSP
  3. cocos2dx之lua项目开发中MVC框架的简单应用
  4. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践
  5. 惠斯通电桥信号调理芯片_elmos推出专为汽车应用开发的传感器信号调理芯片E520.47...
  6. java解析XML Node与Element的区别
  7. (原创)使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之五...
  8. Atitit。监听键盘上下左右方向键事件java js jquery c#.net
  9. php 表单数据的获取代码,php 表单数据的获取代码
  10. SQL server2016 数据库 基础知识
  11. 一级建造师-通信-知识点口诀整理
  12. 谷歌chromeos_闲置电脑也能焕发第二春?试试谷歌 Chrome OS 操作系统
  13. 计算机网络VLAN间路由,交换机必学知识 VLAN间路由理论指导
  14. 添加网络位置(共享目录)
  15. 【数字化常识】浅谈互联网企业的利器——“网络效应”
  16. 【AUTOSAR】基于RT-Thread内核的AUTOSAR在n32g上的实现
  17. 软件设计师——数据流图
  18. 《Metasploit魔鬼训练营》环境搭建与前两章经历体会
  19. SQL 数据库 学习 011 关系、一对一、一对多、多对多
  20. 用php如何写后台数据,PHP后端接口怎么写

热门文章

  1. 【区块链】区块链技术指南
  2. Python基础代码大全,都在这里了,初学者必看
  3. python源码大全-python代码大全
  4. python清空屏幕代码_python代码怎样清屏
  5. 软件测试用例关键要素,软件测试用例的设计
  6. python教育版_pycharm教育版下载
  7. Mac实用软件及功能吐血总结
  8. Java语言程序设计(基础篇)
  9. MySQL详细教程 这一篇就够啦!
  10. 一个完整的C语言程序