设计E-R图
【案例】设计教学数据库Teaching,画出E-R图。
【分析】教学数据库中涉及的有学生、教师、课程三个对象,这三个对象分别对应三个实体,在E-R图中用三个矩形表示。三个实体之间相互之间有联系,学生和课程之间有选课的联系,一个学生可以选修多门课程,一门课程可以被多个学生选修,所以联系类型是多对多;教师与课程之间有授课联系,一个教师可以讲授多门课程,规定一门课程只能有一个授课教师,那么该联系类型为一对多。每个联系在E-R图中用菱形表示,用连线连接实体和联系。另外,每个实体有自己的一些特征信息,这些特征信息可以定义为属性,在E-R图中用三个椭圆表示,椭圆用连线连接其所属实体或联系。其中教师包含了:教师号、教师姓名、性别和职称等属性;学生包含了:学号、学生姓名、性别、系别、出生日期等属性;课程包含了:课程号、课程名、学时、授课教师号等属性。学生选课以后会有成绩,该属性属于选修联系。
综上画出如右所示E-R图。
将E-R图转换成关系模型
1.E-R模型向关系模型的转换规则:
(1)实体类型的转换
将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。
例: 学生(学号,姓名,性别,系别,出生日期)
教师(教师号,姓名,性别,职称)
课程(课程号,课程名,学时,任课教师)
(2)联系类型的转换
1)实体间的联系是1:1(一对一)
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)如实体间的联系是1:N(一对多)
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3)如实体间的联系是M:N(多对多)
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
例: 将E-R图(见上)转换成关系模型
根据转换规则,我们作如下转换:
1.学生实体转换成学生关系:主键为学号
学生(学号#,姓名,性别,系别,出生日期)
2.课程实体转换成课程关系:主键为课程号
课程(课程号#,课程名,授课教师,学时)
3.教师实体转换成教师关系: 主键为教师号
教师(教师号#,姓名,性别,职称)
4.选修这个多对多联系转换成选修关系:属性包含与之相关的实体的主键及其自有属性, 主键为学号和课程号的组合。
选修(学号#,课程号#,成绩)
最终,关系模式有四个:
学生(学号#,姓名,性别,系别,出生日期)
课程(课程号#,课程名,授课教师,学时)
教师(教师号#,姓名,性别,职称)
选修(学号#,课程号#,成绩)
这四个关系就是我们在数据库中要创建的四张表。学生关系对应学生表,课程关系对应课程表,教师关系对应教师表,选修关系对应选课表。关系中的属性就是表中的列。