问答题 [说明]
某学校的教学系统描述如下:
学生信息包括:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、入学年份(Syear)、主修专业(Smajor),其中学号是入学时唯一编定的。
教师信息包括:教工号(Tno)、姓名(Tname)、性别(Tsex)、年龄(Tage)、职称(Title),其中教工号是唯一编定的。
课程信息包括:课程号(Cno)、课程名称(Cname)、学时(Cpeiiod)、学分(Ccredit),其中课程号是唯一编定的。
每个专业每个年级只有一个班级,这样班级就可用入学年份标识。
每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同。注意:一门课程至少有一位教师教授,否则这门课程就视为不存在。
每位学生可以同时选修多门不同的课程,一门课程至少要有10位学生选修,否则就取消这门课程的开设。注意:选修课程时要指定任课教师,不能重复选修同一门课程。课程结束后,任课教师给选修该课程的学生一个成绩(Grade)。注意:教师不能给没有选修他所教授课程的学生成绩,即使选修了其他教师教授的同一门课也不行。
图2-1是经分析得到的E-R图。
[图2-1]
问答题 根据题意,给出联系的属性。实体间的联系有“一对一”、“一对多”和“多对多”,指出各联系分别属于哪一种。
【正确答案】教授:上课地点、上课时间,一对多
选修:任课教师、成绩,多对多
【答案解析】“每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同”,因此联系“教授”的属性应有:上课地点,上课时间,是一对多联系。
“每位学生可以同时选修多门不同的课程,一门课程至少要有10位学生选修,……,选修课程时要指定任课教师,……,任课教师给选修该课程的学生一个成绩(Grade)”,因此联系“选修”的属性应有:任课教师、成绩,是多对多联系。
问答题 按照“有关模式名(属性,属性,…)”的格式,将此E-R图转换为5个关系模式,指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。
【正确答案】教师(教工号,姓名,性别。年龄,职称),主码:教工号
课程(课程号,课程名称,学时,学分),主码:课程号
学生(学号,姓名,性别,年龄,主修专业,入学年份),主码:学号
教授(教工号,课程号,上课地点,上课时间),主码:(教工号)
选修(学号,课程号,任课教师,成绩),主码:(学号,课程号)或(学号,任课教师)
【答案解析】E-R模型向关系模型的转换应遵循如下原则:
①每个实体类型转换成一个关系模式。
②一个1:1的联系(一对一联系)可转换为一个关系模式,或与任意一段的关系模式合并。
③一个1:n的联系(一对多联系)可转换为一个关系模式,或与n段的关系模式合并。若独立转换为一个关系模式,那么两端关系的码及其联系的属性为该关系的属性,而n端的码为关系的码。
④一个n:m的联系(多对多联系)可转换为一个关系模式,两端关系的码及其联系的属性为该关系的属性,而关系的码为两端实体的码的组合。
⑤三个或三个以上多对多的联系可转换为一个关系模式,诸关系的码及联系的属性为关系的属性,而关系的码为各实体的码的组合。
⑥具有相同码的关系可以合并。
由于“每位教师只教授特定的一门的课程,学生不能重复选修同一门课程”,因此教授联系的主码是“教工号”,修选联系的主码可以是“(学号,课程号)”,也可以是“(学号,任课教师)”。
问答题 若用Student表存储学生信息,Teacher表存储教师信息,Course表存储课程信息,Study表存储学生选修课程情况。教务处想要“查询2006年入学的计算机专业(CS)的学生中平均成绩在85分以上的学生信息”。请将以下SQL语句补充完整。注:用对应英文表示。
SELECT * FROM student WHERE Smajor = "CS" AND Syear = "2006"
AND (1)
(SELECT Sno FROM Study GROUP BY Sno
HAVING (2) )
【正确答案】Sno IN
(2)AVG(Grade)>85
【答案解析】SELECT [ALL|DISTINCT]<目标列表达式>[,(目标列表达式>]…
FROM <表名或视图名>[,<表名或视图名>]
[WHERE(条件表达式>]
[GROUI BY <列名1>[HAVING<条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]…]
子句顺序为SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY,但SELECT和FROM是必须的,HAVING子句只能与GROUP BY搭配起来使用。
子查询的语意应为“按学号分组、平均分大于85的学生的学号”,可得空(1)应填Sno IN,空(2)应填AVG(Grade)>85。