题目
29.某学院有基本实体集:系、教师、学生和课程。系(系编号,系名,系主任)课程(课程号,课程名称,开课学期,学分)学生(学号,学生姓名,性别,联系方式)教师(员工号,教师姓名,职称,办公室)各个实体集之间存在以下联系:每个系有多名教师,一名教师仅在一个系任职;每个系开设多门不同的课程,一门课只能由一个系开设;一名学生可以选修多门课程,一门课往往有多名学生选修,应记录下选课日期和考试成绩。要求:请设计概念模型并转换成关系模型,并标注每个关系的码。
29.某学院有基本实体集:系、教师、学生和课程。
系(系编号,系名,系主任)
课程(课程号,课程名称,开课学期,学分)
学生(学号,学生姓名,性别,联系方式)
教师(员工号,教师姓名,职称,办公室)
各个实体集之间存在以下联系:每个系有多名教师,一名教师仅在一个系任职;每个系开设多门不同的课程,一门课只能由一个系开设;一名学生可以选修多门课程,一门课往往有多名学生选修,应记录下选课日期和考试成绩。
要求:请设计概念模型并转换成关系模型,并标注每个关系的码。
题目解答
答案
概念模型设计
根据题目描述,我们可以设计以下实体及其联系:
-
实体集:
- 系:包含属性系编号、系名、系主任。
- 教师:包含属性员工号、教师姓名、职称、办公室。
- 学生:包含属性学号、学生姓名、性别、联系方式。
- 课程:包含属性课程号、课程名称、开课学期、学分。
-
联系:
- 系与教师:一个系有多名教师,一名教师仅在一个系任职。这是多对一的联系。
- 系与课程:一个系开设多门不同的课程,一门课只能由一个系开设。这是多对一的联系。
- 学生与课程:一名学生可以选修多门课程,一门课往往有多名学生选修。这是多对多的联系,需要记录选课日期和考试成绩。
概念模型(E-R图)
-
系:
- 属性:系编号(主键),系名,系主任
-
教师:
- 属性:员工号(主键),教师姓名,职称,办公室
- 联系:系(多对一)
-
学生:
- 属性:学号(主键),学生姓名,性别,联系方式
-
课程:
- 属性:课程号(主键),课程名称,开课学期,学分
- 联系:系(多对一)
-
选课(学生与课程的多对多联系):
- 属性:学号(外键),课程号(外键),选课日期,考试成绩
关系模型设计
将上述概念模型转换为关系模型,并标注每个关系的码:
-
系(Department):
- 系编号(DepartmentID)(主键)
- 系名(DepartmentName)
- 系主任(DepartmentHead)
-
教师(Teacher):
- 员工号(EmployeeID)(主键)
- 教师姓名(TeacherName)
- 职称(Title)
- 办公室(Office)
- 系编号(DepartmentID)(外键)
-
学生(Student):
- 学号(StudentID)(主键)
- 学生姓名(StudentName)
- 性别(Gender)
- 联系方式(ContactInfo)
-
课程(Course):
- 课程号(CourseID)(主键)
- 课程名称(CourseName)
- 开课学期(Semester)
- 学分(Credits)
- 系编号(DepartmentID)(外键)
-
选课(Enrollment):
- 学号(StudentID)(外键)
- 课程号(CourseID)(外键)
- 选课日期(EnrollmentDate)
- 考试成绩(ExamScore)
- 主键:(StudentID, CourseID)
解析
-
系:
- 系编号是主键,唯一标识一个系。
- 系名和系主任是系的属性。
-
教师:
- 员工号是主键,唯一标识一个教师。
- 教师姓名、职称和办公室是教师的属性。
- 系编号是外键,表示教师所属的系。
-
学生:
- 学号是主键,唯一标识一个学生。
- 学生姓名、性别和联系方式是学生的属性。
-
课程:
- 课程号是主键,唯一标识一门课程。
- 课程名称、开课学期和学分是课程的属性。
- 系编号是外键,表示课程所属的系。
-
选课:
- 学号和课程号是外键,分别引用学生表和课程表的主键。
- 选课日期和考试成绩是选课的属性。
- (学号, 课程号) 组合成主键,唯一标识一条选课记录。
通过上述设计,我们确保了数据的完整性和一致性,并且能够有效地管理和查询相关数据。