[说明]
有个关于运动会的管理系统,在该系统中,委员会为每一个参赛的运动员赋以一个唯一的编号“运动员号”,同时记录姓名、性别、年龄和队名,姓名和队名必须填写。
一个运动员属于且只属于一个队,一个运动员可以参赛多个项目。运动员参加比赛取得一个成绩,相应有一个积分:第一名积分6分,第二名积分4分,第三名积分2分,其他的没有积分。一个队的总积分是该队的所有队员的积分之和。
下图是该系统的E-R图。图中的实体和属性同时给出了中英文两种名字,回答问题时只需写出英文名即可。
问答题 根据E-R图中给出的词汇,按照“有关模式名(属性,属性,...)”的格式,将此E-R图转换为3个关系模式,指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。
【正确答案】Athlete(ANo, AName, ASex, Age, ATeam), 主键为ANo。
Item(INo, IName, ITime, IPlace), 主键为INo。
Games(ANo, INo, Score, Credit), 主键为(ANo, INo)。
【答案解析】E-R模型向关系模型的转换应遵循如下原则:
①每个实体类型转换成一个关系模式;
②一个1:1的联系(一对一联系)可转换为一个关系模式,或与任意一端的关系模式合并。若独立转换为一个关系模式,那么两端关系的码及其联系的属性为该关系的属性;若与一端合并,那么将另一端的码及属性的属性合并到该端。
③一个1:n的联系(一对多联系)可转换为一个关系模式,或与n端的关系模式合并。若独立转换为一个关系模式,那么两端关系的码及其联系的属性为该关系的属性,而n端的码为关系的码。
④一个n:m的联系(多对多联系)可转换为一个关系模式,两端关系的码及其联系的属性为该关系的属性,而关系的码为两端实体的码的组合。
⑤三个或三个以上多对多的联系可转换为一个关系模式,诸关系的码及联系的属性为关系的属性,而关系的码为各实体的码的组合。
⑥具有相同码的关系可以合并。
根据上述规则,可得如下关系模式:
Athlete(ANo,AName,ASex,Age,ATeam),主键为ANo。
Item(INo,IName,ITime,IPlace),主键为INo。
Games(ANo,INo,Score,Credit),主键为(ANo,INo)。
填空题 创建Athlete表时,ANo使用CHAR(6)并且唯一,AName使用CHAR(20),ASex使用CHAR(1),ATeam使用CHAR(20)。请在下列用于创建表Athelete的SQL语句空缺处填入正确的内容。
CREATE TABLE Athlete(ANo CHAR(6) NOT NULL,
AName CHAR(20),
ASex CHAR(1),
ATeam CHAR(20) NOT NULL,
______);
填空题 假定Games表存储参赛情况,如下的SQL语句是委员会用于查询“队名为‘China’的各个运动员各自夺取得的总积分”的不完整语句,请在空缺处填入正确的内容。
SELECT ______
FROM Games
WHERE ANo ______
(SELECT ANo
FROM ______
WHERE ATeam = "China")
GROUP BY ANo;