首先 做这题感觉与本文给的表格联系不大,故直接来解题。
1) 写出关系模式R的基本函数依赖和主码。
Q1:队员编号->球队名;球队名->队长名;(队员编号,比赛场次)->进球数
L:队员编号,比赛场次
R:队长名,进球数
LR:球队名
队员编号+ =队员编号,球队名,队长名
(队员编号,比赛场次)+=队员编号,比赛场次,球队名,进球数,队长名
(队员编号,球队名)+ =队员编号,球队名,队长名
(比赛场次,球队名)+ =比赛场次,球队名,队长名
故根据推论关系R有唯一的候选码(队员编号,比赛场次)此时码的个数大于1 主码可选(队员编号,比赛场次)
(2) 试说明R不是2NF模式的理由,并把R分解成2NF模式
Q2:
候选码(队员编号,比赛场次) 因为其真子集 队员编号->球队名;(队员编号,比赛场次)->球队名。存在部分函数依赖 故不满足2NF。
因为主码(队员编号,比赛场次) 真子集:队员编号->球队名;此时R1(队员编号,球队名),又因为球队名属于R1且->队长名,故R1(队员编号,球队名,队长名),比赛场次->null。
故2NF模式为
R1(队员编号,球队名,队长名)
R2(队员编号,比赛场次,进球数)(说明:R减去真子集中的非主属性)
(3) R分解成3NF模式,并说明理由。
Q3:
设队员编号为A,球队名为B,队长名为C,比赛次数为D,进球数为E
且根据Q2 有R1{A,B,C};R2{A,D,E}
则有关系R(A,B,C,D,E) 且函数依赖集F为(A->B,B->C,AD->E)
求F的最小依赖集步骤:
-
右边都为单属性,跳过
-
左边AD->E是多属性 去除A,则新函数依赖集H为(A->B,B->C,D->E) D(F+)=D,不包含E 故A不能去
去除D,则新函数依赖集H为(A->B,B->C,A->E) A(F+)= ABC,不包含E 故D不能去
-
去掉AD->E,新函数依赖集J为(A->B,B->C) AD(J+)=ADBC 不包含E 故不能去除AD->
-
因此得到最小函数依赖集F为(A->B,B->C,AD->E) ,故可分解为(A,B),(B,C),(A,D,E)
-
三者之间不存在包含关系,故可分解为R1{队员编号,球队名};R2{球队名,队长名};R3{队员编号,比赛场次,进球次数}
-
故3NF模式为:
R1{队员编号,球队名}
R2{球队名,队长名}
R3{队员编号,比赛场次,进球次数}