Bootstrap

【数据库系统概论】第6章 (二)范式(重点讲在函数依赖范畴内)

目录

第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

BC范式(BCNF)

多值依赖

第四范式(4NF)


范式(Normalization) 是一种结构化的设计方法,旨在消除数据冗余和更新异常,通过一系列的转换步骤,使得数据库结构更加规范化和高效。

范式是符合某一种级别的关系模式的集合,
关系数据库中的关系必须满足一定的要求。

满足不同程度要求的为不同范式。
范式的种类:
第一范式(1NF),第二范式(2NF),第三范式(3NF),BC范式(BCNF),第四范式(4NF),第五范式(5NF)

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

第一范式(1NF)

第一范式(1NF),当且仅当它的每个属性都是原子性的,即不可再分的。具体来说,每个属性的值必须是不可分解的基本数据项。

第一范式要求列中的数据没有重复的组合,每个列(属性)的值必须是原子的,也就是说每个单元格只能存储一个数据项,不能存储集合、数组或其他表格结构。

违反了1NF,因为"所选课程"是一个集合字段,包含多个值

第二范式(2NF)

第二范式(2NF),当且仅当它已经满足第一范式,并且所有非主属性完全依赖于每一个候选键(即没有部分函数依赖

候选键属性是主属性,否则非主属性。

关系模式:S-L-C(Sno, Sdept, Sloc, Cno, Grade)                        
其中,Sloc 表示学生的住处,并且每个系的学生住在同一个地方。

  • Sno, Cno → Grade:学号和课程号决定成绩。

  • Sdept → Sloc:系别决定学生的住处,因为每个系的学生住在同一个地方

解决方法:部分依赖归子集,完全依赖归主码

用投影分解把关系模式S-L-C分解成两个关系模式
●SC(Sno,Cno,Grade)
●S-L(Sno,Sdept,Sloc)

第二范式要求消除部分函数依赖。如果主键是复合主键(由多个属性组成),非主属性必须完全依赖于整个复合主键,而不能只依赖于主键的一部分

第三范式(3NF)

第三范式(3NF),当且仅当它已经满足第二范式,并且每一个非主属性不传递依赖于任何候选键(即没有传递函数依赖,都是直接依赖

第三范式要求消除传递函数依赖。如果某个非主属性依赖于另一个非主属性,而这个非主属性又依赖于主键,那么就存在传递依赖。我们需要消除这种传递依赖,确保每个非主属性直接依赖于候选键。

非主属性:sdept,sloc

sloc是有推导传递的过程

继续模式分解
如上例中的模式可分解为3NF
SC(SNO, CNO, Grade); (SNO, CNO)Grade

S-D(SNO, SDEPT);SNO SDEPT

D-L(SDEPT, SLOC); SDEPTSLoc

 3关系模式·分别都属于3NF

一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系
:规范化过程中通过消除传递依赖

在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修onyu余等问题一般数据库设计只需要达到3NF就足够

做题:

分析关系模式的函数依赖,找出候选键、主属性、非主属性及关系

分析其是否属于1NF。如否,将其转换为1NF

分析其是否属于2NF。如否,将其转换为2NF

分析其是否属于3NF。如否,将其转换为3NF

BC范式(BCNF)

设关系模式 R < U , F >∈1NF,若 X Y Y X X 必含有码,则R < U , F >∈BCNF。

即:在关系模式R<U,F>中,如果每一个决定属性集都包含候选码(除候选码之外没有其它决定因素),则R∈BCNF

性质:
所有 非主属性 都完全函数依赖于每个候选码
所有 主属性 都完全函数依赖于每个不包含它的候选码
没有任何属性完全函数依赖于非码的任何一组属性

由全码组成的关系模式,最高可以达到的模式为(BCNF )
如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范 化程度,消除了插入异常和删除异常。

多值依赖

定义:R(U)是属性集U上的一个关系模式。X,Y,ZU的子集, 并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决 定于x值而与z值无关

平凡多值依赖和非平凡的多值依赖

若X→→Y,而Z=Ф,即Z为空,则称X→→Y为平凡的多值依赖

 否则称X→→Y为非平凡的多值依赖

性质:

(1)多值依赖具有对称性。 即若X→→Y,则X→→Z,其中ZUXY

(2)多值依赖具有传递性。即若X→→YY→→Z, 则X→→Z -Y

(3)函数依赖是多值依赖的特殊情况。即若XY,则 X→→Y

(4)若X→→YX→→Z,则X→→YZ

(5)若X→→YX→→Z,则X→→YZ

(6)若X→→YX→→Z,则X→→Y-ZX→→Z -Y

第四范式(4NF)

定义 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依 赖X→→YY X),X都含有码,则R<U,F>∈4NF。

这地方因为个人原因只简略提一下


小结:不能说规范化程度越高的关系模式就越好。 必须对现实世界的实际情况和用户应用需求作进一步 分析,确定一个合适的、能够反映现实世界的模式。 上面的规范化步骤可以在其中任何一步终止。

;