目录

系统架构设计师数据库基础篇数据库规范化

系统架构设计师—数据库基础篇—数据库规范化

函数依赖

设R(U)是在属性U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能得关系r,r中的任意两个元组在X上的属性值相等,那么在Y上的属性值也相等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。 X称为这个函数依赖的决定属性组,也称为决定因素。

示例1

关系式: S(Sno, Sname, Ssex, Sage, Sdept) F={Sno→Sname, Sno→Ssex, Sno→Sage, Sno→Sdept} 若Y不函数依赖于X,则记为

X \nrightarrow Y

例如:

S_{sex}\nrightarrow S_{age}

非平凡函数依赖

X \rightarrow Y, Y\nsubseteq X

称,X→Y是 非平凡的 函数依赖。 如,AB→C。

平凡的函数依赖

X \rightarrow Y, Y \subseteq X

称,X→Y是 平凡的 函数依赖 如,AB→B。

名词

例如有两个关系模式:

学生(学号、姓名、性别身份证号、教师编号)

教师(教师编号、姓名、工资) 超键,在关系中能 唯一标识 元组的属性及称为关系模式的超键。

  • 一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键。
  • 例如学生关系模式中的(学号)、(身份证号)、(学号、姓名)、(身份证号、性别)。 候选键, 不含有多余属性 的超键称为候选键,是超键的最小子集。
  • 例如(学号)、(身份证号)、(教师编号)。 主键, 用户挑选 出来做元组标识的一个候选键称为主键。
  • 例如通常选择(学号)作为主键。 外键,如果关系模式R中的某些属性集不是R的主键,而是关系模式S的主键,则这个属性集对模式R而言是外键。
  • 例如(教师编号)是学生关系模式的外键。 主属性,包含在 任何一个候选键中 的属性称为主属性,否则称为非主属性。

函数依赖关系

建立在非平凡函数依赖的基础上。 例如:关系式Student(Sno-学号, Sdept-系别, Mname-系主任姓名, Cno-课程号, Grade-成绩)

名称定义
完全函数依赖(Sno, Cno)→Grade是完全函数依赖
部分函数依赖(Sno, Cno)→Sdept是部分函数依赖
传递依赖Sno→Sdept, Sdept→Mname,则称Mname传递依赖于Sno

Armstrong公理

从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则,这些规则常被称作“Armstrong公理”。 设关系式R(U, F),U是关系模式R的属性集,F是U上一组函数依赖,则有以下三条推理规则:

  1. A1自反律:若Y⊆X⊆U,则X→Y为F所蕴含。
  2. A2增广律:若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含。
  3. A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。 根据上面三条推理规则,又可推出下面三条推理规则。
  4. 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含。
  5. 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含。
  6. 分解规则:若X→Y,Z⊆Y,则X→Z为F所蕴含。

闭包

针对某几个(A)属性,基于已知依赖关系,通过Armstrong公理,能够推导出全部属性(U)时,则称属性闭包成立。

(A)^+_F=U

规范化

范式:符合某一种级别的关系模式的集合。 关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式的规范化程度。

第一范式(1NF)

若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。

第二范式(2NF)

若关系模式R∈1NF,且每一个非主属性完全依赖主键时,则关系式R是2NF。

优先确认是否存在 联合主键

如存在,则考虑是否存在 部分依赖主键 的情况。

第三范式(3NF)

当2NF消除了非主属性对主键的传递函数依赖,则称为第三范式。

BC范式(BCNF)

R∈3NF,且消除了 主属性对码 的部分和传递函数依赖。

多个包含多个元素的候选键之间,可能存在主属性对码的部分或传递函数依赖。

第四范式(4NF)

关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且Y非⊆X时,X必含有码,则关系模式R(U, F)∈4NF。 4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。 注意,如果只考虑函数依赖,关系模式最高的的规范化程度是BCNF; 如果考虑多值依赖,关系模式最高规范化程度是4NF。