内容发布更新时间 : 2024/11/16 19:24:09星期一 下面是文章的全部内容请认真阅读。
二、概念结构设计
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的商表示星期几上课,余数表示当天的第几节