设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管)
存储运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。
试回答下列问题:
(1)根据上述规定,写出模式R的基本FD和关键码;
(2)说明R不是2NF的理由,并把R分解成2NF模式集;
(3)进而分解成3NF模式集。

设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管)
存储运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。
试回答下列问题:
(1)根据上述规定,写出模式R的基本FD和关键码;
(2)说明R不是2NF的理由,并把R分解成2NF模式集;
(3)进而分解成3NF模式集。

(1)基本的FD有三个: (运动员编号,比赛项目)→成绩 比赛项目→比赛类别 比赛类别→比赛主管 R的关键码为(运动员编号,比赛项目)。 (2)R中有两个这样的FD: (运动员编号,比赛项目)→(比赛类别,比赛主管) 比赛项目→(比赛类别,比赛主管) 可见前一个FD是局部依赖,所以R不是2 NF模式。 R应分解成R1(比赛项目,比赛类别,比赛主管) R2(运动员编号,比赛项目,成绩) 这里,R1和R2都是2 NF模式。 (3)R2已是3 NF模式。 在R1中,存在两个FD:比赛项目→比赛类别 比赛类别→比赛主管 因此,“比赛项目→比赛主管”是一个传递依赖,R1不是3NF模式。 R1应分解成R11(比赛项目,比赛类别) R12(比赛类别,比赛主管) 这样,ϱ={R11,R12,R2}是一个3NF模式集。

Top