武汉理工大学《数据库系统原理》课程设计说明书
课 程 设 计
课程名称 数据库系统原理
学 院 计算机科学与技术
专 业 计算机科学与技术
班 级 计算机1007
姓 名
指导教师
2013 年 01 月 23 日
课程设计任务书
学生姓名:
指导教师:
初始条件:
大学同时开设多门课程。每门课程有一个主讲教师,有多名学生选修;一个
学生可选修多门课程并获得相应的学分和成绩;上课的基本单位是“次”(一次
2学时),每一次课都规定了上课时间和教室(这一规定更灵活,并不象本校现
在的情形!)。 专业班级: 工作单位: 题目:教学管理信息系统——学生选课及课程安排数据库设计
要求完成的主要任务:
1. 根据上述的初始条件,进行调查分析并设计适当的属性。设计一个学生选课
及课程安排数据库,记录教师和学生的基本信息,选课,课程安排等信息,
DBMS 可选Ms SQL Server、Oracle 、MySQL 等。
2. 完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需求
分析,概念设计,逻辑设计,物理实现等。
3. 基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计
语言(工具)任选。这一项是选作,不作硬性要求。
时间安排:
本学期第21周:
1. 消化资料、系统调查
2. 系统分析
3. 总体设计,实施计划
4. 撰写报告 1天 1天 2天 1天
指导教师签名: 2013年 月 日
系主任(或责任教师)签名: 2013年 月 日
目录
1. 需求分析········································4
1.1初始条件·······································4
1.2要求完成的任务·································4
1.3可行性分析·····································4
1.4设计环境·······································4
1.5实现需求·······································4
2. 概念设计·········································5
2.1数据库基本表设计································5
2.2 E_R图··········································5
3. 逻辑设计··········································6
3.1关系模式·········································6
3.2子模式···········································6
4. 物理设计···········································6
5. 数据库设计源代码···································7
5.1基本表SQL 源语言·································7
5.2基本表数据库实现··································10
6. 设计心得············································13
7. 参考资料············································13
教学管理信息系统——学生选课及
课程安排数据库设计
1需求分析
1.1 初始条件
大学同时开设多门课程。每门课程有一个主讲教师,有多名学生选修;一个
学生可选修多门课程并获得相应的学分和成绩;上课的基本单位是“次”(一次
2学时),每一次课都规定了上课时间和教室(这一规定更灵活,并不象本校现
在的情形!)。
1.2要求完成的任务
(1)根据上述的初始条件,进行调查分析并设计适当的属性。设计一个学生选
课及课程安排数据库,记录教师和学生的基本信息,选课,课程安排等信息,
DBMS 可选Ms SQL Server、Oracle 、MySQL 等。
(2)完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需
求分析,概念设计,逻辑设计,物理实现等。
(3)基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计
语言(工具)任选。这一项是选作,不作硬性要求。
1.3可行性分析
此课程设计的目的在于实现学生选课及课程安排数据库的设计,根据初始
条件,设计一个学生选课及课程安排数据库,记录教师和学生的基本信息,选课,
课程安排等信息。
在要求完成的任务中,要求可以编写应用程序对所建立的数据库进行访问,
该数据库功能简单可以编写简单的应用程序来实现对数据库的基础的查询. 插入.
删除等操作。
1.4设计环境
在本次的课设中用MS SQL Server 2005来进行数据库的设计,DBMS 可
选Ms SQL Server、Access 、VFP 等,再配以一台个人电脑,即可完成本次课程
设计。
1.5实现需求
根据上述的初始条件和对本学校的调研考察,设计一个学生选课及课程安排
数据库:记录教师和学生的基本信息,选课,课程安排等信息,方便老师, 同学
等用户对数据库的查询,修改等操作。尽量使数据库高效,存储简单。
可设计简单应用程序,实现数据库的访问应用:学生可以查询课程信息及课
程安排信息;教师可以查询选修本门课程的学生信息,并给学生相应的成绩,
可以查询课程信息及课程安排信息;教师可以修改选修本门课程的学生信息,
插入,修改,删除等。
2概念设计
2.1数据库基本表设计
(1)“学生”表来记录学生的基本信息:学号、姓名、性别、班级、所在系;
(2)“教师”表来记录教师的进本信息:教师编号、教师姓名、工作单位;
(3)“课程”表来记录课程的基本信息:课程号、课程名、主讲教师、学分、学时;
(4)“学生选课”表记录学生选课的基本信息:学生号、课程号、成绩;
(5)“课程安排”表记录课程安排的基本信息:课程号、上课地点、上课时间。
2.2 E—R 图
3逻辑设计
3.1关系模式
将设计好的E-R 图转换为SQL Server 2005支持的关系模型,关系主码用下划线标注:
实体定义如下:
学生:{学号,姓名,性别,班级,所在系}
教师:{教师编号,教师姓名,工作单位}
课程:{课程编号,课程名称,主讲教师,学分,学时}
关系定义如下:
课程安排:{课程编号,上课地点,上课时间}
选修:{学号,课程,成绩}
3.2子模式
视图定义如下
C_SS:{课程编号,课程名称,主讲教师编号,主讲教师姓名,学号,学生姓名,班级,专业}
S_CS:{学号,学生姓名,学生专业,学生班级,课程编号,课程名称,主讲教师}
T_C: {上课时间,上课地点,课程编号,课程名称,主讲教师编号,主讲教
师姓名,学生专业,学生班级}
C_C:{教室,上课时间,课程编号,课程名称,主讲教师编号,主讲教师姓名,学生班级,学生专业}
4物理设计
本次数据库物理设计采用的存取方法是索引方法。根据建立的索引(下划波浪线)如下:
学生:{学号,姓名,性别,班级,所在系}
教师:{教师编号,教师姓名,工作单位}
课程:{课程编号,课程名称,主讲教师,学分,学时}
课程安排:{课程编号,上课地点,上课时间}
选修:{学号,课程,成绩}
5数据库设计源代码
5.1基本表SQL 源语言
1) 学生表:
CREATE TABLE student(
Sno char(13) NOT NULL,
Sname char(20) NOT NULL,
Ssex char(2),
Sclass char(10),
Sdept char(20)
PRIMARY KEY (Sno)
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO student VALUES ('[1**********]01', '刘德华', '男',' 计算机1007',' 计算
机学院');
INSERT INTO student VALUES ('[1**********]02', '张学友', '男',' 计算机1007',' 计算机学院');
INSERT INTO student VALUES ('[1**********]03', '郭富城', '男',' 计算机1007',' 计算机学院');
INSERT INTO student VALUES ('[1**********]04','王菲',' 女',' 计算机1007',' 计算机学院');
2) 教师表:
CREATE TABLE teacher(
Tno char(5) NOT NULL,
Tname char(20) NOT NULL,
Tdept char(20)
PRIMARY KEY (Tno)
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO teacher V ALUES ('001', ' 张三',' 计算机学院');
INSERT INTO teacher V ALUES ('002', ' 李四',' 计算机学院');
INSERT INTO teacher V ALUES ('003 ', ' 王五',' 计算机学院');
INSERT INTO teacher V ALUES ('004', ' 赵六',' 计算机学院');
3)课程表:
CREATE TABLE course (
Cno char(10) NOT NULL,
Cname char(20) NOT NULL ,
Tno char(5),
Ccredit char(3) ,
Chour char(3) ,
PRIMARY KEY (Cno)
);
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO course VALUES ('101', '数据库系统','001', '2', '48'); INSERT INTO course VALUES ('102', '计算机网络', '002','2','32'); INSERT INTO course VALUES ('103', '软件工程', '003','2', '48');
INSERT INTO course VALUES ('104', '数据结构','004','2', '64');
4)学生选课表:
CREATE TABLE student_course (
Sno char(13) NOT NULL,
Cno char(10) NOT NULL,
Grade char(3) ,
PRIMARY KEY (Sno,Cno),
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO student_course VALUES ('[1**********]01', '101', '90'); INSERT INTO student_course VALUES ([1**********]01', '102', '92'); INSERT INTO student_course VALUES ('[1**********]02', '102', '78'); INSERT INTO student_course VALUES ('[1**********]02', '103', '89'); INSERT INTO student_course VALUES ('[1**********]03', '103', '94'); INSERT INTO student_course VALUES ('[1**********]03', '104', '85'); INSERT INTO student_course VALUES ('[1**********]04', '101', '88');
INSERT INTO student_course VALUES ('[1**********]04', '104', '94');
5) 课程安排表:
CREATE TABLE course_plan (
Cno char(10) NOT NULL,
Time char(20) NOT NULL,
Place char(20) NOT NULL,
);
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO course_plan VALUES ('101', ' 周二七八节', '航海楼101'); INSERT INTO course_plan VALUES ('101', ' 周四一二节', '航海楼103'); INSERT INTO course_plan VALUES ('102', ' 周三五六节', '航海楼107'); INSERT INTO course_plan VALUES ('102', ' 周二一二节', '航海楼109'); INSERT INTO course_plan VALUES ('103', ' 周五五六节', '航海楼111'); INSERT INTO course_plan VALUES ('103', ' 周三三四节', '航海楼201'); INSERT INTO course_plan VALUES ('104', ' 周二五六节', '航海楼203'); INSERT INTO course_plan VALUES ('104', ' 周四一二节', '航海楼205');
5.2基本表数据库实现
学生基本表
教师表
课程表
学生选课表
课程安排表
基本表操作用例 select sname,cname,grade
from student,student_course,course
where student.sno=student_course.sno and course.cno=student_course.cno;
6设计心得
做这次的课程设计是在很久以前就布置的任务,针对这次的课程设计,自己查阅相关教材资料以及向同学咨询终于完成了此次课程设计的基本目标和任务。
在学生选课和课程安排的数据库设计中,按照要求自己建立了学生,教师,课程,学生选课,课程安排这五个基本表来实现该数据库的基本功能,并能通过简单的查询删除更新等操作来实现对该数据库的基本操作。在这次的课程设计中,可编写简单的应用程序来实现对数据库的操作基本完成了课设的要求,但自己在以后的学习中还需更加完善自己的编程意识,培养自己更好的实际操作能力。
7参考资料
数据库简明系统教程 王珊 高等教育出版社
本科生课程设计成绩评定表
班级: 姓名: 学号:
及格(60-69分)、60分以下为不及格
指导教师签名:
2013年 月 日
武汉理工大学《数据库系统原理》课程设计说明书
课 程 设 计
课程名称 数据库系统原理
学 院 计算机科学与技术
专 业 计算机科学与技术
班 级 计算机1007
姓 名
指导教师
2013 年 01 月 23 日
课程设计任务书
学生姓名:
指导教师:
初始条件:
大学同时开设多门课程。每门课程有一个主讲教师,有多名学生选修;一个
学生可选修多门课程并获得相应的学分和成绩;上课的基本单位是“次”(一次
2学时),每一次课都规定了上课时间和教室(这一规定更灵活,并不象本校现
在的情形!)。 专业班级: 工作单位: 题目:教学管理信息系统——学生选课及课程安排数据库设计
要求完成的主要任务:
1. 根据上述的初始条件,进行调查分析并设计适当的属性。设计一个学生选课
及课程安排数据库,记录教师和学生的基本信息,选课,课程安排等信息,
DBMS 可选Ms SQL Server、Oracle 、MySQL 等。
2. 完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需求
分析,概念设计,逻辑设计,物理实现等。
3. 基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计
语言(工具)任选。这一项是选作,不作硬性要求。
时间安排:
本学期第21周:
1. 消化资料、系统调查
2. 系统分析
3. 总体设计,实施计划
4. 撰写报告 1天 1天 2天 1天
指导教师签名: 2013年 月 日
系主任(或责任教师)签名: 2013年 月 日
目录
1. 需求分析········································4
1.1初始条件·······································4
1.2要求完成的任务·································4
1.3可行性分析·····································4
1.4设计环境·······································4
1.5实现需求·······································4
2. 概念设计·········································5
2.1数据库基本表设计································5
2.2 E_R图··········································5
3. 逻辑设计··········································6
3.1关系模式·········································6
3.2子模式···········································6
4. 物理设计···········································6
5. 数据库设计源代码···································7
5.1基本表SQL 源语言·································7
5.2基本表数据库实现··································10
6. 设计心得············································13
7. 参考资料············································13
教学管理信息系统——学生选课及
课程安排数据库设计
1需求分析
1.1 初始条件
大学同时开设多门课程。每门课程有一个主讲教师,有多名学生选修;一个
学生可选修多门课程并获得相应的学分和成绩;上课的基本单位是“次”(一次
2学时),每一次课都规定了上课时间和教室(这一规定更灵活,并不象本校现
在的情形!)。
1.2要求完成的任务
(1)根据上述的初始条件,进行调查分析并设计适当的属性。设计一个学生选
课及课程安排数据库,记录教师和学生的基本信息,选课,课程安排等信息,
DBMS 可选Ms SQL Server、Oracle 、MySQL 等。
(2)完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需
求分析,概念设计,逻辑设计,物理实现等。
(3)基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计
语言(工具)任选。这一项是选作,不作硬性要求。
1.3可行性分析
此课程设计的目的在于实现学生选课及课程安排数据库的设计,根据初始
条件,设计一个学生选课及课程安排数据库,记录教师和学生的基本信息,选课,
课程安排等信息。
在要求完成的任务中,要求可以编写应用程序对所建立的数据库进行访问,
该数据库功能简单可以编写简单的应用程序来实现对数据库的基础的查询. 插入.
删除等操作。
1.4设计环境
在本次的课设中用MS SQL Server 2005来进行数据库的设计,DBMS 可
选Ms SQL Server、Access 、VFP 等,再配以一台个人电脑,即可完成本次课程
设计。
1.5实现需求
根据上述的初始条件和对本学校的调研考察,设计一个学生选课及课程安排
数据库:记录教师和学生的基本信息,选课,课程安排等信息,方便老师, 同学
等用户对数据库的查询,修改等操作。尽量使数据库高效,存储简单。
可设计简单应用程序,实现数据库的访问应用:学生可以查询课程信息及课
程安排信息;教师可以查询选修本门课程的学生信息,并给学生相应的成绩,
可以查询课程信息及课程安排信息;教师可以修改选修本门课程的学生信息,
插入,修改,删除等。
2概念设计
2.1数据库基本表设计
(1)“学生”表来记录学生的基本信息:学号、姓名、性别、班级、所在系;
(2)“教师”表来记录教师的进本信息:教师编号、教师姓名、工作单位;
(3)“课程”表来记录课程的基本信息:课程号、课程名、主讲教师、学分、学时;
(4)“学生选课”表记录学生选课的基本信息:学生号、课程号、成绩;
(5)“课程安排”表记录课程安排的基本信息:课程号、上课地点、上课时间。
2.2 E—R 图
3逻辑设计
3.1关系模式
将设计好的E-R 图转换为SQL Server 2005支持的关系模型,关系主码用下划线标注:
实体定义如下:
学生:{学号,姓名,性别,班级,所在系}
教师:{教师编号,教师姓名,工作单位}
课程:{课程编号,课程名称,主讲教师,学分,学时}
关系定义如下:
课程安排:{课程编号,上课地点,上课时间}
选修:{学号,课程,成绩}
3.2子模式
视图定义如下
C_SS:{课程编号,课程名称,主讲教师编号,主讲教师姓名,学号,学生姓名,班级,专业}
S_CS:{学号,学生姓名,学生专业,学生班级,课程编号,课程名称,主讲教师}
T_C: {上课时间,上课地点,课程编号,课程名称,主讲教师编号,主讲教
师姓名,学生专业,学生班级}
C_C:{教室,上课时间,课程编号,课程名称,主讲教师编号,主讲教师姓名,学生班级,学生专业}
4物理设计
本次数据库物理设计采用的存取方法是索引方法。根据建立的索引(下划波浪线)如下:
学生:{学号,姓名,性别,班级,所在系}
教师:{教师编号,教师姓名,工作单位}
课程:{课程编号,课程名称,主讲教师,学分,学时}
课程安排:{课程编号,上课地点,上课时间}
选修:{学号,课程,成绩}
5数据库设计源代码
5.1基本表SQL 源语言
1) 学生表:
CREATE TABLE student(
Sno char(13) NOT NULL,
Sname char(20) NOT NULL,
Ssex char(2),
Sclass char(10),
Sdept char(20)
PRIMARY KEY (Sno)
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO student VALUES ('[1**********]01', '刘德华', '男',' 计算机1007',' 计算
机学院');
INSERT INTO student VALUES ('[1**********]02', '张学友', '男',' 计算机1007',' 计算机学院');
INSERT INTO student VALUES ('[1**********]03', '郭富城', '男',' 计算机1007',' 计算机学院');
INSERT INTO student VALUES ('[1**********]04','王菲',' 女',' 计算机1007',' 计算机学院');
2) 教师表:
CREATE TABLE teacher(
Tno char(5) NOT NULL,
Tname char(20) NOT NULL,
Tdept char(20)
PRIMARY KEY (Tno)
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO teacher V ALUES ('001', ' 张三',' 计算机学院');
INSERT INTO teacher V ALUES ('002', ' 李四',' 计算机学院');
INSERT INTO teacher V ALUES ('003 ', ' 王五',' 计算机学院');
INSERT INTO teacher V ALUES ('004', ' 赵六',' 计算机学院');
3)课程表:
CREATE TABLE course (
Cno char(10) NOT NULL,
Cname char(20) NOT NULL ,
Tno char(5),
Ccredit char(3) ,
Chour char(3) ,
PRIMARY KEY (Cno)
);
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO course VALUES ('101', '数据库系统','001', '2', '48'); INSERT INTO course VALUES ('102', '计算机网络', '002','2','32'); INSERT INTO course VALUES ('103', '软件工程', '003','2', '48');
INSERT INTO course VALUES ('104', '数据结构','004','2', '64');
4)学生选课表:
CREATE TABLE student_course (
Sno char(13) NOT NULL,
Cno char(10) NOT NULL,
Grade char(3) ,
PRIMARY KEY (Sno,Cno),
) ;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO student_course VALUES ('[1**********]01', '101', '90'); INSERT INTO student_course VALUES ([1**********]01', '102', '92'); INSERT INTO student_course VALUES ('[1**********]02', '102', '78'); INSERT INTO student_course VALUES ('[1**********]02', '103', '89'); INSERT INTO student_course VALUES ('[1**********]03', '103', '94'); INSERT INTO student_course VALUES ('[1**********]03', '104', '85'); INSERT INTO student_course VALUES ('[1**********]04', '101', '88');
INSERT INTO student_course VALUES ('[1**********]04', '104', '94');
5) 课程安排表:
CREATE TABLE course_plan (
Cno char(10) NOT NULL,
Time char(20) NOT NULL,
Place char(20) NOT NULL,
);
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO course_plan VALUES ('101', ' 周二七八节', '航海楼101'); INSERT INTO course_plan VALUES ('101', ' 周四一二节', '航海楼103'); INSERT INTO course_plan VALUES ('102', ' 周三五六节', '航海楼107'); INSERT INTO course_plan VALUES ('102', ' 周二一二节', '航海楼109'); INSERT INTO course_plan VALUES ('103', ' 周五五六节', '航海楼111'); INSERT INTO course_plan VALUES ('103', ' 周三三四节', '航海楼201'); INSERT INTO course_plan VALUES ('104', ' 周二五六节', '航海楼203'); INSERT INTO course_plan VALUES ('104', ' 周四一二节', '航海楼205');
5.2基本表数据库实现
学生基本表
教师表
课程表
学生选课表
课程安排表
基本表操作用例 select sname,cname,grade
from student,student_course,course
where student.sno=student_course.sno and course.cno=student_course.cno;
6设计心得
做这次的课程设计是在很久以前就布置的任务,针对这次的课程设计,自己查阅相关教材资料以及向同学咨询终于完成了此次课程设计的基本目标和任务。
在学生选课和课程安排的数据库设计中,按照要求自己建立了学生,教师,课程,学生选课,课程安排这五个基本表来实现该数据库的基本功能,并能通过简单的查询删除更新等操作来实现对该数据库的基本操作。在这次的课程设计中,可编写简单的应用程序来实现对数据库的操作基本完成了课设的要求,但自己在以后的学习中还需更加完善自己的编程意识,培养自己更好的实际操作能力。
7参考资料
数据库简明系统教程 王珊 高等教育出版社
本科生课程设计成绩评定表
班级: 姓名: 学号:
及格(60-69分)、60分以下为不及格
指导教师签名:
2013年 月 日