以下是一个简单的 ER图(实体-关系图)示例,描述了一个教学管理系统的数据模型。通过这个例子,你可以理解ER图的基本元素(实体、属性、关系)以及它们之间的交互。
ER图示例:教学管理系统
实体(Entities)
-
学生(Student)
-
属性:学号(StudentID,主键)、姓名(Name)、年龄(Age)、院系(Department)
-
说明:表示学生的基本信息。
-
-
课程(Course)
-
属性:课程号(CourseID,主键)、课程名称(CourseName)、学分(Credits)、先修课程(Prerequisite,外键,关联到CourseID)
-
说明:表示课程的基本信息,包括先修课程(自引用关系)。
-
-
教师(Teacher)
-
属性:工号(TeacherID,主键)、姓名(Name)、职称(Title)
-
说明:表示教师的基本信息。
-
-
院系(Department)(可选扩展实体)
-
属性:院系编号(DeptID,主键)、院系名称(DeptName)
-
说明:表示学生或教师所属的院系。
-
关系(Relationships)
-
选课(Enrolls)
-
学生 ↔ 课程(多对多关系)
-
联系集属性:成绩(Grade)
-
说明:一个学生可以选修多门课程,一门课程可以被多个学生选修,成绩记录在联系集中。
-
-
授课(Teaches)
-
教师 ↔ 课程(多对多关系)
-
联系集属性:授课学期(Semester)
-
说明:一位教师可以教授多门课程,一门课程可以由多位教师教授。
-
-
属于(Belongs)
-
学生 → 院系(多对一关系)
-
说明:一个学生属于一个院系,一个院系可以有多个学生。
-
ER图符号说明
-
矩形:实体(如 Student、Course)。
-
椭圆:属性(如 StudentID、CourseName)。
-
菱形:关系(如 Enrolls、Teaches)。
-
直线:连接实体与关系,或实体与属性。
-
双线:表示完全参与(如学生必须属于一个院系)。
-
箭头:表示“一”的一侧(如一个院系对应多个学生)。
可视化示例(文字描述)
学生(Student) |-- 学号(StudentID) PK |-- 姓名(Name) |-- 年龄(Age) |-- 院系(Department) FK → 院系(DeptID) 课程(Course) |-- 课程号(CourseID) PK |-- 课程名称(CourseName) |-- 学分(Credits) |-- 先修课程(Prerequisite) FK → 课程(CourseID) 教师(Teacher) |-- 工号(TeacherID) PK |-- 姓名(Name) |-- 职称(Title) 院系(Department) |-- 院系编号(DeptID) PK |-- 院系名称(DeptName) 关系: 学生 --选课(Enrolls)--> 课程 |-- 成绩(Grade) 教师 --授课(Teaches)--> 课程 |-- 授课学期(Semester) 学生 --属于(Belongs)--> 院系
关键点
-
主键(PK):唯一标识实体的属性(如 StudentID)。
-
外键(FK):引用其他实体主键的属性(如 Prerequisite 引用 CourseID)。
-
多对多关系:需要引入联系集(如 Enrolls、Teaches)并记录额外属性。
-
自引用关系:例如课程的“先修课程”指向自身的主键。
如果需要更复杂的示例(如包含弱实体、继承关系等),可以进一步扩展这个模型!