阅读下列说明和图,回答问题1至问题3。
【说明】
某学校的教学系统描述如下。
学生信息包括:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、入学年份(Syear)、主修专业(Smajor),其中学号是入学时唯一编定的。
教师信息包括:教工号(Tno)、姓名(Tname)、性别(Tsex)、年龄(Tage)、职称(Ttitle),其中教工号是唯一编定的。
课程信息包括:课程号(Cno)、课程名称(Cname)、学时(Cperiod)、学分(Ccredit),其中课程号是唯一编定的。
每个专业每个年级只有一个班级,这样班级就可用入学年份标识。
每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同。注意:一门课程至少有一位教师教授,否则这门课程就视为不存在。
每位学生可以同时选修多门不同的课程,一门课程至少要有10位学生选修,否则就取消这门课程的开设。注意:选修课程时要指定任课教师,不能重复选修同一门课程。课程结束后,任课教师给选修该课程的学生一个成绩(Grade)。注意:教师不能给没有选修他所教授课程的学生成绩,即使选修了其他教师教授的同一门课也不行。
如图9-11所示是经分析得到的E-R图。
【问题2】 按照“有关模式名(属性,属性,...)”的格式,将此E-R图转换为5个关系模式,指出每个关系模式中的主键和外键,其中模式名根据需要取实体名或联系名。 |
参考答案:
解析:教师(教工号,姓名,性别,年龄,职称),主键:教工号 课程(课程号,课程名称,学时,学分),主键:课程号 学生(学号,姓名,性别,年龄,主修专业,入学年份),主键:学号 教授(教工号,课程号,上课地点,上课时间),主键:(教工号) 选修(学号,课程号,任课教师,成绩),主键:(学号,课程号)或(学号,任课教师)
[分析]: E-R模型向关系模型的转换应遵循如下原则: ①每个实体类型转换成一个关系模式。 ②一个1:1的联系(一对一联系)可转换为一个关系模式,或与任意一段的关系模式合并。若独立转换为一个关系模式,那么两端关系的键及其联系的属性为该关系的属性;若与一段合并,那么将另一端的键及属性的属性合并到该端。 ③一个1:n的联系(一对多联系)可转换为一个关系模式,或与n段的关系模式合并。若独立转换为一个关系模式,那么两端关系的键及其联系的属性为该关系的属性,而n端的键为关系的键。 ④一个n:m的联系(多对多联系)可转换为一个关系模式,两端关系的键及其联系的属性为该关系的属性,而关系的键为两端实体的键的组合。 ⑤3个或3个以上多对多的联系可转换为一个关系模式,诸关系的键及联系的属性为关系的属性,而关系的键为各实体的键的组合。 ⑥具有相同键的关系可以合并。 由于“每位教师只教授特定的一门的课程……(学生)不能重复选修同一门课程”,因此教授联系的主键是“教工号”,修选联系的主键可以是“(学号,课程号)”,也可以是“(学号,任课教师)”。