为一个大学数据库应用程序(DBMS)绘制ER图?
问题
考虑以下约束条件,绘制大学数据库应用程序的ER模型图:
一所大学有多个系。
每个系有多名教师(一人为系主任)。这里的系主任指的是系主任。
一名教师只属于一个系。
每个系开设多门课程,每门课程由一名教师教授。
一名学生可以选修不同系开设的多门课程。
解决方案
按照以下步骤为大学数据库应用程序绘制实体关系(ER)图:
步骤 1 - 识别实体集。
实体集在给定的业务场景中有多个实例。
根据给定的约束条件,实体集如下:
系
课程
学生
教师
系主任不是实体集。它是教师和系实体之间的关系。
步骤 2 - 识别给定实体的属性
系 - 相关属性为系名称和位置。
课程 - 相关属性为课程编号、课程名称、持续时间和先修课程。
教师 - 相关属性为教师姓名、房间号和电话号码。
学生 - 相关属性为学号、学生姓名和出生日期。
步骤 3 - 识别主键属性
系名称是系的主键属性。
课程编号是课程实体的主键属性。
教师姓名是教师实体的主键属性。
学号是学生实体的主键属性。
步骤 4 - 识别实体集之间的关系
系开设多门课程,每门课程只属于一个系,因此系与课程之间的基数是一对多。
多名学生选修一门课程,一名学生选修多门课程。因此,关系是多对多。
一个系有多名教师,一名教师只属于一个系,因此关系是一对多。
每个系有一位“系主任”,一位教师只能在一个系担任“系主任”,因此关系是一对一。这里,系主任指的是系主任。
一门课程只由一位教师教授,但一位教师可以教授多门课程,因此课程与教师之间的关系是多对一。
教师与学生之间的关系没有定义,原因如下:
关系没有意义。
我们总是可以通过课程和教师,以及课程和学生间接推导出这种关系。
步骤 5 - 完整的 ER 模型
完整的 ER 模型如下:
广告