ER图转换为关系模式实例

二、概念结构设计

1、系统概念模型

学分限制 班级名 学号 姓名

学分 授课教师 接纳人数 时间 课号 课程 课名 1 班级 m 属于 学生 性别 m 必修 选修 m 生日 n n m 上课 n 上课时间 图1选课系统概念模型E-R图

(注:本例中上课时间可以抽象成实体,也可以抽象成属性。) 2、详细说明

(1)系统涉及的实体集

? 班级实体集:具有属性班级名称和选课学分限制。 ? 学生实体集:具有属性学号、姓名、性别和生日。

? 课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。 ? 上课时间实体集:具有属性时间。 (2)系统涉及的联系

? 一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学

生之间的联系为1:M的联系。

? 一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班

级和课程之间的必修联系是M:N的联系。

? 一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生

和课程之间的联系是M:N的联系。

? 一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所

以课程和上课时间的联系是M:N的联系。

三、逻辑结构设计

将E-R模型转换为关系模式 (1)班级实体集可以转换为关系

CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)

CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。 (2)学生实体集可以转换为关系

STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)

STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日

(3)课程实体可以转换为关系

COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION) COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。

(4)班级和学生之间的联系是1:M的联系,所以没有必要为其建立一个关系,可以通过扩展学生关系来表示。

STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME) CLASSNAME表示学生所在班级名。 (5)班级和课程之间的必修联系可以转换为关系

CLASSCOURSE(CLASSNAME , COURSEID)

CLASSNAME表示班级名称,COURSEID表示课程号。 (6)学生和课程之间的选修联系可以转化为关系

STUDENTCOUSE(STUDENTID, COURSEID,GRADE)

STUDENTID表示学号,COURSEID表示课程号,GRADE表示成绩。 (7)课程和上课之间的联系可以转化为关系

COURSETIME(COURSEID , TIME)

COURSEID表示课程号,TIME表示上课时间。 (注:若将上课时间抽象成属性,则不必有关系(7)。)

四、数据库物理结构设计

1、把关系模型转化为表结构

(1)班级信息表(class):包含所有的班级信息。

表1- 班级信息表结构

域名 CLASSNAME MAXCREDIT MINCREDIT 含义 班级名称 最大学分限制 最小学分限制 数据类型 字符类型 数值类型 数值类型 例子 121131001 30 20 备注 主码 (2)学生信息表(student):包含所有学生的个人信息。

表2- 学生信息表结构

域名 STUDENTID NAME SEX BIRTHDAY CLASSNAME 含义 学号 姓名 性别 生日 班级名称 数据类型 字符类型 字符类型 字符类型 日期类型 字符类型 例子 1211310015 王强 男 95/07/15 121131001 备注 主码 外码 (3)课程信息表(course):包含所有课程信息。

表3- 课程信息表结构 域名 COURSEID CREDIT TEACHER ACCEPTION 含义 课程号 学分 任课教师 接纳人数 数据类型 字符类型 字符类型 数值类型 字符类型 数值类型 例子 000001 数值分析 4 刘强 30 备注 主码 COURSENAME 课程名称 (4)班级必修课表(classcourse):包含所有班级的必修课信息。

表4- 班级必修课表结构 域名 CLASSNAME COURSEID 含义 班级名称 课程号 数据类型 字符类型 字符类型 例子 121131001 000001 备注 外码 外码 (5)学生选课表(studentcourse):包含所有学生的选课信息。

表5- 学生选课表结构 域名 STUDENTID COURSEID GRADE 含义 学号 课程号 成绩 数据类型 字符类型 字符类型 数值类型 例子 1211310015 000001 85 备注 外码 外码 (6)上课时间表(coursetime):包含所有课程的上课时间。

表6- 上课时间表结构

域名 COURSEID COURSETIME 含义 课程号 上课时间 数据类型 字符类型 数值类型 例子 000001 21 备注 外码 表示星期2第1节 注:COURSETIME是一个整数,整除10的商表示星期几上课,余数表示当天的第几节

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4