数据库原理-关系模式的规范化

关系数据库的规范化理论是数据库逻辑设计的工具
一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这只是最基本的规范化
规范化程度可以有6个不同的级别,即6个范式

规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异
常、删除异常、修改复杂、数据冗余等问题,解决方法就是对其进行规范化,
转换成高级范式。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的
关系模式集合,这种过程就叫关系模式的规范化。

1.关系模式规范化的步骤

消除决定属性集非码的非平凡函数依赖
1NF-消除非主属性对码的部分函数依赖
→2NF-消除非主属性对码的传递函数依赖
→3NF-消除主属性对码的部分和传递函数依赖
→BCNF-消除非平凡且非函数依赖的多值依赖
→4NF-消除不是由候选码所蕴含的连接依赖
→5NF

规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系
模式达到某种程度的“分离”
即采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体
或者实体间的一种联系
若多于一个概念就把它“分离”出去。因此所谓规范化实质上是概念的单一

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

关系模式的规范化过程是通过对关系模式的分解来实现的
-把低一级的关系模式分解为若干个高一级的关系模式的方法并不唯一
-在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方
法才有意义

将一个关系模式R(U,F)分解为若干个关系模式R1(U1,F1),R2(U2,F2),... ,Rn(Un,Fn)
-其中U=U1∪U2∪... ∪Un,且不存在Ui∈Uj,Fi为F在Ui上的投影
意味着相应地将存储在一个二维表t中的数据分散到若干个二维表t1,t2,...,tn中去
-其中ti是t在属性集Ui上的投影

判断对关系模式的一个分解是否与原关系模式等价的标准
1.分解具有无损连接性
2分解要保持函数依赖

具有无损连接性的模式分解
设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),... ,Rn(Un,Fn)
-其中U=U1∪U2∪...∪Un,且不存在Ui∈Uj,Fi为F在Ui上的投影
-若R与R1、R2、...、Rn自然连接的结果相等,则称关系模式R的这个分解具有无损连接性(Lossless join)
只有具有无损连接性的分解才能够保证不丢失信息
无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题

保持函数依赖的模式分解
设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),...,Rn(Un,Fn)
-其中U=U1∪U2∪...∪Un,且不存在Ui∈Uj,Fi为F在Ui上的投影若F所逻辑蕴含的函数依赖一定也由分解得到
的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的(Preserve dependency)。

关系模式的分解
如果一个分解具有无损连接性,则它能够保证不丢失信息
如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况
分解具有无损连接性和分解保持函数依赖是两个互相独立的标准
-具有无损连接性的分解不一定能够保持函数依赖
-同样,保持函数依赖的分解也不一定具有无损连接性
-若要求分解具有无损连接性,那么模式分解一定能够达到4NF
-若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF
-若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF

规范化理论为数据库逻辑设计提供了理论的指南和工具
-也仅仅是指南和工具
并不是规范化程度越高,模式就越好
-必须结合应用环境和现实世界的具体情况合理地选择数据库模式

总结:
判断关系模式分解与原关系模式等价的标准:
无损连接性:自然连接之后数据是否与原来数据一致
保持数据依赖:自然连接之后,是否丢失原函数依赖

你可能感兴趣的:(数据库原理,数据库)