如何才能设计出合适的库和表关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)。
关系名R是符号化的元组语义。
U为一组属性。
本节中,一个关系中的所有的属性,都用一个U表示
D为属性U中的属性所来自的域。
DOM为属性到域的映射。
F为属性组U上的一组数据依赖。
说明:
每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。 数据依赖是一个关系内部属性与属性之间的一种约束关系,是通过属性间值的相等与否体现出来的数据间相互联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。
数据依赖的主要类型:
函数依赖(简记为FD)。
相当于y = f(x),给出x,推出y
多值依赖(简记为MVD)。
多个属性间的函数依赖
【例】描述一个学生关系,可以有学号、姓名、系名等属性。
一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,学生的
姓名及所在系的值也就被唯一地确定了。
- Sname = f(Sno),Sdept = f(Sno)
- 读作
Sno函数决定Sname,Sname函数依赖于Sno- 记作 Sno → Sname,Sno → Sdept
【例】建立一个描述学校教务的数据库,数据库涉及的对象有:
学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade)
假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为
现实世界的已知事实(语义):
由此可得到属性组U上的一组函数依赖F:

我们看下面的表,是否有些问题

说明:
把这个单一的模式分成三个关系模式:
这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。
根据属性间依赖情况来判定关系是否具有某些不合适的性质按属性间依赖情况来区分关系规范化程度为第一范式、第二范式、第三范式和第四范式等通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。“X函数确定Y”或”Y函数依赖于X“,记作X →Y。类似于 y = f(x)中x与y的关系
例Student(Sno, Sname, Ssex, Sage, Sdept)
假设不允许重名:
Sno→Ssex,Sno→Sage,Sno→Sdept
由于不允许重名,有 Sno←→Sname
Sname→Ssex,Sname→Ssage,Sname→Sdept
但是Ssex↛Sage,Ssex↛Sdept
X → Y,但Y∉X则称X→ Y是非平凡的函数依赖。
比如(Sno, Sname) → Grade,但是Grade不属于(Sno, Sname)
X → Y,但Y⊆X则称X→ Y是平凡的函数依赖。
比如(Sno, Sname) → Sno,Sno在组合里面,这是必然的
对于任一关系模式,平凡函数依赖都是必然成立的,若不特别声明,我们总是讨论非平凡函数依赖。
若X → Y,则X称为这个函数依赖的决定属性组,也称为决定因素。
若X → Y,并且Y→X,则记为X ←→Y。
若Y不函数依赖于X,则记为X↛Y。
定义2:在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'不函数决定Y,称Y对X完全函数依赖,记作

比如说(Sno, Sname)→Grade,但是Sno和Sname不决定Grade
若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作

在R(U)中,如果X → Y(Y⊊X),Y↛X,Y→ Z,Z⊊Y,则称Z对X传递函数依赖。
记为

比如说Std(Sno, Sdept, Mname(系主任))中,Sno→Sdept,Sdept→Mname,Mname传递函数依赖于Sno
但是Sno不函数决定Sname
注意:如果Y→X,即X ←→ Y,则Z直接依赖于X,而不是传递函数依赖
定义4:设K为R<U,F>中的属性或属性组合,若
,就是这个K完全函数决定整个元组U,称K为R的一个候选码
如果U部分函数依赖于K,即
则K称为超码。
候选码是最小的超码,即K的任意一个真子集都不是候选码。
若关系模式R有多个候选码,则选定其中的一个做为主码
候选码和主码都是不是只有一个属性,可以是一个属性组
S(Sno, Sdept,Sage),单个属性Sno是码。sc(Sno, Cno, Grade)中,(Sno, Cno)是码。
关系模式R(P,W,A),P:演奏者 W:作品 A:听众
码为(P,W,A),即All-Key
并非R的码(当然可以是候选码),但X是另一个关系模式的码,则称X是R的外部码也称外码。如在SC (Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S (Sno, Sdept,Sage)的码,则Sno是关系模式SC的外部码
范式的种类:
1NF、2NF、3NF、BCNF、4NF、5NF
范式之间的联系
意思是满足第 2范式一定满足第一范式,满足第三范式一定满足第2范式
某一关系模式R为第n范式,可简记为R∈nNF。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化
就是将一个模式(一张表)分解成多个模式从而提高范式等级
不可分的基本数据项,则R∈1NF不满足第一范式的数据库模式不能称为关系数据库以下是一个满足1NF,但不是好的关系模式的例子:
关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade)
Sloc为学生住处,假设每个系的学生住在同一个地方
- 这个例子中存在函数依赖,不是一个好的关系模式


S-L-C不是一个好的关系模式,一个关系模式 R不属于2NF,就会产生以下几个问题:
无Cno,这样的元组就插不进S-L-C中。插入元组时必须给定码值,而这时码值的一部分 为空,因而学生的固有信息无法插入。C3是主属性,删除了C3,整个元组就必须一起删除,使得S4的其他信息也被删除了,从而造成删除异常,即不应删除的信息也删除了。为什么会有这些问题呢?
部分函数依赖于码。
定义6.6若R∈1NF, 且每一个非主属性完全函数依赖于码,则R∈2NF。
(也就是说,非主属性必须完全依赖于码,不能只依赖于码的一部分)
S-L-C分解为两个关系模式,以消除这些部分函数依赖
SC(Sno, Cno, Grade)
S-L(Sno, Sdept, Sloc)
函数依赖图

关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno
这样非主属性对码都是完全函数依赖
如果有非主属性部分依赖于主属性,那么将非主属性移到主属性的一边
2NF主要消除的就是部分依赖主属性的问题
不能完全消除关系模式中的各种异常情况和数据冗余。所以又引入了3NF。定义:关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(Z⊊Y),使得X→Y,Y→Z成立,
Y↛X,则称R<U,F> E 3NF。
简单来说就是存在传递依赖
若R=3NF,则每…个非主属性既不部分依赖于码也不..传递依赖于码。
这里我们对上面的2NF例子再次进行剖析:

函数依赖图

分解为两个关系模式,以消除传递函数依赖:分解后的关系模式S-D与D-L中不再存在传递依赖

在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。BCNF ( Boyce Codd Normal Form)是由Boyce与Codd提出的,比上述的3NF又进了一步,
通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。
定义关系模式R<U,F>属于1NF,若X不函数决定Y且Y⊆X时X必含有码,则R<U,F> ∈BCNF
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
再换句话说,如果X→Y,那么X必定是候选码,不能仅仅是主属性
决定属性集就是可以函数决定另一个属性的
例1:关系模式C(Cno,Cname,Pcno)
(PCno是前置课程)
C∈3NF
C∈BCNF
关系模式C(Cno, Cname, Peno), 它
只有一个码Cno, 这里没有任何属性对Cno部分依赖或传递依赖,所以C∈3NF。同时C中Cno是唯一的决定因素, 所以C ∈BCNF。
这里只有一个关系
例2:关系模式S(Sno, Sname, Sdept, Sage)
假定S有两个码Sno,Sname
S∈3NF。
S ∈ BCNF
假定Sname也具有唯一性, 那么S就有两个码,这两个码都由单个属性组成,彼此不相交。其他属性不存在对码的传递依赖与部分依赖,所以S∈3NF。
同时S中除Sno、Sname外没有其他决定因素,所以S也属于BCNF。
两个候选码,不存在交叉关系
例3:关系模式SJP(S,J,P)
S是学生,J表示课程,P表示名次。
SJP∈3NF,
SJP∈BCNF
每一个学生选修每门课程的成绩有一定的名次,
每门课程中每一名次只有一个 学生(即没有并列名次)。
由语义可得到下面的函数依赖:
(S,J)→P; (J,P)→S
所以(S,J) 与(J,P)都可以作为候选码。
这两个码各由两个属性组成,而且它们是相交的。
这个关系模式中显然没有属性对码传递依赖或部分依赖。
所以SJP∈3NF,而且除(S,J)与(J,P)以外没有其他决定因素,所以SJP∈BCNF。
例4:关系模式STJ(S, T, J)中,S表示学生,T表示教师,J表示课程
每一教师只教一门课,每门课有若干教师,某一学生选定某门课, 就对应一个固定的教师。
由语义可得到如下的函数依赖。
(S,J)→T,(S,T)-J, T→J
函数依赖关系可以用如图表示

这里(S,J)、 (S,T)都是候选码。
STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖,
但STJ不是BCNF关系,因为T是决定因素,而T不包含码。
解决方法:将STJ分解为二个关系模式ST(S,T)∈BCNF, TJ(T,J)∈BCNF

没有任何属性对码的部分函数依赖和传递函数依赖

如果R∈3NF,且R只有一个候选码,只有一个候选码的3范式就是BC范式

BCNF,那么在函数依赖范畴内它已实现了彻底的分离,已消除了插入和删除的异常。3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。[例] 学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。
可以用一个非规范化的关系来表示教师T、课程C和参考书B之间的关系

转换成规范化的二维表

关系模型Teaching (C, T,B)的码是(C, T, B),即all-key,因而Teaching∈BCNF。
(因为决定因素的必定是候选码)
设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y。
关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
- 【例】关系Teaching(C,T,B)中,对于C的每一个值,T有一组值与之对应,而不论B取何值。因此T多值依赖于C,即C→→T。
- 在关系模式Teaching中,对于一个(物理,光学原理)有一组T值{李勇,王军},这组值仅仅决定于课程C上的值(物理)。
- 也就是说对于另一个(物理,普通物理学),它对应的一组T值仍是{李勇,王军},尽管这时参考书B的值已经改变了。
因此
T多值依赖于C,即C→→T。
前提是:Z=U-X-Y,不能有多余的属性
多值依赖的另一个等价的形式化的定义:
即交换s,t元组的Y值所得的两个新元组必在r中),'则Y多值依赖于X,记为X→→Y。这里,X,Y是U的子集,Z=U-X-Y.【例】关系模式WSC(W, S,C)中

按照语义,对于W的每一个值Wi,S有一个完整的集合与之对应,不问C取何值。所以W→→S。
如果用图下图来表示这种对应

则对应W的某一个值Wi的全部S值记作{S}wi (表示此仓库工作的全部保管员)
全部C值记作{C}wi (表示在此仓库中存放的所有商品)。
应当有{S}wi中的每一个值和{C}wi中的每一个C值对应。
于是{S}wi与{C}wi之间正好形成一个完全二分图,因而W→→S。
由于C与S的完全对称性,必然有W→→C成立。
非平凡的多值依赖。1. 多值依赖的有效性与属性集的范围有关
多值依赖
若X→→Y在U上成立,则在W(XY⊆W⊆U)上一定成立
反之则不然,即X→→Y在W (W⊆U)上成立,在U上并不一定成立。
大范围成立,小范围一定成立;小范围成立,大范围不一定成立
原因:多值依赖的定义中不仅涉及属性组X和Y,而且涉及U中其余属性Z。
一般地,在R(U)上若有X→→Y在W (W⊆U)上成立,则称X→→Y为R(U)的嵌入型多值依赖。
函数依赖
函数依赖X→Y的有效性仅决定于x、Y这两个属性集的关系若函数依赖X→Y在R (U)上成立,则对于任何Y‘ ⊂ Y均有X→Y’ 成立。
多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y’ ⊂ Y有X→→Y’ 成立。
例如,关系R(A,B,C,D),A→→BC成立,当然也有A→→D成立。有R的一个关系实例,在此实例上A→→B是不成立的。

A→→B,必须得看CD的情况
定义关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
4NF就是限制关系模式的属性之间
不允许有非平凡且非函数依赖的多值依赖。4NF所允许的非平凡多值依赖实际上是函数依赖
W不是码,关系模式WSC的码是(W,S,C),即All-key,因此WSC ∉ 4NF。简单来说,要求多值依赖的决定属性是码
关系模式的规范化。范化实质上是概念的单一化。
定义11:对于满足一组函数依赖F的关系模式R<U,F>,其任何一个关系r,若函数依赖X→Y都成立(即r中任意两元组t、s,若t[X]=s[X],则t[Y]=s[Y]),则称F逻辑蕴涵X → Y。
Armstrong公理系统:是一套推理规则,是模式分解算法的理论基础。主要用于求给定关系模式的码,从一组函数依赖求得蕴涵的函数依赖。
Armstrong公理系统设U为属性集总体,F是U上的一组函数依赖,于是有关系模式R<U,F>,对R<U,F>来说有以下的推理规则:
注意:
- 由自反律所得到的函数依赖均是平凡的函数依赖
- 自反律的使用并不依赖于F(任意依赖都有自反律)。
定理1:Armstrong推理规则是正确的。
证明X→Y,即证明对于任意两个元组t,s,若t[X] = s[X],则t[Y] = s[Y]
下面从定义触发证明推理规则的正确性。
证明:
根据A1,A2,A3这三条推理规则得到下面三条推理规则:
根据合并规则和分解规则,可得:
引理1:X→A1 A2…Ak成立的充分必要条件是X→Ai成立(i=1,2,…,k)。
定义12:在关系模式R<U,F>中为F所逻辑蕴涵的函数依赖的全体叫作F的闭包,记为F+
说明:
自反律、传递律和增广律称为Armstrong公理系统。
Armstrong公理系统具有有效性和完备性。
有效性是指由F出发根据Armstrong公理系统推导出的每一个函数依赖一定在F+中。
完备性是指F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理系统推导出来。
定义13 设F为属性集U上的一组函数依赖,X、Y ⊆ U, XF+={ A|X→A能由F根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F的闭包。
引理2 设F为属性集U上的一组函数依赖,X、Y⊆ U,X→Y能由F根据Armstrong公理导出的充分必要条件是Y⊆ XF+。
判定X→Y是否能由F根据Armstrong公理导出的问题,就
转化为求出XF+,判定Y是否为XF+的子集的问题。
[例6.11] 已知关系模式R<U, F>,其中U={A, B, C, D, E};F={AB→C, B→D, C→E, EC→B, AC→B}。求(AB)F+ 。
解 :
引理2:Armstrong公理系统是有效的、完备的。
有效性与完备性的含义
证明如下

定义14:如果F+ = G+ ,就说函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价。
引理3:F+= G+的充分必要条件是F ⊆ G+和G ⊆ F+

定义15:如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。
右部仅含有一个属性。
定理3:每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。
证明:构造性证明,找出F的一个最小依赖集。


F的最小依赖集Fm不唯一
本节是通过分解函数依赖的角度来分解模式(表)
定义16:关系模式R<U,F>的一个分解:
ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>}
其中,

并且没有 Ui ⊆ Uk(就是U之间没有包含关系),Fi为F在Ui上的投影
比如分解表(A, B, C, D),不能分解出(A, B, C)和表(A, B),这样就是包含关系了
定义17:函数依赖集合{X→Y|{X→Y∈F+∧ XY ⊆ Ui}的一个覆盖Fi叫做F在属性Ui上的投影
对于一个模式的分解是多种多样的,但是分解后产生的模式应与原模式等价。对“等价”的概念形成了三种不同的定义:
说明:
【例】已知关系R<U,F>,其中,U={Sno,Sdept,Mname},F={Sno→Sdept,Sdept→Mname}。

方法一:

尝试恢复原来的表,R1⋈R2⋈R3,这是一个笛卡尔集,无法恢复原来的表
方法二:
p2={R,<{Sno,Sdept} ,{Sno→Sdept}>,R<{Sno,Mname} ,{Sno→Mname}>]。

R1⋈R2可以恢复到原来的表,因为有相同的属性
【说明】 ,对R的分解是可恢复的,但是前面提到的插入和删除异常仍然没有解决,原因就在于原来在R中存在的函数依赖Sdept→Mname,在R,和R,中都不再存在了。因此人们又要求分解具有“保持函数依赖”的特性。
方法三:p={R,<{Sno,Sdept},{Sno→Sdept}>,R,<{Sdept,Mname} , {Sdept→ Mname} >]。

既具有无损连接性,又保持函数依赖。它解决了更新异常又没有丢失原数据库的信息。这是所希望的分解。
设ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>}(用ρ来表示分解),r是R<U, F>的一个关系,定义

即mρ(R)是r在ρ中各关系模式上投影的连接
πRi(r)= {t.Ui| t ∈ r},即r中的每一个元组t在属性Ui上的取值
比如r(Sno, Sdept, Mname)分解为R1(Sno, Sdept),R2(Sdept, Mname),则πR1(r) = (Sno, Sdept)
说明
有相同的属性列,则按自然连接的定义进行;没有相同的属性列,则按笛卡尔积运算进行;引理4:设ρ = {R<U1,F1 >,R2<U2,F2 >,...,Rk<Uk,Fk >}为关系模式R的一个分解,r为R的任一个关系,ri = πRi(r),则
区分清楚,r是原来的关系,mρ(r)是r分解后再连接起来的关系
说明
r ⊆ mρ(r)
r的投影连接包含,分解后再连接起来的r肯定不会比原来的r小;
如果s = mρ(r),则πRi(s) = ri
投影连接后再投影到子关系模式=直接投影到该子关系模式。即πRi(r) = πRi(mρ(r))
mρ(mρ(r)) = mρ(r)
多次投影连接的结果等于一次投影连接后的结果
【例】设有关系模式R(A,B,C),p={R1,R2}为它的一个分解,其中R1=AB,R2=BC,r为R的一个关系,r1 = πR1(r),r2=πR2(r)。
求r1,r2,mρ(r),由此可得到什么结论?

可以看到
【结论】分解后的关系进行自然联接必包含分解前的关系,即分解不会丢失信息,但可能增加信息,只有r=mρ(r)时,分解才具有无损联接性。
定义:关系模式R<U, F>的一个分解ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>}
若对于R 的任何一个关系r均有r = mρ(r),则称分解ρ具有无损连接性,简称ρ为无损连接
ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>}是R<U, F>的一个分解,U = {A1, A2, ..., AN},F = {FD1. FD2, ... FDρ},设F是一极小依赖集,FDi 为 Xi→ Ali
构造初始表:构造一个k行n列的初始表(k是分解的模式的个数,分解为k个表就k行,n是总共的属性的个数,r有n个属性就n列),其中每列对应于R的一个属性,每行用于表示分解后的一个模式组成。如果属性Aj属于关系模式Ri,则在表的第i行第j列置符号aj,否则符号blj
根据F中的函数依赖修改表内容
对每个Fdi做下列操作
比较扫描前后表有无变化,如有变化则返回2中,否则算法终止。
【定理4】如果算法2终止时表中有一行为a1, a2,…,an,则p 为无损连接分解。
【例】已知R<U,F>,U={A,B,C,D,E},F={AB→C,C→D,D→F的一个分解为R1(A,B,C),R2(C,D),R3(D, E)。

第一行,a1,a2,a3是因为R1中含有ABC,b14,b15是因为R1中没有DE
第二行,a3,a4是因为R2中有CD,b21,b22,b25是因为R2中没有ADE

可以看到第一行出现了a1-a5,说明具有无损连接性
对于R<U,F>的一个分解ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>},如果(U1 ∩ U2) → U1 - U2 或者 (U1 ∩ U2) → U2 - U1,则ρ具有无损连接性
定义19:若

则 ρ={R1<U1,F1>,R2<U2,F2>,...,Rn<Un,Fn>}保持函数依赖
若要求分解保持函数依赖,那么模式分解总可以达到3NF,但不一定能达到BCNF;
BCNF要求决定因素必须为码,3NF只能要求决定因素为主属性或者码
若要求分解既保持函数依赖,又具有无损连接性,可以达到3NF,但不一定能达到BCNF;
若要求分解具有无损连接性,那一定可达到4NF。
对R<U,F>中的F进行极小化处理。
找出不在F中出现的属性(记作U0),把这样的属性构成一个关系模式R0<U0,F0>,把这些属性从U中去掉,剩余的属性仍记为U。
若有X→A∈F,且XA=U,则则ρ ={R},算法终止。
也就是如果→左右两边构成的集合是全部的属性,则不用分了
否则,对F按具有相同左部的原则分组(假定分为K组),每一组函数依赖所涉及的全部属性形成一个属性集Ui,若Ui ⊆ Uj,(i ≠ j),就去诶到Ui, 于是ρ = ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>} ∪ R0<U0, F0>(将原来的分组加起来),构成R<U,F>的一个保持函数依赖的分解,并且每个Ri <Ui,Fi>均属于3NF。
总结来说:就是左部相同原则
【例】R (Sno,Sname,Sdept,Mname) ,F={Sno→Sname,Sno→sdept,Sdept→Mname},分解R,使其保持函数依赖达到3NF。
解:
F已经是最小集
同时也找不出不在F中出现的属性
现将按照相同左部原则进行分组,结果为:
R1<(Sno,Sname,Sdept),{Sno→Sname,Sno→Sdept}>
这两个函数依赖的左边都是Sno
R2<(Sdept,Mname) , Sdept→Mname>
【例】设R(ABCDE),F={A→B.C→D},分解R为一组3NF的关系模式,要求分解既具有无损联接性又保持函数依赖。
解:
ACE为侯选码;
(因为在上述关系中,CE并不能由函数依赖推出来,因此必须作为码)
按算法3,p={R1(AB),R2(CD)} ;
判断侯选码ACE不在分解后的子关系模式中,所以加上码ACE组成的模式R3(ACE)。
所以p={R1(AB), R2(CD),R3(ACE)}是一个3NF的关系模式,既具有无损联接性又保持函数依赖。
令ρ =
检查ρ中各关系模式是否均属于BCNF。若是,则算法终止。
属于BCNF要求X→Y的所有X都是候选码,候选码是能够标识整个元组的
设ρ中Ri<Ui,Fi>,不属于BCNF,那么必有X→A∈Fi+(A∉X),且X非Ri的码。因此XA是Ui的真子集。
对Ri进行分解,σ = {S1, S2},US1 = XA, US2 = Ui - {A}, 以σ代替Ri<Ui,Fi>返回第二步
首先使用算法5得到R的一个达到BCNF的无损连接分解ρ,然后对某一个Ri<Ui,Fi>,若不属于4NF,则可按定理6进行分解,直到每一个关系模式均属于4NF为止。
由以上8条公理得知如下4条有用的推理规则:

FD是函数依赖,MVD是多值函数依赖