数据库 规范覆盖的计算、多值依赖

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, AC→D, (CB)G+={ C, B,… }, ∵B(CB)G+,∴置F G 。 CB→E }
(3) 删除F中每个FD左部的多余属性。 CF+={ C, B , A , D, E },∵DCF+, ∴A是多余属性,删去。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→E } (2) 删除F中多余的FD。 F={ C→B, B→A, AC→D, C→D, CB→E }
函数依赖集的最小覆盖
定义 : 设F 是R(U)上的FD集, 如果F满足以下三个条件: (1) F中每个FD的右部只含一个属性。 (2) F中无多余FD。 即不存在XA, 满足F与F-{XA}等价。 (3) F中每个FD的左部都不含多余属性。 即不存在XA,X有真子集Z,满足: F与(F-{XA})∪{ZA}等价。 则称F为最小依赖集或最小覆盖。 将最小覆盖中左部相同的FD合并成一个后得到的FD集 称为规范覆盖。 例:设最小覆盖为:Fm={C→B, B→A, C→D, A→E, B→D}, 则对应的规范覆盖为: Fc={ C→BD, B→AD, A→E }。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, AC→D (CB)G+={ C, B , A, D }, ∵E(CB)G+,∴F不变 。 }
(3) 删除F中每个FD左部的多余属性。 BF+={ B, A },∵EBF+, ∴C不是多余属性,保留。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→E } (2) 删除F中多余的FD。 F={ C→B, B→A, AC→D, C→D, CB→E } C→E
(2)传递性: 若X Y,Y Z , 则X Z -Y 证明非常复杂,大大超出了本课程的范围。 (3)复制性: 若X Y, 则X Y。 (4)并规则: 若XY, X Z, 则X YZ。 (5)交规则:若XY, X Z, 则X Y∩Z。 (6)差规则:若XY, XZ, 则XY-Z, XZ-Y。 (7)平凡多值依赖:对U上的多值依赖XY, 若YX, 或 X∪Y=U,则称XY为平凡多值依赖。这是因为: Y (3) YX XY XY X X∩Y Y-X
PT, B( sC=x(Teach) ) = PT ( sC=x(Teach) )×PB( sC=x(Teach) )
由此引出多值依赖的定义:
定义(多值依赖): 设R(U)是U上的关系模式, X,Y,ZU, 且Z=U-X-Y, 若对R(U)的任意关系r,以及r在X属性组上的任意值x, 都有:PY, Z( sX=x(r) ) = PY ( sX=x(r) )×PZ( sX=x(r) ) 成立, 则称X多值确定Y或Y多值依赖于X,记作X Y。 U R(U) X Y Z X … x … x … Y … … … Z … … …
函数依赖集的最小覆盖
分三步: 如何计算FD集F的最小覆盖? (1) 用分解规则将F中的每个FD右部分解为单属性。 对每个XYF, 若Y=A1A2…Ak (k≥2), 则置: F (F - { XY } )∪{X Ai | i=1,2,…,k } 。 (2) 删除F中多余的FD。 对每个XAF, 令G=F - {XA}, 若AXG+, 则置F G。 因:由AXG+可得XA, 故F中的XA多余。 (3) 删除F中每个FD左部的多余属性。 对每个XAF, 设X=B1B2…Bm (m≥2), 逐个考查Bi (i=1..m): 若A(X- Bi)F+, 则置F (F - { XA } )∪{(X- Bi)A}。 因:由A(X-Bi)F+可得(X-Bi)A, 故XA中Bi是多余属性。
数学 物理 邓军 陈斯 李平 王强 邓军
数学分析 高等代数 微分方程 普通物理 微分方程
用关系模式Teach( C, T, B ) 表示。 课程 教师 参考书 F = { }, 候选码为CTB, 即全码,所以Teach∈BCNF 注意: TC不成立,因为一个教师可以上多门课。 BC不成立,因为参考书可以跨课程交叉使用。 否则:候选码是TB TBC是部分依赖 Teach∈2NF Teach关系存在以下4个问题:
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, C→D, C→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, C→A, AC→D, CB→B, CB→E } CG+={C , B , A, D , E },∵DCG+ ,∴置F G 。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, C→D, C→A, AC→D, CB→B, CB→E } (AC)G+={ A,C,…}, ∵A(AC)G+ , ∴置F G 。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, C→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, AC→D, CB→B, CB→E } CG+={ C , B , A, D, E },∵ACG+ ,∴置F G 。
wk.baidu.com
(3) 删除F中每个FD左部的多余属性。 CF+={ C, B , A , D, E },∵ECF+, ∴B是多余属性,删去。 最后得到F的最小覆盖为:Fm={ C→B, B→A, C→D, C→E } F的规范覆盖为:Fc={ C→BDE , B→A }
多值依赖
在函数依赖范畴内,BCNF已经非常完美。但是属于 BCNF的关系模式仍可能存在问题。 例如: 假设多个教师上同一门课程,使用同一套参考书:
(即Z) 证明: PY, Z( sX=x(r) ) = PY ( sX=x(r) )×PZ( sX=x(r) )成立, 必有PZ, Y( sX=x(r) ) = PZ ( sX=x(r) )×PY( sX=x(r) )成立。
(2)传递性: 若X Y,Y Z , 则X Z -Y 证明非常复杂,大大超出了本课程的范围。 (3)复制性: 若X Y, 则X Y。 r X Y Z 证明: … … … PY, Z(.) = PY (.) × PZ(.) X Y: x y z1 y z1 z1 若X上的 … = y × … 分量相等 … … …
,则Y上 的分量相 等。
x y zk … … …
y zk
zk
所以X Y
多值依赖的性质 (1)对称性: 若X Y,则X U-X-Y
(即Z) 证明: PY, Z( sX=x(r) ) = PY ( sX=x(r) )×PZ( sX=x(r) )成立, 必有PZ, Y( sX=x(r) ) = PZ ( sX=x(r) )×PY( sX=x(r) )成立。
说明: r 条件必须对R(U)的所有可能 关系在X属性组上的所有可 能值都成立,只要在某个可 能值上条件不成立,则: X Y不成立。
多值依赖的另一个定义: 设R(U)是U上的关系模式, X,Y,ZU, 且Z=U-X-Y, 若R的任意关系r满足: 只要(x,y1,z1)和(x,y2,z2)是r的元组, 那么(x,y2,z1)和(x,y1,z2)也是r的元组,
(1)数据冗余大:有多少教师上同一门 课,参考书就重复多少次; (2)更新异常:改某一门课的参考书需 要修改该课的所有记录; (3)插入异常: 某门课增加一个教师, 该课有多少参考书就需要插入多少 个元组; (4)删除异常: 删除某门课的一本参考 书,该课程有多少教师就要删除多 少元组。 原因: 对于每一门课,Teach表中都 存储了T和B的笛卡尔积, 即下列条 件对每门课x都成立:
Teach( C, T, B ) 存在的问题
Teach C 数学 数学 数学 数学 数学 数学 物理 物理 物理 物理 物理 物理 … T 邓军 邓军 邓军 陈斯 陈斯 陈斯 李平 李平 王强 王强 邓军 邓军 … B 数学分析 高等代数 微分方程 数学分析 高等代数 微分方程 普通物理 微分方程 普通物理 微分方程 普通物理 微分方程 …
则称多值依赖X Y在R(U)上成立。 U
R(U) X Y Z r X … x x … x x … … Y … y1 y2 … y2 y1 … … Z … z1 z2 … z1 z2 … …
说明: 两种定义是等价的:
y1 y2 y2 y1 z1 z2 z1 z2 = y1 × z1 y2 z2
多值依赖的性质 (1)对称性: 若X Y,则X U-X-Y
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, B→A, CB→B, CB→E } (AC)G+={ A, C , B, E }, ∵D (AC)G+ , ∴F不变 。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, C→D, C→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ B→A, C→D, C→A, AC→D, CB→B, CB→E } CG+={C , D , A }, ∵BCG+ ,∴F不变 。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, C→D, C→A, AC→D, CB→B, CB→E } (2) 删除F中多余的FD。 G={ C→B, C→D, C→A, AC→D, CB→B, CB→E } BG+={ B }, ∵ABG+ , ∴F不变 。
函数依赖集的最小覆盖
例: 求F={ AC→A, C→B, B→A, C→D, C→A, AC→D, CB→BE } 的最小覆盖 (1) 用分解规则将F中的每个FD右部分解为单属性。 F={ C→B, B→A, AC→D, CB→E } (2) 删除F中多余的FD。 F={ C→B, B→A, AC→D, C→D, CB→E }
相关文档
最新文档