资源描述
数据库系统课程设计
题 目 课程管理数据库设计
院 系 信息技术与工程学院
专 业 计算机科学与技术
姓名/学号
班级名称
指导教师
2015年12月30日
成绩
一、 前言: 2
二、 需求分析: 2
1. 系统管理员 2
2. 学生用户 3
3. 教师用户 3
三、 概念结构设计 3
1. 分E-R图 3
2. 局部E-R图 4
3. 合并E-R图 5
四、 逻辑结构设计 6
1. 关系数据模型 6
2. 细化表结构 6
五、 物理结构设计及实施 8
1. 创建表 8
2. 各表之间的关系如图: 9
3. 物理结构如下 10
六、 总结 11
七、 主要参考文献 12
八、 附录 12
一、 前言:
考虑到课程管理这个时间与我们大学生活是如此贴近,在我们平时课程管理也经常出现一些不足,所以我选择“课程管理系统”这个课题。本课程管理系统仅需满足三类用户的要求,分别是系统管理员、教师和学生,他们所具有的操作权限以及操作内容各有不同。要求系统可以满足以下功能:系统管理员能对学生信息、教师信息、课程信息进行有效的管理和维护,包括增加、删除、修改和查询;教师和学生能够对个人基本信息、授课和选课所涉及的有关信息进行查询和更新操作。由于一般高校的学生比较多,因此就带来的诸多如信息管理等问题。鉴于需要将学生信息、选课信息等信息数字化以便于维护管理,我们便想到了利用数据库更加准确的解决此类问题。所以我们决定设计一个适用于高校课程管理系统
二、 需求分析:
该系统应该能管理学校的教师信息、学生信息、专业信息、学校开设的所有课程信息、学生选修课程的信息等。选课系统主要满足三类用户的要求,这三类用户分别是教务处的系统管理员、教师和学生。他们所具有的操作权限以及操作内容是不同的。具体的需求分析如下:
1. 系统管理员
维护学生的个人基本信息,实现对学生个人信息的增、删、改、查,学生信息包括学号、姓名、性别、年龄、入学时间、系别、专业、密码。
维护教师的个人基本信息,实现对教师个人信息的增、删、改、查,教师信息包括教师工号、姓名、性别、密码。
维护课程的个人基本信息,实现对课程个人信息的增、删、改、查,课程信息包括课程号、课程名、学分。
2. 学生用户
2.1 查询和修改个人信息。
2.2 进行选课操作
2.3 学生可以查看自己所选课程信息及以前所选课程的成绩信息。
3. 教师用户
3.1 查询和修改个人信息
3.2 课程结束后,登记成绩
3.3 教师可查看自己的教学安排。
三、 概念结构设计
根据需求分析,设计出“学生选课系统”的E-R图,该E-R图包括四个实体:学生信息实体、教师信息实体、管理员信息实体、课程信息实体,还有选课信息E-R图和授课信息E-R图。
1. 分E-R图
各个实体的分E-R图分别如下图所示:
Ø 管理员登录实体图
用户登录
用户名
密码
图1
Ø 学生信息实体图
学生信息
姓名
学号
年龄
入学时间
系别
性别
密码
专业
图2
Ø 教师信息实体图
教师信息
姓名
工号
性别
密码
图3
Ø 课程信息实体图
课程信息
课程号
课程名
学分
图4
Ø 选课信息实体图
选课信息
学号
课程号
学生成绩
图5
Ø 授课信息实体图
授课信息
课程号
学时
教师工号
图6
2. 局部E-R图
Ø 学生课程关系E-R图
nm
m
课程
学生
选修
成绩
图7
Ø 教师课程关系E-R图
nm
1
教师
课程
教授
课时
图8
Ø 教师学生关系E-R图
nm
1
教师
学生
教授
学分
图9
Ø 管理员学生关系E-R图
nm
m
管理员
学生
管理
图10
3. 合并E-R图
本系统的数据库实体主要有“学生”、“教师”、“课程”、“管理员”等。其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。同样“学生”与“成绩”也存在一对多的关系。一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。同样“学生”与“成绩”之间也是多对多的关系。整个数据库可以用一个E-R图表示
总的ER图
n
n
1
m
n
n
n
1
1
管理员
课程
学生
选课
管理
管理
管理
教师
开设
教授
1
n
图11
四、 逻辑结构设计
根据上节E-R图可以将系统中的概念模型转换为具体的表(即关系)结构。
1. 关系数据模型
本系统共设计6个关系,详细信息如下所示:
学生(学号、姓名、性别、年龄、入学时间、系别、专业、密码)
教师(教师工号、姓名、性别、密码)
管理员(管理员工号 密码)
课程(课程号、课程名、学分)
选课(学号、课程号、成绩)
授课(教师工号、课程号、课时)
2. 细化表结构
为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:
用户登录信息表adm
表1:Admin
列名
数据类型
是否为空
说明
Username
Char(20)
Notnull(主键)
用户名
Userpassword
Char(20)
notnull
密码
Ø 学生信息表student
表2:student
列名
数据类型
是否为空
说明
Sno
Char(20)
Notnull(主键)
学号
Sname
Char(20)
notnull
姓名
Ssex
Char(20)
null
性别
Sage
Int
null
年龄
Senttime
Datetime
null
入学时间
Smajor
Char(20)
null
专业
Ssdept
Char(20)
null
系别
Spass
Char(20)
null
密码
Ø 课程信息表course
表3:course
列名
数据类型
是否为空
说明
Cno
Char(20)
Notnull(主键)
课程号
Cname
Char(20)
notnull
课程名
Ccredt
float
null
学分
Ø 选课信息表sc
表4:sc
列名
数据类型
是否空
说明
Sno
Char(20)
Notnull(外主键)
学号
Cno
Char(20)
Notnull(外主键)
课程号
Grade
int
null
成绩
Ø 教师表teacher
表5:teacher
列名
数据类型
是否空
说明
Tno
Char(20)
Notnull(主键)
教师工号
Tname
Char(20)
notnull
教师姓名
Tsex
Char(20)
null
教师性别
Tpass
Char(20)
Notnull
密码
Ø 授课表tc
表6:tc
列名
数据类型
是否空
说明
Tno
Char(20)
Notnull(外主键)
学号
Cno
Char(20)
Notnull(外主键)
课程号
Ctime
Char(20)
null
课时
五、 物理结构设计及实施
1. 创建表
考虑到各个表之间的约束条件以及外键索引等要求,在创建表的时候应该按照一定的次序进行创建,否则会很容易出现错误。本报告册中采用的是先创建各个基本表,然后在对特定的表添加列和外码约束。
本系统共创建了六个表:管理员信息表、教师信息表、学生信息表、课程信息表、学生选课表、教师授课表。
Ø 创建adm管理员表如下图:
图12
Ø 创建教师表teacher如图:
图13
Ø 创建学生表student如图:
图14
Ø 创建课程表course如图:
图15
Ø 创建选课表sc如图:
图16
Ø 创建授课表tc如图:
图17
2. 各表之间的关系如图:
图18
3. 物理结构如下
create dababase course
go
use course
go
create table adm
(
Username char(20) primary key not null,
Yesrpassword char(20) not null
)
go
create table student
(
Sno char (20) primary key not null,
Sname char (20) not null ,
Ssex char (2) null ,
Sage int null,
Senttime Datetime null,
Smajor char(20) null,
Sdept char (20) null,
Spass char(20) null
)
go
create table course
(
Cno char (20) primary key not null ,
Cname char (20) not null ,
Ccredit float null,
)
go
create table sc
(
Sno char(20) not null,
Cno char(20) not null,
Grade int null,
primary key (Sno,cCno) ,
foreign key (Sno) references student (Sno),
foreign key (Cno) references course (Cno)
)
go
create table teacher
(
Tno char(20) primary key not null,
Tname char(20) not null,
Tsex char(20) null,
Tpass char(20) not null
)
go
create table tc
(
Tno char(20) not null,
Cno char(20) not null,
Ctime char(20) null
primary key (Tno,Cno),
foreign key (Tno) referenced teacher(Tno),
foreign key (Cno) referenced course(Cno)
)
六、 总结
本学期我们开设了数据库原理与应用这门课,经过学习,我对数据库的原理和使用有了一定的了解,但是对于数据库的实际应用并不是那么清晰的明白,但是有了这一个多星期数据库的课程设计,我对数据库有了新的认识。“课程管理系统”这个课题确实给我带来了很大的挑战,开始以为只是建立几个表,后来才知道数据库的设计是一个系统,还存在着表与表之间的联系,因此我必须要有一个宏观上的认识。
在本次课程设计中,我学到了很多新的知识,比如如何使用SQL Server2005创建完整的数据库,如何将页面合理的与数据库进行连接等等。在课程设计的过程当中也会遇到很多自己不能解决的问题,通过自己查阅资料,向同学老师寻求帮助,最终这些问题都解决了,我的“课程管理系统”也更加的完整合理。同时也提高了我的自学能力,在设计过程中,查阅了不少资料,包括网络资料和书籍等,让我收获了许多意想不到的东西,对以后数据库的学习与应用有了很大程度上的提高!
七、 主要参考文献
《数据库系统概论》(第四版 高等教育出版社)
《数据结构》(C语言版 清华大学出版社)
《计算机操作系统》(第三版 西安电子科技大学出版社)
八、 附录
测试数据:
insert into adm values('zhangsan','123')
insert into adm values('lisi','123')
insert into adm values('wangwu','123')
insert into adm values('zhaoliu','123')
insert into adm values('cuishengliang','123')
insert into adm values('kaishi','123')
insert into adm values('shengdai','123')
insert into adm values('jiujing','123')
insert into student values('201315105','胡颖笔','男',20,'20130910','计算机','计算机','123')
insert into student values('201315106','梁树得','男',20,'20130910','计算机',’计算机’,'123')
insert into student values('201315107','罗开是','男',16,'20130910','生物',’生物科学’,'123')
insert into student values('201315108','崔贾易','男',18,'20130910','数学',’数学’,'123')
insert into student values('201315109','黎拓树','男',20,'20130910','英语',’应用英语’,'123')
insert into student values('201315110','贺声代','男',17,'20130910','计算机','123')
insert into student values('201315111','方久景','女',20,'20130910','英语','123')
insert into student values('201315112','魏沉因','男',18,'20130910','数学','123')
insert into student values('201315113','龚愈枫','男',20,'20130910','计算机','123')
insert into student values('201315114','贾到黎','女',17,'20130910','英语','123')
insert into student values('201315115','邹桥梁','女',20,'20130910','计算机','123')
insert into student values('201315116','钱宿钟','男',19,'20130910','数学','123')
insert into student values('201315117','万首情','男',16,'20130910','计算机','123')
insert into student values('201315118','胡睛音','女',16,'20130910','数学','123')
insert into student values('201315119','段的写','女',20,'20130910','计算机','123')
insert into teacher values('13113','龚愈枫','男',40)
insert into teacher values('13114','贾到黎','女',27)
insert into teacher values('13115','邹桥梁','女',29)
insert into teacher values('13116','钱宿钟','男',49)
insert into teacher values('13117','todd','男',36)
insert into teacher values('13118','胡睛音','女',36)
insert into teacher values('13119','marry','女',30)
insert into course values('001','英语',4)
insert into course values('002','数学',2)
insert into course values('003','数据库',4)
insert into course values('004','计算机组成原理',3)
insert into course values('005','操作系统','6')
insert into course values('006','c++程序设计','4')
insert into course values('007','计算机网络','2')
insert into sc values('201315105','001','80')
insert into sc values('201315106','002','69')
insert into sc values('201315107','004','90')
insert into sc values('201315108','003','79')
insert into sc values('201315109','007','90')
insert into sc values('201315110','005','98')
insert into sc values('201315111','004','65')
insert into sc values('201315112','003','79')
insert into sc values('201315113','007','90')
insert into sc values('201315114','005','98')
insert into sc values('201315115','004','65')
insert into tc values('13113','001','36')
insert into tc values('13114','002','40')
insert into tc values('13115','004','36')
insert into tc values('13116','003','52')
insert into tc values('13117','007','36')
insert into tc values('13118','005','18')
insert into tc values('13118','004','36')
insert into tc values('13113','003','52')
insert into tc values('13114','007','18')
insert into tc values('13115','005','26')
insert into tc values('13117','004','40')
13
展开阅读全文