目录
范式(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); SDEPT→SLoc
3关系模式·分别都属于3NF
一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系
:规范化过程中通过消除传递依赖
在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修onyu余等问题一般数据库设计只需要达到3NF就足够
做题:
分析关系模式的函数依赖,找出候选键、主属性、非主属性及关系
分析其是否属于1NF。如否,将其转换为1NF
分析其是否属于2NF。如否,将其转换为2NF
分析其是否属于3NF。如否,将其转换为3NF
BC范式(BCNF)
即:在关系模式R<U,F>中,如果每一个决定属性集都包含候选码(除候选码之外没有其它决定因素),则R∈BCNF
如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范 化程度,消除了插入异常和删除异常。
多值依赖
定义:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集, 并且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,其中Z=U-X-Y
(2)多值依赖具有传递性。即若X→→Y,Y→→Z, 则X→→Z -Y。
(3)函数依赖是多值依赖的特殊情况。即若X→Y,则 X→→Y。
(4)若X→→Y,X→→Z,则X→→YZ。
(5)若X→→Y,X→→Z,则X→→Y∩Z。
(6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z -Y。
第四范式(4NF)
定义 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依 赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
这地方因为个人原因只简略提一下
小结:不能说规范化程度越高的关系模式就越好。 必须对现实世界的实际情况和用户应用需求作进一步 分析,确定一个合适的、能够反映现实世界的模式。 上面的规范化步骤可以在其中任何一步终止。