第9讲 关系模式的分解与范式



《第9讲 关系模式的分解与范式》由会员分享,可在线阅读,更多相关《第9讲 关系模式的分解与范式(26页珍藏版)》请在文档大全上搜索。
1、1 14.3 关系模式的分解关系模式的分解* 4.3.1 模式分解问题模式分解问题 定义定义4.11 设有关系模式设有关系模式R(U),R=R1R2Rk,=R1,R2,Rk。这里。这里称为称为R的一个分解,也称为的一个分解,也称为数数据库模式据库模式。泛关系模式泛关系模式泛关系泛关系数据库模式数据库模式数据库实例数据库实例 Rr=R1,R2,Rk = 模式分解示意图模式分解示意图 衡量关系模式的分解是否可取衡量关系模式的分解是否可取分解是否具有无损连接分解是否具有无损连接分解是否保持了函数依赖分解是否保持了函数依赖2 24.3.2 无损连接分解无损连接分解 定义定义4.12设有设有R,F是是R
2、上的函数依赖集,上的函数依赖集,=R1,R2,Rk。如果对。如果对R中满足中满足F的每一个的每一个关系关系r,有,有:r =R1(r)R2(r)Rk(r), 那么就称那么就称分解分解相对于相对于F是是“无损连接分解无损连接分解” ;否;否则称为则称为“损失分解损失分解”。3 34.3.3 无损分解的测试算法无损分解的测试算法 (1)构造一个)构造一个k行行n列的表格列的表格R,表中每一列对应一个属性,表中每一列对应一个属性Aj(1jn),每一行对应一个模式),每一行对应一个模式Ri(1ik)。如果)。如果Aj在在Ri中,中,则在表中的第则在表中的第i行第行第j列处填上符号列处填上符号aj,否则
3、填上,否则填上bij。(2)把表格看成模式)把表格看成模式R的一个关系,根据的一个关系,根据F中的每个函数依赖,在中的每个函数依赖,在表中寻找表中寻找X分量上相等的行,分别对分量上相等的行,分别对Y分量上的每一列做修改:分量上的每一列做修改:如果列中有一个是如果列中有一个是aj,那么这一列上(,那么这一列上(X相同的行)的元素都改成相同的行)的元素都改成aj;如果列中没有如果列中没有aj,那么这一列上(,那么这一列上(X相同的行)的元素都改成相同的行)的元素都改成bij(下标(下标ij取取i最小的那个)。最小的那个)。对对F中所有的函数依赖,反复地执行上述的修改操作,一直到表格中所有的函数依赖
4、,反复地执行上述的修改操作,一直到表格不能再修改为止(这个过程称为不能再修改为止(这个过程称为“追踪追踪” 过程)。过程)。(3)若修改到最后,表中有一行全为)若修改到最后,表中有一行全为a,即,即a1a2an,那么称,那么称相相对于对于F是无损连接分解。是无损连接分解。 4 4例例4-11 设有关系模式设有关系模式R(A,B,C,D),R分解成分解成=AB,BC,CD,如果,如果R上成立的函数依赖集上成立的函数依赖集F=BA,CD,那么,那么相相对于对于F是否为无损连接分解?是否为无损连接分解? ABCDABa1a2 b13 b14 BCb21 a2 a3 b24 CDb31b32 a3 a
5、4 BA a1CD a4修改后的表格中的第修改后的表格中的第二行为二行为a1a2a3a4,因此,因此,相对于相对于F是无是无损连接分解损连接分解 。5 5 定理定理4.7 设设=R1,R2是关系模式是关系模式R的一个分解,的一个分解,F是是R上成立的函数依赖集,那么分解上成立的函数依赖集,那么分解相对于相对于F是无损是无损分解的分解的充分必要条件充分必要条件是:是:(R1R2)(R1-R2)或或(R1R2)(R2-R1) 当模式当模式R分解成两个模式分解成两个模式R1和和R2时,若两个模式的公共属时,若两个模式的公共属性(性(除外)能够函数决定除外)能够函数决定R1(或(或R2)中的其他属性,
6、这)中的其他属性,这样的分解具有无损连接性。样的分解具有无损连接性。 6 64.3.4 保持函数依赖的分解保持函数依赖的分解 定义定义4.13 设有关系模式设有关系模式R(U),F是是R(U)上的函数依赖集,上的函数依赖集,Z是属是属性集性集U上的一个子集,上的一个子集,=R1,R2,Rk是是R的一个分解。的一个分解。F在在Z上的一个投影用上的一个投影用Z(F)表示:表示:Z(F)=XY | XYF +XY Z;F在在Ri上的一个投影用上的一个投影用Ri(F)表示:表示: =R1(r)R2(r)Rk(r);如果有如果有F +=( )+,则称,则称是保持函数依赖集是保持函数依赖集F的的分解。分解
7、。 )(1FkiRi一个无损连接分解不一定是保持函数依赖的一个无损连接分解不一定是保持函数依赖的一个保持函数依赖的分解也不一定是无损连接的一个保持函数依赖的分解也不一定是无损连接的)(1FkiRi7 74.4 关系模式的范式关系模式的范式 各种范式之间的关系各种范式之间的关系 8 84.4.1 第一范式第一范式 定义定义4.14 如果关系模式如果关系模式R所有的属性均为简单属所有的属性均为简单属性,即每个属性都是不可再分的,则称性,即每个属性都是不可再分的,则称R属于第属于第一范式,简称一范式,简称1NF,记作,记作R1NF。1NF是关系模式应具备的最起码的条件。是关系模式应具备的最起码的条件
8、。 第一范式可能具有大量的数据冗余,具有插入异常、第一范式可能具有大量的数据冗余,具有插入异常、删除异常和更新异常等弊端。删除异常和更新异常等弊端。如关系模式如关系模式SCD属于属于1NF,它既存在完全函数依赖,又存,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖在部分函数依赖和传递函数依赖 。克服这些弊端的方法是用投影运算将关系分解,去克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行掉过于复杂的函数依赖关系,向更高一级的范式进行转换。转换。 9 94.4.2 第二范式第二范式 第二范式的定义第二范式的定义 如果关系模式如果关系模式R1NF,且
9、每个非主属性都完全函数,且每个非主属性都完全函数依赖于依赖于R的主关系键,则称的主关系键,则称R属于第二范式,简称属于第二范式,简称2NF,记作记作R2NF 。如:关系模式如:关系模式TCS(T,C,S) 关系键关系键 (T,C,S) ;主属性;主属性 T、C、S 不存在非主属性对主关系键的部分函数依赖,因此属于不存在非主属性对主关系键的部分函数依赖,因此属于2NF。 从从1NF关系中消除非主属性对主关系键的部分函数依赖,则可得到关系中消除非主属性对主关系键的部分函数依赖,则可得到2NF如果如果R的关系键为单属性,或的关系键为单属性,或R的全体属性均为主属性,则的全体属性均为主属性,则R2NF
10、 10102NF规范化规范化 2NF规范化是指把规范化是指把1NF关系模式通过投影分解,转换关系模式通过投影分解,转换成成2NF关系模式的集合。关系模式的集合。 例例4-15 将将SCD(SNo,SN,Age,Dept,MN,CNo,Score)规范为规范为2NF。 学生学生SD(SNo,SN,Age,Dept,MN )学生与课程联系学生与课程联系SC( SNo,CNo,Score)SCD非主属性对主键完全函数依赖。因此,非主属性对主键完全函数依赖。因此,SD2NF,SC2NF。 11112NF的缺点的缺点 数据冗余数据冗余 插入异常插入异常 删除异常删除异常 更新异常更新异常 每个系名和系主
11、任的名字存储的次数等于该系的学生人数每个系名和系主任的名字存储的次数等于该系的学生人数 当一个新系没有招生时,有关该系的信息无法插入当一个新系没有招生时,有关该系的信息无法插入 某系学生全部毕业而没有招生时,删除全部学生的记录也某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息随之删除了该系的有关信息 更换系主任时,仍需改动较多的学生记录更换系主任时,仍需改动较多的学生记录 12124.4.3 第三范式第三范式 第三范式的定义第三范式的定义 如果关系模式如果关系模式R2NF,且每个非主属性都不传递函,且每个非主属性都不传递函数依赖于数依赖于R的主关系键,则称的主关系键,