题目
2、某学院有基本实体集:系、教师、学生和课程系(系编号,系名,系主任)课程(课程号,课程名称,开课学期,学分)学生(学号,学生姓名,性别,联系方式)教师(员工号,教师姓名,职称,办公室)各个实体集之间存在以下联系:每个系有多名教师,一名教师仅在一个系任职;每个系设多门不同的课程,一门课只能由一个系开设;一名学生可以选修多门课程,一门课往往多名学生选修,应记录下选课日期和考试成绩。要求:请设计概念模型并转换成关系模型,并标注每个关系的码。1) E-R图
2、某学院有基本实体集:系、教师、学生和课程
系(系编号,系名,系主任)
课程(课程号,课程名称,开课学期,学分)
学生(学号,学生姓名,性别,联系方式)
教师(员工号,教师姓名,职称,办公室)
各个实体集之间存在以下联系:每个系有多名教师,一名教师仅在一个系任职;每个系设多门不同的课程,一门课只能由一个系开设;一名学生可以选修多门课程,一门课往往多名学生选修,应记录下选课日期和考试成绩。
要求:请设计概念模型并转换成关系模型,并标注每个关系的码。
1) E-R图
题目解答
答案
问题解析
根据题目描述,我们需要设计一个概念模型(E-R图)并将其转换为关系模型。以下是详细的解析和答案。
1. E-R图设计
实体集
-
系 (Department)
- 属性:系编号(DNo),系名(DName),系主任(DHead)
- 码:系编号(DNo)
-
课程 (Course)
- 属性:课程号(CNo),课程名称(CName),开课学期(CTerm),学分(CCredit)
- 码:课程号(CNo)
-
学生 (Student)
- 属性:学号(SNo),学生姓名(SName),性别(SGender),联系方式(STel)
- 码:学号(SNo)
-
教师 (Teacher)
- 属性:员工号(TNo),教师姓名(TName),职称(TRank),办公室(TOffice)
- 码:员工号(TNo)
联系
-
系与教师 (Department-Teacher)
- 联系类型:多对一(一个系有多名教师,一名教师仅在一个系任职)
- 联系名:任职(WorksIn)
-
系与课程 (Department-Course)
- 联系类型:多对一(一个系设多门不同的课程,一门课只能由一个系开设)
- 联系名:开设(Offers)
-
学生与课程 (Student-Course)
- 联系类型:多对多(一名学生可以选修多门课程,一门课往往多名学生选修)
- 联系名:选修(Enrolls)
- 属性:选课日期(EnrollDate),考试成绩(Grade)
2. 关系模型转换
根据E-R图,我们将实体集和联系转换为关系模型。
系 (Department)
- 关系名:Department
- 属性:DNo, DName, DHead
- 码:DNo
课程 (Course)
- 关系名:Course
- 属性:CNo, CName, CTerm, CCredit, DNo (系编号,表示课程由哪个系开设)
- 码:CNo
学生 (Student)
- 关系名:Student
- 属性:SNo, SName, SGender, STel
- 码:SNo
教师 (Teacher)
- 关系名:Teacher
- 属性:TNo, TName, TRank, TOffice, DNo (系编号,表示教师在哪个系任职)
- 码:TNo
选修 (Enrolls)
- 关系名:Enrolls
- 属性:SNo, CNo, EnrollDate, Grade
- 码:(SNo, CNo)(组合码,表示一个学生选修一门课程的唯一性)
3. 关系模型总结
-
Department (DNo, DName, DHead)
- 码:DNo
-
Course (CNo, CName, CTerm, CCredit, DNo)
- 码:CNo
-
Student (SNo, SName, SGender, STel)
- 码:SNo
-
Teacher (TNo, TName, TRank, TOffice, DNo)
- 码:TNo
-
Enrolls (SNo, CNo, EnrollDate, Grade)
- 码:(SNo, CNo)
解析说明
- 系 (Department):系的主码是系编号(DNo),因为每个系的编号是唯一的。
- 课程 (Course):课程的主码是课程号(CNo),因为每门课程的编号是唯一的。课程还包含系编号(DNo),表示这门课程由哪个系开设。
- 学生 (Student):学生的主码是学号(SNo),因为每个学生的学号是唯一的。
- 教师 (Teacher):教师的主码是员工号(TNo),因为每个教师的员工号是唯一的。教师还包含系编号(DNo),表示教师在哪个系任职。
- 选修 (Enrolls):选修关系的主码是学号(SNo)和课程号(CNo)的组合,因为一个学生选修一门课程的组合是唯一的。选修关系还包含选课日期(EnrollDate)和考试成绩(Grade)。
通过以上设计,我们确保了数据的完整性和一致性。