2022年数据库范式与关系模式示例推荐 .pdf
《2022年数据库范式与关系模式示例推荐 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库范式与关系模式示例推荐 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章 补充讲义一、 范式举例例 1:已知 R,请问 R为几范式?零件号单价P1 25 P2 8 P3 25 P4 9 BCNF 。 (25 改成 15还是 BCNF. 如:课程号与学号)例 2:已知 R,请问 R为几范式?材料号材料名生产厂M1 线材武汉M2 型材武汉M3 板材广东M4 型材武汉2NF 。有部分依赖。例 3:已知 R,请问 R为几范式?A D E A1 D1 E2 A2 D6 E2 A3 D4 E3 A4 D4 E4 BCNF 。例 4:R(X,Y,Z),F=XY-Z,R为几范式? BCNF 。例 5:R(X,Y,Z),F=Y-Z ,XZ-Y,R 为几范式? 3NF。R的候选
2、码为 XZ,XY , (R中所有属性都是主属性,无传递依赖)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 二、 求闭包数据库设计人员在对实际应用问题调查中,得到的结论往往是零散的、不规范的 (直观问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距,为此, 从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的规范化程度。例1已知关系模式R(U 、 F), 其中,U=A,B,C
3、,D,E; F=AB C, B D, EC B , ACB ,求( AB)+F. 解:设 X(0)=AB 1 计算 X(1),在 F 中找出左边为AB 子集的 FD,其结果是: ABC,BD X(1)=X(0)UB=ABUCD=ABCD 显然, X(1)X(0) 2 计算 X(2), 在 F 中找出左边为ABCD 子集的 FD ,其结果是:CE,ACB X(2)=X(1)UB=ABCDUBE=ABCDE 显然, X(2)=U 所以, (AB )+ F=ABCDE. (等于 U,所以 AB 是唯一候选关键字)例 2设有关系模式R(U 、F),其中 U=A,B,C,D,E,I;F=AD,ABE,B
4、E,CDI,EC,计算( AE)+解:令 X=AE,X(0)=AE 1 在 F 中找出左边是AE 子集的 FD,其结果是: AD,EC X(1)=X(0)UB=X(0)UDC=ACDE 显然, X(1)X(0) 2在 F 中找出左边是ACDE子集的 FD,其结果是: CD I X(2)=X(1)UI=ACDEI 显然,X(2)X(1),但 F 中未用过的函数依赖的左边属性已含有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI. 因为, X(3)X(2),所以,算法结束。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
5、名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 三、 求最小依赖集最小依赖集是对函数依赖集合进行规范的结果,这样才能对一般关系模式进行准确分析。例1设函数依赖集F=ABCE,AC,GPB,EPA, CDEP,HBP,DHG,ABCPG,求与 F 等价的最小函数依赖集。解:1 将 F 中依赖右部属性单一化:F1= AB C ABE HBP AC DH GPB DG EPA ABCP CDEP ABCG 2 由于有 AC,所以 ABC 为多余成份:所以 F2= ABE HBP AC DH GPB DG EPA ABCP CDEP ABCG 3
6、 经过分析认为F2 中无多余依赖,则:Fmin=F2为最小函数依赖集。即Fmin= ABE ,HBP, AC ,DH, GPB ,DG, EPA , ABCP,CDEP,ABCG. 例2已知 F=AB,BA,BC,AC,CA, 求 Fmin. 解:1 F1= AB AC B A BC C A 2 Fmin1= AB AC BA CA Fmin2= AB CA BC 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 例 3 已知
7、F=AC,CA,BAC,DAC, 求 Fmin。解:1 将 F 中依赖的右部属性单一化:F1= AC CA BA BC DA DC 2 由于 BA,AC,所以 BC 是多余成份。又由于 DA,AC,所以 DC 是多余成份。所以F2= AC CA BA DA 因为 F2 中所有依赖的左部都是单属性,所以不存在依赖左部的有多余属性。所以FminAC CA BA DA 即 FminAC,CA, BA ,DA. 例 4 设有关系模式R(U,F), 其中: U=E,F,G ,H,F=EG,GE,FEG,HEG,FHE, 求 F的最小依赖集。解:1 将 F 中依赖右部属性单一化:F1= EG HE GE
8、HG FE FH E FG 2 由于有 FE,FHE 为多余成份:(不是因为有HE,而是, F 后面加一个H 和不加一样)所以F2= EG HE GE HG FE FG 3 由于 F2 中, FE 和 FG 以及 HE 和 HG 之一为多余,则:Fmin1EG,GE,FG,HG Fmin2 EG,GE,FE,HE Fmin3,Fmin4 同理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 四、求候选码1. 候选关键字求解理论
9、对于给定的关系R(A1,A2, ,An)和函数依赖集F,可将其属性分为四类:L 类:仅出现在F 的函数依赖左部的属性R 类:仅出现在F 的函数依赖右部的属性N 类:在 F 的函数依赖左右两边均未出现的属性LR 类:在 F 的函数依赖左右两边均出现的属性定理 1:对于给定的关系模式R 及其函数依赖集F,若 X(X R)是 L 类属性,则X 必为 R的任一候选关键字成员。推论 1:对于给定的关系模式R 及其函数依赖集F,若 X(X R)是 L 类属性, 且 X 包含了 R的全部属性,则X 必为 R 的唯一候选关键字。定理 2:对于给定的关系模式R 及其函数依赖集F,若 X(X R)是 R 类属性,
10、则X 不在任何候选关键字中。定理 3:设有关系模式R 及其函数依赖集F,若 X 是 R 的 N 类属性,则X 必包含在R 的任一候选关键字中。推论 2:对于给定的关系模式R 及其函数依赖集F,若 X 是 R 的 N 类和 L 类组成的属性集,且 X+包含了 R 的全部属性,则X 必为 R 的唯一候选关键字。2. 单属性依赖集图论求解法(多属性不行)I:关系模式R,R 的单属性函数依赖集F。O:R 的所有候选关键字。算法:1 求 F 的最小依赖集Fmin。2 构造 FDG(函数依赖图 )。3 从图中找出关键属性集X(X 可为空)。4 查看 G 中有无独立回路,若无则输出X 即为 R 的唯一候选关
11、键字,转6,若有,则转5 。5 从各独立回路中各取一结点对应的属性与X 组合成一候选关键字,并重复这一过程取尽所有可解的组合,即为R 的全部候选关键字。6 结束。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 3多属性依赖集候选关键字求解法I:关系模式 R 及其函数依赖集F。O:R 的所有候选关键字。算法:1 将 R 的所有属性分为L,R,N 和 LR 四类,并令X 代表 L,N 两类, Y 代表 LR 类。2 求 X+,若
12、X 包含了 R 的全部属性, 则 X 即为 R 的唯一候选关键字,转 5 ,否则,转3 。3 在 Y 中取一属性A,求 (XA)+.若它包含了R 的全部属性,则转4,否则,调换一属性反复进行这一过程,直到试完所有Y 中的属性。4 若已找出所有候选关键字,则转5,否则在 Y 中依次取2 个, 3 个,求它们的属性闭包,直到其闭包包含R 的全部属性。5 停止,输出结果。例 1设 R(O,B,I,S,Q,D),F=SD,DS,IB,BI,BO,OB, 求 R 的所有候选关键字。解:1 Fmin SD,DS,IB,BI,BO,OB. 2 构造 FDG. 3 关键属性集 Q. (原始点和孤立点统称关键点
13、。)4 有两个独立回路,SDS,IBOBI. 所以 R 的所有候选关键字为:QSI,QSB, QSO,QDI,QDB,QDO. S D I B Q O 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 例 2. 设 R=X,Y ,Z,F=XY,YX, 求 R 的所有候选关键字。解:1 Fmin=XY,YX 。2 构造 FDG 3 关键属性 Z. 4 有 1 个独立回路,1).候选关键字个数各独立回路中结点个数乘积2 (1 个回路
14、, 2 个结点)。2).候选关键字所含属性个数关键属性个数独立回路个数112。所以 R 的所有候选关键字为:ZX,ZY . 例3设有关系模式R(A,B,C,D), 其函数依赖集FDB,BD,ADB,ACD, 求 R 的所有候选关键字。解:经考虑F 发现, A,C 两属性是 L 类属性,由定理知,AC 必是 R 的一候选关键字字成员。又因( AC )+=ABCD, 所以 AC 是 R 的唯一候选关键字。例4设有关系模式R(A,B,C,D,E,P),F=AD,ED,DB,BCD,DCA, 求 R 的所有候选关键字。解:经考察发现,C,E 两属性是 L 类属性,故C,E 必在 R 的任何候选关键字中
15、,又P是 N 类属性,故P 也必在 R 的任何候选关键字中。又因( CEP)+=ABCDEP 所以 CEP 是 R 的唯一候选关键字。X Y Z 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 五、模式分解对存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。在分解处理中会涉及一些新问题,为使分解后的模式保持原模式所满足的特性,要求分解处理具有无损联接性和保持函数依赖性。即分解
16、后的关系模式子集,应能通过自然连接运算恢复原状。1、关系模式规范化时一般应遵循以下原则:(1)关系模式进行无损连接分解。 关系模式分解过程中数据不能丢失或增加,必须把全局关系模式中的所有数据无损地分解到各个子关系模式中,以保证数据的完整性。(2)保持原来模型的函数依赖关系。因为这些函数依赖关系是数据模型反映的客观事物的固有属性,一般是不能舍弃的。(3)合理选择规范化程度。考虑到存取效率,低级模式造成的冗余度很大,既浪费了存储空间,又影响了数据的一致性,因此希望一个子模式的属性越少越好,即取高级范式;若考虑到查询效率,低级范式又比高级范式好,此时连接运算的代价较小,这是一对矛盾,所以应根据情况,
17、合理选择规范化程度。2、对模式分解的两个基本要求:模式分解可以提高关系模式的规范化程度,但是必须考虑如下问题:1避免信息丢失: 简单的说,就是模式R 分解为 R1 ,R2 ,, , Rn后,将 R1 ,R2,, Rn自然连接还应该等于模式R 。这就是“无损失联接”准则。 2 避免数据关系丢失: 简单地说,就是模式R分解为 R1,R2 ,, , Rn后,函数依赖集合 F也被对应分解为 F1,F2,, , Fn,应满足 F 与各 Fi (i=1 ,2,, n)的并集等价,即满足F+=(UFi )+ 。这就是“保持函数依赖”准则。关系模式的规范化过程是通过对关系模式的分解来实现的,但是把低一级的关系
18、模式分解为若干个高一级关系模式的方法并不是唯一的。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才有意义。3、关系模式分解的三个定义:(1) 分解具有“无损联接性” 。(2) 分解要“保持函数依赖” 。(3) 分解既要“保持函数依赖性” ,又要具有“无损连接性” 。规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:若要求分解具有无损联接性,那么模式分解一定能够达到4NF 。若要求分解保持函数依赖,那么模式分解一定能够达到3NF ,但不一定能达到 BCNF 。若要求分解具有无损联接性又保持函数依赖,则模式分解一定能够达到3NF ,但不一定能达到BCNF 。我们希
19、望最好能够既要“保持函数依赖”,又要具有“无损联接性” ,从上面结论可以看到只能达到3NF ,至于能否达到BCNF 或更高,要看具体情况。这就是在数据库设计中一般采用“基于3NF的数据设计方法”的根本原因。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 4、模式设计方法的原则:关系模式 R相对于函数依赖集F分解成 =R1,R2 ,, Rk,应具有以下特性:(1) 中每个关系模式Ri 上应有某种范式性质( 3NF或 BCNF )
20、(2) 无损联接(3) 保持函数依赖集(4) 最小性( 中模式个数应最少和模式中属性总数应最少)一个好的设计方法应符合下列3 个原则:表达性,分离性,最小冗余性。5、模式分解的算法:算法一:把关系模式无损分解成BCNF 输入:关系模式R和函数依赖集 F 输出: R的一个无损分解=R1,R2 ,, , Rk 方法:设关系模式R(U,F)(1)置初值: =R。(2)对于关系模式R的分解 (初始时 =R ) ,如果 中有一个关系模式 Ri 相对于 Ri(F)不是 BCNF 。由定义可知, Ri 中存在一个非平凡FD XY,有 X不包含码。此时把Ri分解成 XY和 Ri-Y 两个模式。重复上述过程,一
21、直到 中每一个模式都是BCNF 。(3) 算法结束, 就是分解结果。例 1:R(U,F) ,U=ABCDE F=ABC,BD,DE, 码是 AB 。分解过程如下:(1)先分出 DE ,=R1(ABCD ) ,R2(DE ) (2)再从 R1中分出 BD ,=R1(ABC ) ,R2 (DE ) ,R3 (BD ) (3)R1,R2 ,R3都属于 BCNF ,分解完成。例 2:设有关系模式 R(U,F) ,其中: U=C,T,H,R ,S,G F=CSG,CT,THR,HR C,HSR 将其无损联接地分解为BCNF 。解:R上只有一个侯选键HS 。(1)令 =CTHRSG 。(2) 中的模式不是
22、 BCNF 。(3) 考虑 CS G,这个函数依赖不满足BCNF 条件 (CS不包含侯选键 HS ) ,将 CTHRSG 分解为 CSG 和 CTHRS 。计算 CSG (F)和CTHRS (F) ,前者的最小覆盖是:CS G;后者的最小覆盖是: CT,HRC,THR,HS R。模式 CTHRS 的侯选关键字是 HS 。CSG 已是 BCNF ,进一步分解 CTHRS 。选择 CT,把 CTHRS 分解成 CT和 CHRS ,计算 CT(F)和CHRS (F) ,前者的最小覆盖是: CT;后者的最小覆盖是:HC R,HS R,HR C。模式 CHRS 的侯选关键字是 HS 。CT已是 BCNF
23、 ,再分解 CHRS 。选择 HC R, 把 CHRS 分解成 CHR 和 CHS ,计算CHR (F)和 CHS (F) ,前者的最小覆盖是: CH R,HR C;后者的最小覆盖是:HS C。这时 CHR 和 CHS 均为 BCNF 。(4)=CSG ,CT ,CHR ,CHS 。(HSR ,HS HR HR C =HS C)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 算法二:把一个关系模式分解为3NF ,使它具有依赖保
24、持性。输入:关系模式R和 R的最小依赖集 Fmin。输出: R的一个分解 =R1,R2 ,, Rk,Ri 为 3NF (i=1 ,, , k) ,具有依赖保持性。达到 3NF保持函数依赖分解的方法:设关系模式 R(U,F) :(1)将 F 化为最小函数依赖集,令F=Fmin。(2)把在 F 中不出现的属性从U中去掉,属性集合仍然为U。(3)对照 F 中的函数依赖集,将所有函数依赖左端相同的划为一组,相应的右端以及函数依赖均归入该组。(4)这些分组就是分解后的模式组成。(5)这种分解方法得到的就是达到3NF且保持函数依赖的分解。例 1:F=BG,CE B,CA,CEG,BD,CD, 码是 CE
25、,分解成三个模式。R1:U1=BDG,F1=B G,BD R2:U2=ACD,F2=C A,CD R3:U3=BCEG,F3=CE B,CEG 分解后, R1 ,R2,R3均达到 3NF ,且分解符合保持函数依赖的规则。例2: 设 有 关 系 模 式 R( U, F) , 其 中 : U=C, T, H, R, S, G F=CSG,CT,THR,HR C,HSR,将其保持依赖性分解为3NF 。解: (1)求出 F的最小依赖集, Fmin=CSG,CT,THR,HR C,HSR。(2)无。(3)R1 :U1=CSG,F1=CSG U2=CT, F2=CT U3=THR,F3=THR U4=HR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库范式与关系模式示例推荐 2022 数据库 范式 关系 模式 示例 推荐
限制150内