注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

宋金泽 廊坊师范学院信息技术提高班十四期

 
 
 

日志

 
 

数据库系统原理(一)--键和范式  

2017-10-08 21:33:08|  分类: 学习历程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

结合以下实例进行具体解释:

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

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

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

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

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

范式

范式:

关系模型原理的核心是“规范化”概念,规范化是把数据库组织成在保持存储数据完整型的同时又能最小化冗余的过程。规范化的数据库是符合关系模型规则的数据库,这些规则叫做范式。

范式总体关系图

第一范式(1NF):

1NF: 
  数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

指导原则: 
 1. 数组的每个属性只能包含一个值 
 2. 关系中的每个数组必须包含相同数量的值 
 3. 关系中的每个数组一定不能相同

例子: 
如图所示,此表不符合第一范式,最后一栏中姓名属性有多个属性值 
这里写图片描述

修改为1NF: 
这里写图片描述

第二范式(2NF):

2NF: 
  如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段。(不含有部分依赖)

例子: 
如图,除负责人部门不依赖项目编号外,其余都依赖项目编号,所以不满足第二范式 
这里写图片描述 
同时,如上修改,则满足第二范式。

第三范式(3NF):

3NF: 
  如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数信赖关系,那么该数据表满足第三范式。(不含有非主属性对键的传递依赖) 
这里写图片描述 
上表存在非主属性的函数依赖,所以不符合第三范式,将奖金列去掉即可!

  评论这张
 
阅读(4)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017