时间:2021-07-01 10:21:17 帮助过:80人阅读
A. A1 B. A1A3 C. A1A3A4 D. A1A2A3
解答:求候选关键字,先求哪个属性集的闭包包含所有属性(超码)。A1的闭包:{A1,A2,A3,A4},符合要求。
例4.设有关系模式R(职工名,项目名,工资,部门名,部门经理)。如果规定,每个职工可以参加多个项目,各领一份工资(一人一项目同时确定工资);每个项目只属于一个部门管理;每个部门只有一个经理。
①试写出关系模式R的基本函数依赖和关键码.
基本函数依赖:(职工名,项目名)→工资,项目名→部门名,部门名→部门经理
关键码:(职工名,项目名)
②说明R不是2NF的理由,并把R分解成2NF.
2NF特点:不存在非主属性对候选码的部分函数依赖。
(画图好理解qwq)
这里(职工名,项目名) P→部门名,存在非主属性对候选码的部分函数依赖,所以不属于2NF。
分解为2NF:R1(职工名,项目名,工资)、R2(项目名,部门名,部门经理)。
③进而把R分解成3NF,并说明理由。
分析:3NF特点:非主属性对候选码没有部分函数依赖,也没有传递依赖。很明显这里有传递依赖:项目名 t→ 部门经理,需要进一步拆分。
分解:R1(职工名,项目名,工资)、R2(项目名,部门名),R3(项目名,部门经理)。
理由:上述三个表的码分别为(职工名,项目名)、(项目名)、(项目名),每一个非主属性对候选码没有部分函数依赖,也没有传递函数依赖。
例5.设有关系模式R(A,B,C,D,E,F),其函数依赖集F={E->D, C->B, CE->F, B->A}。
①指出R的主键并说明原因。
分析:求主键,先求哪个属性集的闭包包含了所有属性。
解答:主键为CE,因为属性集CE的闭包为{C,E,D,B,F,A},包含了所有属性。
②R最高属于第几范式。
分析:助教说一般都是第一范式,当然需要简单分析一下,方便第三题:)
解答:最高属于第一范式,因为存在非主属性对候选码的的部分函数依赖:C->B。
③分解R为3NF。
分析:这个画图真的好理解,先分解为第二范式,然后再分解为第三范式。
第二范式:(E,D)、(C,B,A)、(C,E,F)(消除非主属性部分函数依赖)
第三范式:(E,D)、(CB)、(BA)、(C,E,F)(消除非主属性传递函数依赖)
解题要点四:判断一个模式分解是否具有无损连接性:
1.无损连接定理:关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是:U1∩U2→U1-U2 €F+ 或U1∩U2→U2-U1€F+。
简单来说,就是
注:上述定理只能判断分成两个关系的判定,如果分成三个及以上的话,怎么办呢(考试不会考这么难的,放心),书上197页有表格法,深入学习:http://blog.csdn.net/qq379666774/article/details/16969493。
2.推论(充分条件):如果R1∩R2是R1或R2的超码(U部分依赖于K,则称K为超码),则R上的分解(R1,R2)是无损分解。
注:注意这里是充分条件,当所有的约束都是函数依赖时它才是必要条件(例如多值依赖就是一种非函数依赖的约束),不过这已经足够了,常用这个。
例6.R(A,B,C,D,E),R的函数依赖集F={A->BC,CB->E,B->D,E->A}. 判断R1(A,B,C),R2(A,D,E)是否是无损连接。
解答:R1∩R2=(A),A的闭包为{A,B,C,E,D},发现A是R1的超码,甚至是主键,所以是无损连接。(注意是充分条件)
解题要点五:判断一个模式分解是否有函数依赖保持性:
1.充分条件:如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的。
2.如果上述判断失败,并不能断言分解不是保持依赖的,因为只是充分条件,还要使用下面的通用方法来做进一步判断。
算法:对F上的每一个α→β使用下面的过程:
result:=α; while(result cahnges) do for each 分解后的Ri t=(result∩Ri)+ ∩Ri result=result∪t
其中的(result∩Ri)+属性闭包是在函数依赖集F下计算出来的。如果result中包含了β的所有属性,则函数依赖α→β成立。分解是保持依赖的当且仅当上述过程中F的所有依赖都被保持。
例7.设关系模式R<U, F>,其中U={A, B, C, D, E},F={A→BC,C→D,BC→E,E→A},则分解ρ={R1(ABCE),R2(CD)}满足 ___A__。
A.具有无损连接性、保持函数依赖
B.不具有无损连接性、保持函数依赖
C.具有无损连接性、不保持函数依赖
D.不具有无损连接性、不保持函数依赖
解答:先判断无损连接。R1∩R2={C},计算C+={C,D},可见C是R2的超码,该分解是一个无损分解。
再判断保持依赖。A→BC,BC→E, E→A都在R1上成立(也就是说每一个函数依赖左右两边的属性都在R1中),C→D在R2上成立,因此给分解是保持依赖的。(利用充分条件就可以判断)。
例8.给定关系模式R<U, F>,U={A, B, C, D, E},F={B→A,D→A,A→E,AC→B},其候选关键字为_(1)D_,则分解ρ={R1(ABCE),R2(CD)}满足_(2)D_ 。
(1)A.ABD B.ABE C.ACD D.CD
(2) A.具有无损连接性、保持函数依赖
B.不具有无损连接性、保持函数依赖
C.具有无损连接性、不保持函数依赖
D.不具有无损连接性、不保持函数依赖
解答:第一问,计算各个选项的闭包。
(ABD)+ = {A,B,D,E}
(ABE)+ = {A,B,E}
(ACD)+ = {A,B,C,D,E}
(CD)+ = {A,B,C,D,E}
选D。
第二问,先判断无损连接。R1∩R2={C},计算C+={C}。C既不是R1也不是R2的超码,但这不能判断该分解不具有无损分解性,因为这个判断方法是充分条件。我们用定理来判断:
U1 ∩ U2={C},其闭包为{C}
U1-U2={ABE}
U2-U1={D}
所以U1∩U2→U1-U2 €F+ 和U1∩U2→U2-U1€F+都不成立,即不具有无损连接性。
再判断保持依赖:
B→A,A→E,AC→B在R1上成立,D→A在R1和R2上都不成立,但是还需做进一步判断。
我们对D→A应用算法:
result=D
对R1,result∩R1=ф,t=ф,result=D
再对R2,result∩R2=D,D+ =ADE ,t=D+ ∩R2=D,result=D
一个循环后result未发生变化,因此最后result=D,并未包含A,所以D→A未被保持,所以该分解不是保持依赖的。
选D。
作者: AlvinZH
出处: http://www.cnblogs.com/AlvinZH/
本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
数据库复习之规范化理论应用(第八次上机内容)
标签:-418 tar csdn 表格 str 操作 article 物理 images