1、模式分解三 种模 式分 解的 等价 定义 分解具有无损连接性 分解要保持函数依赖 分解既要保持函数依赖,又要具有无 损连接 性例: SL(Sno , Sdept , Sloc )F= Sn o Sdept, Sdept Slo c, Sn o Slo cSL2NFSno Sdept SlocS001 CS AS002 IS BS003 MA CS004 IS BS005 PH BSLSL 的模 式分 解 SL分解为下面三个关系模式:SN(Sno)SD(Sdept)SO(Sloc)Sno Sdept SlocS001 CS AS002 IS BS003 MA CS004 IS BS005 PH
2、BSLSnoS001S002S003 S004 S005SN SdeptCSISMAPHSDSlocABCSOSL 的模 式分 解 SL分解为下面两个关系模式:NL(Sno, Sloc)DL(Sdept, Sloc)Sno Sdept SlocS001 CS AS002 IS BS003 MA CS004 IS BS005 PH BSLSno SlocS001 AS002 BS003 CS004 BS005 BNL Sdept SlocCS AIS BMA CPH BDL Sno Sloc SdeptS001 A CSS002 B ISS002 B PHS003 C MAS004 B ISS0
3、04 B PHS005 B ISS005 B PHSL 的模 式分 解 SL分解为下面两个关系模式:ND(Sno, Sdept)NL(Sno, Sloc)Sno Sdept SlocS001 CS AS002 IS BS003 MA CS004 IS BS005 PH BSLSno SdeptS001 CSS002 ISS003 MAS004 ISS005 PHND Sno SlocS001 AS002 BS003 CS004 BS005 BNL Sno Sdept SlocS001 CS AS002 IS BS003 MA CS004 IS BS005 PH B 具 有无损 连接性 的模式
4、分解 关系模式 的一个分解 = 1 , 2 , , , 若 与 1 、 2 、 、 自然连接的结果相等, 则称关系模式 的这个分解 具有无损连接性(Lossless join )。 具有无损连接性的分解保证不丢失信 息 无损连接性不一定能解决插入异常、 删除异 常、修 改复杂 、数据 冗余等 问题 例 :SL分解为下面两个关系模式:NL(Sno, Sloc)DL(Sdept, Sloc) 这种分解方法具有无损连 接性, 但没有 保持原 关系中 的函数 依赖 SL 中的函数依赖Sd ep t Sl o c 没 有投影 到关系 模式ND 、NL 上保 持函数 依赖的 模式分 解 设关系模式 被分解
5、为若干个关系模式 1 , 2 , , , ( 其中 = 1 2 , 且不存在 , 为 在 上的投影) 。 若 所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖 所逻辑蕴含, 则称关系模式 的这个分解是保持函数依赖的(Preservedependency )。 例:将SL分解为下面二个关系模式:ND(Sno, Sdept)DL(Sdept, Sloc) 这种分解方法就保持了函数依赖模 式的 分解 如果一个分解具有无损连接性,则它能够保证不丢失信息。 如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。 具有无损连接性的分解不一定能够保 持函数 依赖。 保持函数依赖的分解也不一定具有无 损连接 性。 若要求分解既具有无损连接性, 又保持函数依赖, 则模式分解一定能 够达 到3NF ,但不一定能够达到BCNF 。