数据库范式与关系模式示例

上传人:大米 文档编号:487951687 上传时间:2023-03-09 格式:DOCX 页数:30 大小:121.43KB
返回 下载 相关 举报
数据库范式与关系模式示例_第1页
第1页 / 共30页
数据库范式与关系模式示例_第2页
第2页 / 共30页
数据库范式与关系模式示例_第3页
第3页 / 共30页
数据库范式与关系模式示例_第4页
第4页 / 共30页
数据库范式与关系模式示例_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《数据库范式与关系模式示例》由会员分享,可在线阅读,更多相关《数据库范式与关系模式示例(30页珍藏版)》请在金锄头文库上搜索。

1、第七章 补充讲义一、范式举例例1:已知R,请问R为几范式?零件号单价P125P28P325P49BCNF。(25改成15还是BCNF.如:课程号与学号)例2 :已知R,请问R为几范式?材料号材料名生产厂M1线材武汉M2型材武汉M3板材广东M4型材武汉2NF。有部分依赖。例3 :已知R请问R为几范式?ADEA1D1E2A2D6E2A3D4E3A4D4E4BCNF。例 4 : R(X,Y,Z),F二XY-Z,R 为几范式?BCNF。例 5 : R(X,Y,Z),F=Y-Z,XZ-Y,R 为几范式?3NF。R的候选码为XZ,XY,(R中所有属性都是主属性,无传递依赖)二、求闭包数据库设计人员在对实际

2、应用问题调查中,得到的结论往往是零散的、不规范的(直观 问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距 为此,从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的 规范化程度。例1.已知关系模式 R(U、F),其中,U二A,B,C,D,E; F二ABT C, B 弓 D, EC 弓 B , AC TB, 求(AB) +F.解:设 X(0)=AB计算X(D,在F中找出左边为AB子集的FD,其结果是:ABTC,BTD.X(i)=X(o)UB二ABUCD二ABCD 显然,X(dHX(。)计算X在F中找出左边为ABCD子集的FD,其结果是:CTE

3、,ACTBX(2)=X(i)UB二ABCDUBE二ABCDE显然,X(2)=U所以,(AB) + f二ABCDE.(等于U,所以AB是唯一候选关键字)例 2 设有关系模式 R(U、F),其中 U二A,B,C,D,E,I;F二ATD,ABTE,BTE,CD9,ETC,计算 (AE)+解:令 X=AE,X(0)=AE在F中找出左边是AE子集的FD,其结果是:ATD,ETC.X(i)=X(o)UB=X(o)UDC二ACDE显然,X(dHX(。) 在F中找出左边是ACDE子集的FD,其结果是:CDTI.X(2)=X(i)UI二ACDEI显然,X(2)HXd),但F中未用过的函数依赖的左边属性已含有X(

4、2)的子集,所以不必 再计算下去,即(AE) +二ACDEL因为,X二乂,所以,算法结束。最小依赖集是对函数依赖集合进行规范的结果,这样才能对一般关系模式进行准确分 析。例1.设函数依赖集 F二ABTCE,ATC,GPTB,EPTA,CDETP,HBTP,DTHG,ABCPG,求 与F等价的最小函数依赖集。解:将F中依赖右部属性单一化:F1= AB*C ABTEHBTPATCDTHGPTBDTGEPTAABCTPCDETPABCTG由于有ATC,所以ABTC为多余成份:所以F2=ABTEATCGPTBEPTAjCDETPHBTPDTHDTGABCTPABCTG 丄经过分析认为F2中无多余依赖,

5、则:Fmin=F2 为最小函数依赖集。即 Fmin= ABTE ,HBTP, ATC ,DTH, GPTB ,DTG, EPTA , ABCTP,CDETP,ABCTG.例2 .已知 F=ATB,BTA,BTC,ATC,CTA,求 Fmin.解 Qfi= Patb AT。b*ABTC*A 丿 Fmin1二ATBATCBTACTAFmin2二ATB CTABTC例 3 .已知 F=ATC,CTA,BTAC,DTAC,求 Fmin。解:将F中依赖的右部属性单一化rF1=ATCCTABTABTCTADTC,由于BTA,ATC,所以BTC是多余成份。 又由于DTA,ATC,所以DTC是多余成份。所以

6、F2=ATCCTA、-BTADTA丿因为F2中所有依赖的左部都是单属性,所以不存在依赖左部的有多余属性 所以 Fmin= ATCCTAjBTADTA 即 Fmin 二ATC, CTA, BTA , DTA.例 4 .设有关系模式 R(U,F),其中:U二E,F,G,H,F二ETG,GTE,FTEG,HTEG,FHTE,求 F 的最 小依赖集。解:将F中依赖右部属性单一化:F1=ETGHTEGTEHTGFTEFH V-EJftg丿由于有fTe,fhTe为多余成份:(不是因为有HTE,而是,F后面加个H和不加样)所以 F2=ETGGTEFTEHTEHTGFTG由于F2中,FTE和FTG以及HTE和

7、HTG之一为多余,则:Fmi n1二ETG,GTE,FTG,HTGFmin2 二ETG,GTE,FTE,HTE Fmin3, Fmin4 同理。四、求候选码1. 候选关键字求解理论对于给定的关系R (A1,A2,An)和函数依赖集F,可将其属性分为四类:L类:仅出现在F的函数依赖左部的属性 R类:仅出现在F的函数依赖右部的属性 N类:在F的函数依赖左右两边均未出现的属性 LR类:在F的函数依赖左右两边均出现的属性定理1:对于给定的关系模式R及其函数依赖集F,若X(Xe R)是L类属性,则X必为R的 任一候选关键字成员。推论1:对于给定的关系模式R及其函数依赖集F,若X(XWR)是1类属性,且X

8、包含了 R 的全部属性,则X必为R的唯一候选关键字。定理2 :对于给定的关系模式R及其函数依赖集F,若X(XWR)是R类属性,则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 的所有候选关键字。算法:求F的最小依赖集Fmin。 构造FDG(函数依赖图)。从图中找出关键属性集X (X可为空)。查看

9、G中有无独立回路,若无则输出X即为R的唯一候选关键字,转,若有,则转 。从各独立回路中各取一结点对应的属性与X组合成一候选关键字,并重复这一过程取 尽所有可解的组合,即为R的全部候选关键字。 结束。3多属性依赖集候选关键字求解法I:关系模式R及其函数依赖集F。O:R 的所有候选关键字。算法:将R的所有属性分为L,R,N和LR四类,并令X代表L,N两类,丫代表LR类。求X+,若X包含了 R的全部属性,则X即为R的唯一候选关键字,转,否则,转。在丫中取一属性A,求(XA)+.若它包含了 R的全部属性,则转Q,否则,调换一属性反 复进行这一过程,直到试完所有丫中的属性。若已找出所有候选关键字,则转5

10、,否则在丫中依次取2个,3个,求它们的属性 闭包,直到其闭包包含R的全部属性。停止,输出结果。例 1 设 R 二(O,B,I,S,Q,D),F二STD,DTS,TB,B9,BTO,OTB,求 R 的所有候选关键字。解: Fmin二STD,DTS,ITB,BTI,BTO,OTB.构造FDG.Q关键属性集Q.(原始点和孤立点统称关键点。)Q有两个独立回路,SDS,IBOBI.所以R的所有候选关键字为:QSI,QSB, QSO,QDI,QDB,QDO.例2.设R二X,Y,Z,F二XTY,YTX,求R的所有候选关键字。 解:QFmin二XTY,YTX。构造FDG关键属性Z.Q有i个独立回路,1) 候选

11、关键字个数二各独立回路中结点个数乘积=2(1个回路,2个结点)。2) .候选关键字所含属性个数二关键属性个数+独立回路个数=1 + 1 = 2。 所以R的所有候选关键字为:ZX,ZY.例3 .设有关系模式R(A,B,C,D),其函数依赖集F = DTB,BTD,ADTB,ACTD,求R的所有候 选关键字。解:经考虑F发现,A,C两属性是L类属性,由定理知,AC必是R的一候选关键字字 成员。又因(AC) +=ABCD,所以AC是R的唯一候选关键字。例4 .设有关系模式 R(A,B,C,D,E,P),F二ATD,ETD,DTB,BCTD,DCTA,求 R 的所有候选关 键字。解:经考察发现,C,E

12、两属性是L类属性,故C,E必在R的任何候选关键字中,又P 是N类属性,故P也必在R的任何候选关键字中。又因(CEP) +二ABCDEP所以CEP是R的唯一候选关键字。五、模式分解对存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。在分解处理中会涉及一些新问题,为 使分解后的模式保持原模式所满足的特性,要求分解处理具有无损联接性和保持函数依赖性。即分解后的关系模式子集,应能通过自然连接运算恢复原状。1、关系模式规范化时一般应遵循以下原则:(1)关系模式进行无损连接分解。关系模式分解过程中数据不能丢失或 增加,必须把全局关系模式中的所有数据无损地

13、分解到各个子关系 模式中,以保证数据的完整性。(2)保持原来模型的函数依赖关系。因为这些函数依赖关系是数据模型反映的客观事物的固有属性,一般是不能舍弃的。(3)合理选择规范化程度。考虑到存取效率,低级模式造成的冗余度很大,既浪费了存储空间,又影响了数据的一致性,因此希望一个子模式的属性越少越好,即取高级范式;若考虑到查询效率,低级范式又比高级范式好,此时连接运算的代价较小,这是一对矛盾,所以应根据情况,合理选择规范化程度。2、对模式分解的两个基本要求: 模式分解可以提高关系模式的规范化程度,但是必须考虑如下问题: 避免信息丢失:简单的说,就是模式R分解为R1, R2,,Rn后,将R1,R2,

14、-Rn自然连接还应该等于模式Ro这就是“无损失联接”准则。 避免数据关系丢失:简单地说,就是模式R分解为R1, R2,,Rn后,函 数依赖集合F也被对应分解为F1, F2,,Fn,应满足F与各Fi (i = 1, 2, -n) 的并集等价,即满足F+二(UFi ) +。这就是“保持函数依赖”准则。关系模式的规范化过程是通过对关系模式的分解来实现的,但是把低一级的关系模式分解为若干个高一级关系模式的方法并不是唯一的。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才有意义。3、关系模式分解的三个定义:(1) 分解具有“无损联接性”。(2) 分解要“保持函数依赖”。(3) 分解既要“保持函数依赖性”,又要具有“无损连接性”。规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到: 若要求分解具有无损联接性,那么模式分解一定能够达到 4NF。若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能 达到 BCNF。若要求分解具有无损联接性又保持函数依赖,则模式分解一定能够达到3NF,但不一定能达到BCNF。我们希望最好能够既要“保持

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号