第六章 关系模式分解理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 第四范式的判别方法 (1) 对函数依赖,应是BCNF。 (2) 对多值依赖,应不存在非平凡的多值依赖。 例:U={合同号,商品名,金额,币种,签约单 位} 说明:每一种商品必须用人民币和美元表示。 每一项合同可签约多种商品,且有多个签约单 位。 请判断上述模式的范式级别。
解答
分析: 合同模式多值依赖和函数依赖: 合同号 签约单位 {合同号,商品名,币种} 金额
例:判断下列模式的范式级别。 1. U=ABCD,F={AB CD,C A, D B} KEY={AB,CD, bc} 2. U=ABCD,F={AB CD, C AB} KEY=?
六 第四范式(4NF)
1. 为什么要研究第四范式? 设 U={课程名,任课教师,参考书}
课程名 数据库 任课教师 张三 参考书 数据库导论
方法:1 Si=X,i=0; 2 令Z={A| V,W(V W) V Si A W A Si } 3 Si+1<=Si Z 4 若 Si+1=Si,则算法结束; 否则 I<=i+1转2.
F
例:设U=ABCD,F={AB C,C D, CD A, BD A} 求: (BD)+,(AC)+ S0=BD,Z=A,S1=BDA,Z=C,S2=BDAC. (AC)+=?
八 公理完备性的证明 定理 凡是由F所蕴涵的函数依赖都可由 公理推出。 其逆否命题是 不能由公理推出的函数依 赖一定不被F所蕴涵。 证:设X A不能由公理推出 构造如下关系
• •
X F+
U- XF+
11……1 11……1 11……1 00……0 现证明r是R(U,F)上的关系,且X A对r不 成立。F中的函数依赖可分成以下三类 1 左 XF+,则右 XF+,函数依赖成 立
G;
• 例:设 F={AD EGB,A B,B E} 请去掉多余的函数依赖。 解:去AD E,计算(AD)G+=ABDE E (AD)G+,应去掉。 问:AD G,AD B 能去吗?
举例
例:设F={AB D,A B, D BC,C 求Fmin 解:右部最简: F= {AB D,A B, D B,C B D C} 去掉左部多余属性 对AB D,去A,B+=B B
例:设U={演员名,电影名,电影长度, 角色,生产日期,演员地址,制片厂}。 判断该模式的范式级别。
五 BCNF 范式
1. BCNF定义:若X Y成立,则X必含有 码,则称R(U,F)为BCNF范式。 2. 性质:BCNF 是第三范式。 证明:(1).消除了非主属性对码的部分依 赖。 (2). 消除了非主属性之间的函数依 赖。
(1) 在变换中,出现了全为aj的行,算法 终止,分解是无损的。 (2) F中所有函数依赖都不再使矩阵改变, 且无全aj行,算法终止,分解是有损的。 例 设U=ABCDE,F={AB C,C D,C E,BE C} U1=ABC,U2=CDE, U3=BEC 用矩阵判定之。
一个无损连接 的分解
A 1 2
2 2
1
3 4
2
例:r: A
1 1 2
B 2 2 1
C 3 4 4 B
一个有损连接 的分解
A 1 1 2
C 3 4 4
C
2 2
1
来自百度文库
3 4
4
五 无损连接分解的判别算法: 设 是R(U,F)的分解,U={A1,…,An} 输入 U,F, 输出 判别矩阵 方法; 1 构造矩阵m n 每一属性对应一列,每一模式对应一行
七 算法证明
定理:由算法得到的最小函数依赖集是F的 最小覆盖 证:只须证明算法的每一部都是等价变化即可。 1 由合并规则知右部最简正确。 2 左部最简证明 设 Y A G,因 A YF+ ,有Y A F+ 所以:G F+ G+ F +。
又X A F,Y A G,因Y X, 所以X A G+, F G+ F+G+。 故: F+= G+ 3 去掉多余函数依赖。 因G F G+ F+ 又设X A F,且A XG+ 所以 F G+, F+ G+
答案:1 KEY=AC,1NF 2 KEY={AC,AB}, 2NF 3 KEY=AB, 1NF
四 第三范式(3NF)
1. 定义: 若R(U,F)中,不存在非主属性对 码的部分依赖,也不存在非主属性对码 的传递函数依赖,则称R(U,F)是第三范 式。 2. 例: 判定下列范式那些是3NF? U1=ABCD , F1={A B, B D, B C} U2=ABCD , F2={DA B,B D,DA C}
四 无损连接分解 1 定义 设 为R(U,F)的分解,若r R(U,F),令 r1 R1(r ),...,rn Rn(r ) 有r1 r2 … rn=r 成立, 则称 是无损连接的。 2 意义 :信息不失真
例:r:
A 1 1 2 B 2 1
B 2 2 1 B
C 3 4 2 C
2 赋初值
cij=
aj bij
Aj Aj
U U
i
i
3 变换 对F中每一函数依赖X 进行变换
Aj按如下方法
(1) 若X所对应的列下至少有两行值相等, 则进行如下变换(只对X值相等的行进行) 若Aj所对应的列中有aj出现,则将其他行 变为 aj,否则bij代替其他行的bkj(I<all k) (2)若X所对应的列下无相等的行,则不进 行变换。 4 终止条件
三 第二范式(2NF)
1. 主属性与非主属性 2. 定义:若在F中不存在非主属性对码的部分函 数依赖,则称R(U,F)是第二范式。 3. 举例:判断下列模式是否为第二范式。 U1=ABCD,F1={A B, AC D} U2=ABCD, F2={AB C,AC D, C B} U3=ABCD,F3={AB C,AC D,B C} 思考题:设U={学号,课号,课名,成绩}, 判断该模式为第几范式?
第二节 传递闭包与最小覆盖
一 传递闭包 1. 定义: F+={X Y|X Y由公理推出} 说明:F的传递闭包由三类函数组成: (1) 平凡函数依赖 (2) 在F中的函数依赖 (3) 由公理推出的 例1 U=ABC,F={A B,B C} 求F+。
2. 等价: 若 F+=G+,则称F与G等价,也 称F是G的覆盖,或G是F的覆盖。 3. 性质: (1) 若 G F,则 G+ F+ 证明:设X Y G+,X Y由G中函 数依赖推出。而G中函数依赖就是F中 的函数依赖。 (2) (F+)+=F+
二 属性闭包: 1. 定义:设X U,XF+={A|X A由公理 推出} 说明: XF+是由X推出的所有函数依赖右 部的集合。 2. 性质: (1) X Y 成立,当且仅当 Y XF+ 证明:
分三种情况证明 (2) 若Y X,则 Y+ X+ 证明:略 三 计算X+的算法 输入:X,F 输出:X+
例:F={A B,C B,B D},U1=CD 求F(U1) 二 模式分解 定义:设U1,U2,…,Un U,若模式 集{R1(U1,F1),…,Rn(Un,Fn)}满足如下 条件 n 1 Ui =U i 1 2 Fi是F(Ui).
3 不存在Ui Uj 则称R1,…,Rn是R的分解,记为 例 设U=ABCDE,F={AB D,BC E, D C,DB A}, 请说出下列划分那些是分解,那些不是。 1:U1=ABC,F1={AB C} U2=CDE, F2={D C}
第六章 关系模式分解理论
第一节 关系范式
一为什么要研究关系范式? 例1 分析如下关系模式下的各种操作。 选课(学号,姓名,所在院系,课程号,成 绩,课程名) 分析:插入------会出现异常 删除-------会出现异常 存储--------冗余异常
二 第一范式
1. 定义: 若在关系模式R(U,F)中, 所有属性都是简单属性。 2. 简单属性应满足的条件 不存在组合属性 不存在值为复合类型的属性 3. 关系规范化方法
2 左 U- XF+ ,则右部无论属于那边, 函数依赖均成立。 3 左被分割 ,结论同2。 另 显然X A 对r不成立。证毕
第三节 模式分解的基本概念
一 函数依赖集的投影 定义:设U1 U,令F1={X Y|X Y F+ X,Y U1},则称F1为F在U1上的投 影,记为F(U1). 说明:F(U1)中的属性都在U1中。 X Y或在F 中或由F推出
去B,求A+=ABDC,D A+ 所以 B可以去掉 F={A D,A B, D B,C B D C} 去掉多余的函数依赖 Fmin={A D,C B, D C}
• 练习题: F={ABD EG,B D,A D, AB D, AB DE, EG B, BD C}。 求 Fmin
1. F={AB G,AB E,B D,A D, AB D, EG B,B C} 2 F={AB G,AB E,B D,A D, B EG B}
六求最小覆盖的算法
输入:U,F 输出:F的最小覆盖Fmin 方法: 1 右部化为单属性 2 剔除左部多余的属性 设 X={B1,…,Bn},X (1) I=1
A
(2) Y=X-Bi (3) 若 I>=n,则X A化简结束,从F中抽取 下一条须化简的函数依赖,转(1). (4) G=F-{X A} {Y A} (5) 计算 YF+ (6) 若 A YF+,则X Y,F G,n n-1,转(2);否则 I I+1,转(2).
四 算法正确性证明 1 终结性证明:因为Si有上确界,且Si是向上单 调的。 2 正确性证明: 五 最小函数依赖集与最小覆盖 1最小函数依赖集:应满足如下条件 (1). 右部最简 (2) 左部没有多余的 (3) 没有多余的函数依赖
2 最小覆盖: 若G是最小函数依赖集,且 G+=F+,则称G是F的最小覆盖。 例:设U=ABCD,F={AB CD,B C, C D ,D C, B D} 讨论:最小函数依赖集 F1={B C,C D,D C}
举例
例:设 F={ABD EG,A B,B D} 请去掉左部多余的属性。 解: 去A,求(BD)F+=BD A (BD)F+,所以A不能去。 去B,求(AD)F+=ADBEG EG (AD)F+,所以B能去。 去D ?
3 去掉多余的函数依赖 对F中所有函数依赖X A,做 (1) 令G=F-{X A} (2) 计算XG+, (3) 若A XG+,则去掉X A ,F 否则不去掉。 (4) 转(1).
C
• 答案:{AB G,B D,A D,AB E,B C,EG B} • 求最小覆盖算法的不唯一 例:设F={A B,B C,A C,B A} F1={A B,B C, B A} F2={A B, A C,B A}
练习 设F={AB CD, A BE, D E, B D} 求:Fmin 答案:Fmin={A C, A B, D E, B D}
2
U1=AB,F1= U2=CD,F2={D C} U3=CDE,F3={D C} 三 保持函数依赖的分解 定义: 设 ={R1,…,Rn}是分解,若 n ( Fi )+ =F+,则称 是保持函数依赖 i 1 的分解。
例 设U=ABCD,F={AB C,B D,CD A},请问下列分解那些是保持函数依赖的。 1 U1=ABC,U2=BD,U3=CDA 2 U1=ABC,U2=CDA。
数据库
数据库 数据库
张三
李四 李四
事务处理
数据库导论 事务处理
2. 4NF定义:若X Y是非平凡的多值依 赖,则 X是码。 例:判断下列模式的范式的级别 (1) U=ABCDE, D={AB CDE, A B} (2) U=ABCDE, D={BD AE,BD C,AB CDE}
性质: (1). 4NF 是BCNF。 证明:D中只存在两种多值依赖:平凡 多值依赖和非平凡多值依赖,由定义知: 非平凡多值依赖一定是包含码的,因此, 它一定是函数依赖。可见,D中的一切函 数依赖都是依赖码的。 (2).4NF消除了数据冗余。
• 答案:1 KEY=A,不是。 • 2 KEY={DA,AB},是。
3. 性质: ( 1). 第三范式一定是第二范式。 (2). 第三范式不存在非主属性之间的函数依赖, 但仍然存在主属性之间的函数依赖。 4.判别方法: (1).找码 (2). 考察非主属性对码的函数依赖是否为部分 函数依赖。 (3). 考察非主属性之间是否存在函数依赖。