数据库——关系数据理论

目录

规范化

1.1函数依赖

1.1.1函数依赖

1.1.2平凡函数依赖与非平凡函数依赖

1.1.3完全函数依赖与部分函数依赖

1.1.4传递函数依赖

1.2码

1.3范式

1.3.1 1NF

1.3.2 2NF

1.3.3 3NF与 BCNF

1.4范式分解

1.5规范化小结


关系模式由五部分组成,是一个五元组:R(U, D, DOM, F)

  • 关系名R是符号化的元组语义
  • U为一组属性
  • D为属性组U中的属性所来自的域
  • DOM为属性到域的映射
  • F为属性组U上的一组数据依赖(关系内部属性与属性之间的一种约束关,主要分函数依赖和多值依赖)

由于D、DOM与模式设计关系不大,本博客中把关系模式看作一个三元组:R<U,F>

 

规范化

1.1函数依赖

参考简书作者eliter0609

1.1.1函数依赖

R(U)是一个属性集U上的关系模式,XYU的子集。若对于R(U)的任意一个可能的关系rr 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作XY

解释:若在一张表中,属性或属性组X确定,必定能确定属性Y的值,则称Y函数依赖于X,记做X->Y

举例:在学生表ST中通过学号能唯一确定一个姓名,则姓名函数依赖于学号

学生表ST

学号 姓名 性别
1 张三

1.1.2平凡函数依赖与非平凡函数依赖

定义:设一个关系为R(U),X和Y为属性集U上的子集,若X→Y且X不包含Y,则称X→Y为非平凡函数依赖,否则若X包含Y则必有X→Y,称此X→Y为平凡函数依赖

举例:在学生表ST中,学号总能函数决定它本身,记作“学号→学号”,此为平凡函数依赖。(学号,性别)->性别与(学号,性别)->学号也是平凡函数依赖

通常,我们主要讨论的是非平凡函数依赖:如学生表ST中学号函数决定的其他属性都是非平凡函数依赖

1.1.3完全函数依赖与部分函数依赖

1、完全函数依赖

定义:设X,Y是关系R的两个属性集合,X' 是X的真子集,存在X→Y,但对每一个X' 都有X' !→Y,则称Y完全函数依赖于X

解释:在一张表中,若 X → Y,且对于 X 的任何一个真子集(假如属性组 X 包含超过一个属性的话),X' → Y 不成立,那么我们称 Y 对于 X 完全函数依赖

举例:在成绩表SG中,成绩完全函数依赖于(学号,CID(课程号))

成绩表SG

学号 CID(课程号) 成绩
1 1 80

2、部分函数依赖

定义:设X,Y是关系R的两个属性集合,存在X→Y,若X' 是X的真子集,存在X' →Y,则称Y部分函数依赖于X

解释:假如 Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X,那么我们就称 Y 部分函数依赖于 X

举例:学生表ST中(学号,姓名)->性别,但是存在学号->性别,所以称性别部分依赖于(学号,姓名)

1.1.4传递函数依赖

定义:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X

解释:假如 Z 函数依赖于 Y,且 Y 函数依赖于 X (严格来说还有一个X 不包含于Y,且 Y 不函数依赖于Z的前提条件),那么我们就称 Z 传递函数依赖于 X

举例:关系S1(学号,系名,系主任),学号 → 系名,系名 → 系主任,并且系名 !→ 学号,所以学号 → 系主任为传递函数依赖

 

1.2码

KR<U,F>中的属性或属性组合。若K 数据库——关系数据理论 U,则K称为R的一个候选码

  • 如果U部分函数依赖于K,则K称为超码。候选码是最小的超码,即K的任意一个真子集都不是候选码

若关系模式R有多个候选码,则选定其中的一个做为主码

包含在任何一个候选码中的属性 ,称为主属性,其余称为非主属性

整个属性组是码,称为全码

关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 XR外码

 

1.3范式

参考简书作者eliter0609

范式是符合某一级别关系模式的集合

范式种类

数据库——关系数据理论

各种范式之间存在联系

数据库——关系数据理论

  • 某一关系模式R为第n范式,可简记为R∈nNF

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化

数据库——关系数据理论

1.3.1 1NF

定义:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)

解释:在一列中不能插入两个及以上不同属性的值

1.3.2 2NF

定义:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

解释:第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识,即要有主码

举例:如果在成绩表SG中添加一列姓名变成下面这样,SG表的主码是学号加CID(课程号),但是(学号)->姓名,所以姓名部分函数依赖于(学号,CID(课程号)),不符合2NF

成绩表SG

学号 CID(课程号) 成绩
1 1 80

成绩表SG 2.0

学号 CID(课程号) 成绩 姓名
1 1 80 张三

1.3.3 3NF与 BCNF

1、3NF

定义:在1NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

解释:第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主属性信息

举例:如果在课程表SC中添加一列老师姓名,变成如下,存在CID(课程号)->TID(授课老师ID),TID(授课老师ID)->教师姓名,TID(授课老师ID) !->CID(课程号),所以教师姓名传递函数依赖于CID(课程号),不满足3NF,但是满足2NF,主码是CID

课程表SC

CID (课程号) 课程名称 TID(授课老师ID) 学分
1 数学 1 2

课程表SC 2.0

CID (课程号) 课程名称 TID(授课老师ID) 学分 教师姓名
1 数学 1 2 李四

2、BCNF

若关系模式R属于第一范式,且每个属性都不传递依赖于R的候选,则这种关系模式属于BCNF

 

1.4范式分解

参考博主IrvingW

数据库——关系数据理论

 

1.5规范化小结

数据库——关系数据理论

 

by   云烟成雨yycy