问答题 [说明]
某地区举行篮球比赛,需要开发一个比赛信息管理系统来记录比赛的相关信息。
[需求分析结果]
1.登记参赛球队的信息。记录球队的名称、代表地区、成立时间等信息。系统记录球队的每个队员的姓名、年龄、身高、体重等信息。每个球队有一个教练负责管理球队,一个教练仅负责一个球队。系统记录教练的姓名、年龄等信息。
2.安排球队的训练信息。比赛组织者为球队提供了若干个场地,供球队进行适应性训练。系统记录现有的场地信息,包括:场地名称、场地规模、位置等信息。系统可为每个球队安排不同的训练场地,如表3-9所示。系统记录训练场地安排的信息。

表3-9 训练安排表

球队名称
场地名称
训练时间
解放军
一号球场
2008-06-09 14:00-18:00
解放军
一号球场
2008-06-12 09:00-12:00
解放军
二号球场
2008-06-11 14:00-18:00
山西
一号球场
2008-06-10 09:00-12:00

3.安排比赛。该赛事聘请有专职裁判,每场比赛只安排一个裁判。系统记录裁判的姓名、年龄、级别等信息。系统按照一定的规则,首先分组,然后根据球队、场地和裁判情况,安排比赛(每场比赛的对阵双方分别称为甲队和乙队)。记录参赛球队、比赛时间、比分、场地名称等信息,如表3-10所示。

表3-10 比赛安排表

A组:

甲队…乙队
场地名称
比赛时间
裁判
比分
解放军…北京
一号球场
2008-06-17 15:00
李大明
天津…山西
一号球场
2008-06-17 19:00
胡学梅

B组

甲队…乙队
场地名称
比赛时间
裁判
比分
上海…安徽
二号球场
2008-06-17 15:00
丁鸿平
山东…辽宁
二号球场
2008-06-17 19:00
郭爱琪

4.所有球员、教练和裁判可能出现重名情况。
[概念模型设计]
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下。
1.实体联系图(图3-20)
【正确答案】[问题1]
本题考查读者对数据库概念结构设计及向逻辑结构转换的掌握情况。此类题目要求认真阅读题目对现实问题的描述,经过分类、聚集、概括等方法,从中确定实体及其联系。题目已经给出了4个实体,需要根据需求描述,给出实体间的联系。
由“每个球队有一个教练负责管理球队,一个教练仅负责一个球队。”知球队与教练间为1:1联系;球队与队员之间应为1:N联系;多个球队使用多个训练场地,球队与场地之间为M:N联系;比赛是球队、场地与裁判之间的联系,一个球队会与同组的其他多个队之间比赛,有多个场地和裁决,一位裁判会对多场比赛判罚,一个场地会有多场比赛,涉及多个球队和裁判,因此球队、场地与裁判之间的比赛关系为M:N:P联系。补充完整的实体联系图如图3-29所示。
【答案解析】
【正确答案】[问题2]
根据补充后的E-R图,球队与球员之间的1:N联系应通过将1端实体(球员)的主码(球队名称)加入到N端实体(球员)对应的关系中来表达。这类联系也可通过独立的一个关系来表达,如球队-球员 (球队名称,队员编号),这样会对查询增加多余的连接操作,因此一般不采用这种方法。
同样,球队与教练之间的1:1联系也应通过将一方的主码增加到另一方实体对应的关系中,来表达联系。
训练和比赛为多对多联系,只能独立成一个关系模式,取该联系相关联的各实体的码及联系自有的属性构成。如比分和分组应该是比赛的属性,再加上球队、裁判、场地的码,即构成“比赛记录”的关系模式。比赛记录关系模式的主键可以是“场地名称,比赛时间”,也可以是“裁判,比赛时间”,或者是“甲队,比赛时间”,再或者是“乙队,比赛时间”。其外键是“甲队,乙队,场地名称,裁判”。
同理,训练是球队和场地的多对多联系,训练开始时间和结束时间为训练的属性,加上球队的码和场地的码,构成“训练记录”关系模式。训练记录关系模式的主键可以是“球队,开始时间”,也可以是“场地名称,开始时间”,或者是“球队,结束时间”,再或者是“场地名称,结束时间”。其外键是“球队名称,场地名称”。
【答案解析】
【正确答案】[问题3]
球迷与球队之间为多对多联系,需新增球迷实体和球迷与球队之间的支持联系,如图3-30所示。
【答案解析】