资源描述:
《崔巍 数据库系统及应用第4版0404模式分解.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1模式分解模式分解的准则3NF无损连接和保持函数依赖算法使分解后的关系模式数最少2模式分解的准则模式分解具有无损连接性;模式分解能够保持函数依赖。3无损连接的形式定义:4保持函数依赖的形式定义:5设置设有关系模式R(U,F),U={职工号,仓库号,城市},F={职工号→仓库号,仓库号→城市},如下分解哪个是保持函数依赖和保证无损连接的分解。ρ1={R1(职工号,Φ),R2(仓库号,Φ),R3(城市,Φ)}ρ2={R1({职工号,仓库号},{职工号→仓库号}),R2({职工号,城市},{职工号→城市})}ρ3={R1({职工号,仓库号},{职工号→仓库号}),R2({仓库号,城市},{仓库
2、号→城市})}ABC提交单选题6设置设有关系模式R(U,F),U={ABCD},F={AD→C,B→D},ρ={ABC,BD}为R的一个分解,那么分解ρ为保持函数依赖和无损连接无损连接,但不保持函数依赖不是无损连接,但保持函数依赖即不是无损连接,也不保持函数依赖ABCD提交单选题7为了得到更高范式的关系进行的模式分解,是否总能既保证无损连接、又保持函数依赖?如果要求分解保持函数依赖,那么模式分解总可以达到3NF,但是不一定能达到BCNF;如果要求分解具有无损连接的特性,那么一定可以达到BCNF;如果要求分解既保持函数依赖、又具有无损连接的特性,那么分解可以达到3NF,但是不一定能达到BC
3、NF。8例:设有关系模式R(U,F),U={A,B,C},F={AB→C,C→B},该关系模式是3NF的,因为存在一个主属性对非主属性的函数依赖C→B,所以该模式不是BCNF。为了达到BCNF就必须进行分解,但是任何分解都会破坏函数依赖AB→C。所以为了保持函数依赖,就必须放弃BCNF。9在实践中BCNF的意义并不大,因为我们对模式分解的要求总是既要保证无损连接、又要保持函数依赖。那么,当一个关系是3NF时:关键字是单属性时,该模式自然是BCNF;关键字是复合属性,并且不存在主属性对非主属性的函数依赖,则该模式自然是BCNF;关键字是复合属性,并且至少存在一个主属性对非主属性的函数依赖,
4、则为了保持函数依赖,模式分解无法达到BCNF。10判断一个分解是否保持函数依赖,可以根据函数依赖的最小覆盖和等价来判断。11判断一个分解是否具有无损连接特性可以用如下法则:关系模式R分解为R1和R2是无损连接分解的充分必要条件是:R1∩R2→R1-R2或R1∩R2→R2–R1123NF无损连接和保持函数依赖算法13对R(U,F)中的F进行最小化处理,即计算F的最小覆盖,并将最小等价依赖集仍然记为F;若有X→A,并且X∪A=U,则ρ={R},算法终止;找出不在F中出现的属性(即与F中任意函数依赖的左部和右部都无关的属性),这样的属性构成一个关系模式R0(U0,Φ),并把U0从U中去掉,剩余
5、的属性仍然记为U;对F按具有相同左部的原则进行分组(假定分为k组),每一组函数依赖Fi所涉及的全部属性形成属性集Ui,若UiUj(i<>j),就去掉Ui;经过以上步骤得到的分解ρ={R0,R1,…,Rk}(R0可能为空,1…k可能不连续)构成R的一个保持函数依赖的分解,并且每个Ri均为3NF;设X是R(U,F)的关键字,并令τ=ρ∪RX(X,FX);若对某个Ui,如果XUi,则将RX从τ中去掉,或UiX,则将Ri从τ中去掉;最后τ就是所求分解。3NF保持函数依赖和无损连接的分解算法你能编程实现这个算法吗?143NF无损连接和保持函数依赖算法举例R=(U,F)U={A,B,C}F={
6、AB→C,B→C}步骤?结果?15使分解后的关系模式数最少16算法3.3已经保证了:3NF分解;保持函数依赖分解;无损连接分解;一般为了操作方便,我们还希望:分解的关系模式数最少17设有函数依赖集合:F={A→B,A→C,B→A,B→C,AE→D,BD→G,D→E}利用算法4.2求得的最小覆盖集是:F’={A→B,B→A,B→C,AE→D,BD→G,D→E}按照算法4.3得到的模式分解是:τ={R1({A,B,C},{B→AC,A→B}),R2({A,E,D},{AE→D,D→E}),R3({B,D,G},{BD→G})}18还是刚才那个依赖集:F={A→B,A→C,B→A,B→C,AE
7、→D,BD→G,D→E}利用算法4.2求得的最小覆盖集是:F’={A→B,B→A,B→C,AE→D,BD→G,D→E}注意:(AE)F’+={A,B,C,D,E,G}所以AE→BD和AE→GF’+设F”=F’∪{AE→BD,AE→G}显然有F’与F”等价。根据F”再计算最小覆盖,结果是:Fm={A→B,B→A,B→C,AE→D,AE→G,D→E}分解结果是:R1(A,B,C)、R2(A,D,E,G)使分解后的关系模式数最少自学4.