数据库模式分解.ppt

上传人:b****2 文档编号:2628921 上传时间:2022-11-04 格式:PPT 页数:67 大小:887.50KB
下载 相关 举报
数据库模式分解.ppt_第1页
第1页 / 共67页
数据库模式分解.ppt_第2页
第2页 / 共67页
数据库模式分解.ppt_第3页
第3页 / 共67页
数据库模式分解.ppt_第4页
第4页 / 共67页
数据库模式分解.ppt_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

数据库模式分解.ppt

《数据库模式分解.ppt》由会员分享,可在线阅读,更多相关《数据库模式分解.ppt(67页珍藏版)》请在冰豆网上搜索。

数据库模式分解.ppt

习题讲解最小依赖集1)考查AB,去掉它,计算A+=AC,不包含B,不能去掉2)考查BA,去掉它,计算BBCA,包含A,可去掉它3)考查BC,去掉它,计算BB,不包含C,不能去掉4)考查AC,去掉它,计算AABC,包含C,可去掉它5)考查CA,去掉它,计算CC,不包含A,不能去掉12345求解关系模式的候选码属性分类L类:

只出现在函数依赖的左边的属性R类:

只出现在函数依赖的右边的属性N类:

在函数依赖的两边均未出现的属性LR类:

出现在函数依赖的两边的属性求解关系模式的候选码对于给定的关系模式R及其函数依赖集F如果X是L或N类属性,则X必为R的任一候选码的成员如果X是R类属性,则X必不在任何候选码中如果X是L和N类组成的属性组,且X+包含了全部属性,则X是R的唯一候选码前例n例:

关系模式CTHRSG,若最小依赖集为F=CT,HRC,CSG,HSR,HTR,候选关键字为HS?

n解:

L、N类属性为HS,LR属性为CTRHS+=HSRCTG,包含全部属性,所以为唯一候选码n函数依赖图FDG用有向图表示的函数依赖,如XY即XYLL或或NN类属性有类属性有EE和和C,LRC,LR类属性类属性ADBADB,令,令X=EC,(EC)X=EC,(EC)+=U,EC=U,EC为为RR的唯一候选码。

的唯一候选码。

对对左边为单属性左边为单属性的函数依赖集求所有候选码的函数依赖集求所有候选码

(1)求F的最小依赖集F

(2)作出函数依赖图FDG(3)从FDG图中找出无入边的属性集X(4)察看FDG图中有无回路,若无,则输出X并结束,否则进行下一步(5)从各独立回路独立回路独立回路独立回路中各取一个结点的属性与X组成一个候选码,重复取得所有可能的组合,即R的全部候选码IBOQSDZWYXSDIBOQ算法:

对左边为多属性的函数依赖集求所有候选码

(1)将R所有属性分为L,R,N,LR四类,并令X代表L,N两类,令Y代表LR类。

(2)求X+,若X+包含R全部属性,则X即为R的唯一候选码,结束,否则转下一步。

(3)在Y中取一属性A,求(XA)+,若它包含R的全部属性,则转下一步,否则换一个属性重试,直至试完所有Y中的属性。

(4)若已找出所有候选码,则结束,否则在Y中依次取两个、三个、,求它们的属性闭包,直至其闭包包含R的全部属性。

n属于N-P完全问题(一类直观上难解可又找不出方法来证明它们的确难解的计算问题)n多属性下求解候选码的充分条件第六章关系数据理论6.1数据依赖6.2规范化6.3数据依赖的公理系统6.4模式的分解模式的分解6.4模式的分解n把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一并不是唯一的。

n只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。

关系模式分解的标准三种模式分解的等价定义分解具有无损连接性分解要保持函数依赖分解既要保持函数依赖,又要具有无损连接性模式的分解(续)定义定义定义定义6.166.16关系模式R的一个分解:

=R1,R2,RnU=U1U2Un,且不存在UiUj,FFii为为FF在在UUii上的投影。

上的投影。

定义定义定义定义6.176.17函数依赖集合XY|XYF+XYUi的一个覆盖Fi叫作FF在属性在属性UiUi上的投影上的投影模式的分解(续)定义定义定义定义6.166.16关系模式R的一个分解:

=R1,R2,RnU=U1U2Un,且不存在UiUj,FFii为为FF在在UUii上的投影。

上的投影。

定义定义定义定义6.176.17函数依赖集合XY|XYF+XYUi的一个覆盖Fi叫作FF在属性在属性UiUi上的投影上的投影模式的分解(续)n例:

SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSlocSL2NFn存在插入异常、删除异常、冗余度大和修改复杂等问题n分解方法可以有多种。

模式的分解(续)SLSnoSdeptSloc95001CSA95002ISB95003MAC95004ISB95005PHB模式的分解(续)1.SL分解为下面三个关系模式:

SN(Sno)SD(Sdept)SO(Sloc)分解后的关系为:

SNSDSOSNSDSOSnoSdeptSloc95001CSA95002ISB95003MAC95004PH95005模式的分解(续)n分解后的数据库丢失了许多信息丢失了许多信息n例如无法查询95001学生所在系或所在宿舍。

n如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息丢失信息模式的分解(续)2.SL分解为下面二个关系模式:

NL(Sno,Sloc)DL(Sdept,Sloc)分解后的关系为:

NLDLSnoSlocSdeptSloc95001ACSA95002BISB95003CMAC95004BPHB95005B模式的分解(续)NLDLSnoSlocSdept95001ACS95002BIS95002BPH95003CMA95004BIS95004BPH95005BIS95005BPH模式的分解(续)nNLDL比原来的SL关系多了3个元组无法知道95002、95004、95005究竟是哪个系的学生n元组增加了,信息丢失了元组增加了,信息丢失了第三种分解方法3.将SL分解为下面二个关系模式:

ND(Sno,Sdept)NL(Sno,Sloc)分解后的关系为:

模式的分解(续)NDNLSnoSdeptSnoSloc95001CS95001A95002IS95002B95003MA95003C95004IS95004B95005PH95005B模式的分解(续)NDNLSnoSdeptSloc95001CSA95002ISB95003MAC95004CSA95005PHB与SL关系一样,因此没有丢失信息。

具有无损连接性的模式分解n关系模式R的一个分解=R1,R2,Rn,若R与R1、R2、Rn自然连接的结果相等,则称关系,模式R的这个分解具有无损连接性无损连接性(Losslessjoin)n具有无损连接性的分解保证不丢失信息n无损连接性不一定能解决插入异常、删除异常、修改复杂、数不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题据冗余等问题模式的分解(续)第三种分解方法具有无损连接性问题:

这种分解方法没有保持原关系中的函数依赖SL中的函数依赖SdeptSloc,没有投影到关系模式ND、NL上保持函数依赖的模式分解设关系模式R被分解为若干个关系模式R1,R2,Rn(其中U=U1U2Un,且不存在UiUj,Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的保持函数依赖的(Preservedependency)。

保持函数依赖的模式分解例子nR(A,B,C),F=AB,CB分解1=(A,B,AB),(A,C)分解2=(A,B,AB),(B,C,CB)n计算分解1,2中3个模式的闭包FAB:

A+=AB,B+=B,AB+=AB,则对AB的分解有函数依赖ABAC:

A+=A,C+=C,AC+=AC,则对AC的分解没有函数依赖BC:

B+=B,C+=CB,BC+=BC,则对BC的分解只有函数依赖CBn分解1:

只有AB,显然,分解1不具有依赖保持性n分解2:

保留了所有函数依赖,具有依赖保持性分析两种分解的分析两种分解的分析两种分解的分析两种分解的依赖保持性?

依赖保持性?

依赖保持性?

依赖保持性?

第四种分解方法nSL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSlocn将SL分解为下面二个关系模式:

ND(Sno,Sdept)DL(Sdept,Sloc)这种分解方法就保持了函数依赖。

模式的分解(续)n如果一个分解具有无损连接性无损连接性,则它能够保证不丢失信息。

n如果一个分解保持了函数依赖函数依赖,则它可以减轻或解决各种异常情况。

n分解具有无损连接性和分解保持函数依赖是两个互相独立的互相独立的标准标准。

n具有无损连接性的分解不一定能够保持函数依赖。

同样,保持函数依赖的分解也不一定具有无损连接性。

模式的分解(续)第一种分解方法既不具有无损连接性,也未保持函数依赖,它不是原关系模式的一个等价分解SN(Sno),SD(Sdept),SO(Sloc)第二种分解方法保持了函数依赖,但不具有无损连接性。

NL(Sno,Sloc),DL(Sdept,Sloc)SLSL(SnoSno,SdeptSdept,SlocSloc)F=SnoSdept,SdeptSloc,SnoSlocF=SnoSdept,SdeptSloc,SnoSloc模式的分解(续)第三种分解方法具有无损连接性,但未持函数依赖ND(Sno,Sdept),NL(Sno,Sloc)第四种分解方法既具有无损连接性,又保持了函数依赖ND(Sno,Sdept),DL(Sdept,Sloc)SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSloc分解算法n算法6.2判别一个分解的无损连接性n算法6.3(合成法)转换为3NF的保持函数依赖的分解。

n算法6.4转换为3NF既有无损连接性又保持函数依赖的分解n算法6.5转换为BCNF的无损连接分解(分解法)n算法6.6达到4NF的具有无损连接性的分n解P196图5.11判别一个分解的无损连接性算法6.2

(1)构造初始表:

构造一个k行n列的初始表,其中每列对应于R的一个属性,每行用于表示分解后的一个模式组成。

如果属性Aj属于关系模式Ri,则在表的第一i行第j列置符号aj,否则置符号bij。

(2)根据F中的函数依赖修改表内容:

考察F中的每个函数依赖XY,在属性组X所在的那些列上寻找具有相同符号的行,如果找到这样的两行或更多的行,则修改这些行,则使这些行上属性组Y所在的列上元素相同。

修改规则是:

如果y所在的要修改的行中有一个为aj,则这些元素均变成aj;否则改动为bmj(其中m为这些行的最小行号)。

判别一个分解的无损连接性注意:

若某个bij被改动,则该列中凡是与bij相同的符号均做相同的改动。

循环地对F中的函数依赖进行逐个处理,直到发现表中有一行变为a1,a2,an或不能再被修改为止。

(3)判断分解是否为无损联接:

如果通过修改,发现表中有一行变a1,a2,an,则分解是无损联接的,否则分解不具有无损联接性。

ABCDEa1a2a3b14b15b21b22a3a4b25b31b32b33a4a5ABCDEa1a2a3a4a4a5a5b21b22a3a4a5a5b31b32b33a4a5初始表:

初始表:

初始表:

初始表:

最后结果最后结果最后结果最后结果:

R1R2R3R1R2R3122例子:

判断无损连接性ABCDEa1a2a3a3a4a4a5ABCDEa1a2a3a4a5a3a4a5a4a5初始表:

最后结果:

R1R2R3R1R2R3122简易方法:

只画关注数据判别一个分解的无损连接性已知关系模式已知关系模式R(ABCDE)及函数依赖集及函数依赖集F=AC,BC,CD,DEC,CEA验证分解验证分解=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是否是否为无损联接。

为无损联接。

通过修改发现表中第三行元素变为a1,a2,an,分解是无损联接。

判别一个分解的无损连接性n定理:

如果R的分解为r=R1,R2,nF为R所满足的函数依赖集合,分解r具有无损联接性的充要条件是:

R1R2(R1R2)F+n或R1R2(R2R1)F+模式的分解(续)定义定义定义定义6.166.16关系模式R的一个分解:

=R1,R2,RnU=U1U2Un,且不存在UiUj,FFii为为FF在在UUii上的投影。

上的投影。

定义定义定义定义6.176.17函数依赖集合XY|XYF+XYUi的一个覆盖Fi叫作FF在属性在属性UiUi上的投影上的投影判别一个分解的无损连接性n关系

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1