数据库管理系统课程设计报告.docx
《数据库管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库管理系统课程设计报告.docx(45页珍藏版)》请在冰豆网上搜索。
数据库管理系统课程设计报告
万方科技学院《数据库管理系统》
课程设计报告
题目:
课程管理系统数据库设计
院(系):
电气自动化
专业班级:
计算机15升
学生姓名:
学号:
1516353004
指导教师:
赵宗渠
数据库管理系统课程设计任务书
一、设计(调查报告/论文)题目
学生选课管理系统的后台数据库设计
二、设计(调查报告/论文)主要内容
内容:
学生选课管理系统能够为在校师生提供自主选课的自动化查询、管理平台。
支持对各类课程信息的查询、修改、删除及录入,对各类统计信息的查询(支持模糊查询),对不同的登录用户操作权限进行区别管理,实现不同登录用户使用其对应的功能。
基本功能与要求:
1.在选课管理过程中,实现信息自动化管理;
2.实现各种信息的修改、删除、录入等管理功能;
3.实现对各种信息的查询、统计,支持模糊查询;
4.管理员可以设置学生什么时间开始选课,什么时间结束选课;学生根据开设课程进行选课操作,可以选课、退课、查询课程和课表;根据身份不同,权限也不同;
5.对学生选课的结果,实现汇总、归纳和分析;按年份统计课程的学生选课人生及名单,按年份统计学生的选课内容。
分工任务:
个人完成
三、原始资料
1.《数据库管理系统课程设计》指导书
2.数据库系统设计课件
四、要求的设计(调查/论文)成果
1.课程设计报告
2.课程设计作品
五、进程安排
序号
课程设计内容
学时分配
备注
1
选题、需求分析
1天
2
数据库设计
2天
3
数据库表及相关约束、视图实现
2天
4
数据库的存储过程、触发器实现
2天
5
数据库后台功能测试
2天
6
验收答辩、撰写课程设计报告
1天
合计
10天
六、主要参考资料
赵文涛.数据库技术与应用(SQLServer).中国矿业大学出版社,2012.
评分:
指导教师(签名):
20年月日
1需求分析………………………………………………………………………………………1
1.1系统功能要求与分析………………………………………………………………………1
1.2数据流图……………………………………………………………………………………2
1.3数据字典……………………………………………………………………………………3
2概念结构设计…………………………………………………………………………………7
2.1E-R图………………………………………………………………………………………7
2.2分E-R图……………………………………………………………………………………7
2.3总E-R图…………………………………………………………………………………8
3逻辑结构设计………………………………………………………………………………10
3.1E-R图转化为关系模式……………………………………………………………………10
4物理结构设计………………………………………………………………………………11
4.1数据库文件构成…………………………………………………………………………11
4.2数据表构成………………………………………………………………………………11
4.3索引构成…………………………………………………………………………………14
4.4视图构成…………………………………………………………………………………15
4.5存储过程构成……………………………………………………………………………15
4.6触发器构成………………………………………………………………………………15
5数据库物理实现……………………………………………………………………………17
5.1数据库的建立……………………………………………………………………………17
5.2数据表的建立……………………………………………………………………………17
5.3索引的建立………………………………………………………………………………21
5.4视图的建立………………………………………………………………………………21
5.5存储过程的建立…………………………………………………………………………23
5.6触发器的建立……………………………………………………………………………30
6系统后台功能测试…………………………………………………………………………32
6.1视图功能实现测试………………………………………………………………………32
6.2存储过程实现测试………………………………………………………………………33
6.3触发器功能实现测试……………………………………………………………………36
总结………………………………………………………………………………………………38
1需求分析
1.1系统功能要求与分析
1.1.1总体功能
学生选课管理系统能够为在校师生提供自主选课的自动化查询、管理平台。
支持对各类课程信息的查询、修改、删除及录入,对各类统计信息的查询(支持模糊查询),对不同的登录用户操作权限进行区别管理,实现不同登录用户使用其对应的功能。
图1-1系统功能结构图
1.1.2管理员功能
可以设置当前学期学生选课开始、结束的时间,课程相关信息的录入,实时汇总、归纳和分析学生选课情况,按年份统计课程的学生选课人数及名单,按年份统计学生的选课内容。
1.1.3教师功能
可以设置、修改本人信息,修改本人教授课程信息,查看本人教授课程学生选课情况,修改选修本人教授课程学生的课程成绩。
1.1.4学生功能
可以设置、修改本人信息,根据开设课程在规定时间内进行选课操作,可以对已经选定的课程进行退课、查询课程及课表,学期末查询课程成绩并进行统计。
1.2数据流图
图1-2第0层数据流图
图1-3第1层数据流图
图1-4第2层数据流图
1.3数据字典
根据课程设计任务书的要求,经过需求分析,共需要用到五个表,分别为:
学生表、教师表、管理员表、课程信息表、选课信息表。
详细内容如下表所示:
名称:
学生表
说明:
包含所有学生的基本信息及登陆密码
数据流来源:
登陆验证
数据流去向:
P2.1
数据结构:
学号,学生姓名,所在院系,专业,班级,性别,密码
名称:
教师表
说明:
包含所有教师的基本信息及登录密码
数据流来源:
登陆验证
数据流去向:
P2.1
数据结构:
教师编号,教师姓名,性别,所在院系,职称,密码
名称:
管理员表
说明:
包含所有管理员的基本信息及登录密码
数据流来源:
登陆验证
数据流去向:
P2.1
数据结构:
管理员编号,管理员姓名,密码
名称:
课程信息表
说明:
包含所有课程的基本信息,选课起止时间,可选及已选人数
数据流来源:
学生,教师,管理员
数据流去向:
学生,教师
数据结构:
课程编码,课程名称,教师身份证号,已选人数,可选人数,上课时间,上课地点,学分,选课开始,选课结束
名称:
选课信息表
说明:
包含所有学生选择的课程及对应课程的分数
数据流来源:
学生,教师
数据流去向:
学生,教师
数据结构:
学号,课程编号,学分
表1-1数据表数据字典
名称:
学号
说明:
学生编号,确保唯一性
数据值类型:
连续
类型:
数字
长度:
11
有关数据结构:
学生姓名,密码,课程编号,获得学分
名称:
学生姓名
说明:
学生的名字
数据值类型:
连续
类型:
字符
长度:
10
有关数据结构:
学号
名称:
所在院系
说明:
学生、教师所在的院系
数据值类型:
连续
类型:
字符
长度:
20
有关数据结构:
学号,教师编号
名称:
专业
说明:
学生所在专业
数据值类型:
连续
类型:
字符
长度:
20
有关数据结构:
学号
名称:
班级
说明:
学生所在班级
数据值类型:
连续
类型:
数字
长度:
4
有关数据结构:
学号
名称:
性别
说明:
学生、教师的性别
数据值类型:
连续
类型字符:
长度:
2
有关数据结构:
学号,教师编号
名称:
密码
说明:
用户登录密码
数据值类型:
连续
类型:
字符
长度:
16
有关数据结构:
学号,身份证号
名称:
教师编号
说明:
教师的编号,确保唯一性
数据值类型:
连续
类型:
数字
长度:
10
有关数据结构:
教师姓名,密码,课程编号
名称:
职称
说明:
教师的职称
数据值类型:
连续
类型:
字符
长度:
10
有关数据结构:
教师编号
名称:
管理员编号
说明:
管理员的编号,确保唯一性
数据值类型:
连续
类型:
数字
长度:
10
有关数据结构:
管理员姓名,密码
名称:
课程编号
说明:
课程的编号,确保唯一性
数据值类型:
连续
类型:
数字
长度:
5
有关数据结构:
课程名称,教师编号,学分
名称:
课程名称
说明:
课程的全称
数据值类型:
连续
类型:
字符
长度:
20
有关数据结构:
课程编号
名称:
已选人数
说明:
已经选择该课程的人数
数据值类型:
连续
类型:
数字
长度:
4
有关数据结构:
课程编号
名称:
可选人数
说明:
该课程最大可选人数
数据值类型:
连续
类型:
数字
长度:
4
有关数据结构:
课程编号
名称:
上课时间
说明:
该课程上课具体时间
数据值类型:
连续
类型:
字符
长度:
6
有关数据结构:
课程编号
名称:
上课地点
说明:
该课程上课具体地点
数据值类型:
连续
类型:
字符
长度:
10
有关数据结构:
课程编号
名称:
学分
说明:
该课程的学分
数据值类型:
连续
类型:
字符
长度:
2
有关数据结构:
课程编号
名称:
选课开始
说明:
该课程选课开始时间
数据值类型:
连续
类型:
时间
长度:
20
有关数据结构:
课程编号
名称:
选课结束
说明:
该课程选课结束时间
数据值类型:
连续
类型:
时间
长度:
20
有关数据结构:
课程编号
表1-2数据项数据字典
2概念结构设计
2.1E-R图
本系统的数据库实体主要有“学生”、“管理员”、“教师”、“课程”等。
其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。
一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。
各个数据库实体可以用多个E-R图表示,整个数据库可以用一个E-R图表示。
2.2分E-R图
2.2.1管理员E-R图
图1-5管理员E-R图
2.2.2教师E-R图
图1-6教师E-R图
2.2.3学生E-R图
图1-7学生E-R图
2.2.4课程E-R图
图1-8课程E-R图
2.3总E-R图
图1-9数据库E-R图
3逻辑结构设计
3.1E-R图转化为关系模式
管理员E-R图中,实体为管理员,其中管理员编号因为确保唯一性,因此管理员编号为管理员的码。
管理员的关系模式为:
管理员(管理员编号,管理员姓名,密码)
Admin(admin_id,admin_name,pw)
教师E-R图中,实体为教师,其中教师编号因为确保唯一性,因此教师编号为教师的码。
教师的关系模式为:
教师(教师编号,教师姓名,所在院系,职称,性别,密码)
Teacher(teach_id,teach_name,dept,title,sex,pw)
学生E-R图中,实体为学生,其中学生编号因为确保唯一性,因此学生编号为学生的码。
学生的关系模式为:
学生(学生编号,学生姓名,所在院系,专业,班级,性别,密码)
Student(stu_id,stu_name,dept,major,class,sex,pw)
课程E-R图中,课程为实体,其中课程编号因为确保唯一性,因此课程编号为课程的码。
课程的关系模式为:
课程(课程编号,课程名称,教师编号,上课时间,上课地点,可选人数,已选人数,学分,选课开始时间,选课结束时间)
Course(cour_id,cour_name,teach_id,ctime,cplace,totalnum,selectnum,credit,start,end)
除此之外,学生,教师及课程间还有选课的关系,该关系中学生编号与课程编号共同做为选课的码。
选课的关系模式为:
选课(学生编号,课程编号,成绩)
SC(stu_id,cour_id,grade)
4物理结构设计
4.1数据库文件构成
本数据库主要有2个文件构成,分别为主要数据文件和事务日志文件。
其中:
主要数据文件:
逻辑名称:
stu_cour
物理名称:
stu_cour.mdf
初始大小:
3MB
增长方式:
10%
数据文件最大限制:
500MB
事务日志文件:
逻辑名称:
stu_cour_log
物理名称:
stu_cour_log.ldf
初始大小:
3MB
增长方式:
1MB
日志文件最大限制:
无限制
4.2数据表构成
4.2.1表汇总
表名
功能说明
Admin_info(管理员信息表)
存储管理员的基本信息
Stu_info(学生信息表)
存储学生的基本信息
Teach_info(教师信息表)
存储教师的基本信息
Cour_info(课程信息表)
存储课程的基本信息
Sc(学生选课表)
存储学生选课的情况
表4-1数据库表汇总
4.2.2管理员信息表
表名
Admin_info(管理员信息表)
列名
数据类型(精度范围)
空/非空
约束条件
说明
Admin_id
char(10)
非空
PK
管理员编号
Admin_name
Varchar(10)
非空
管理员姓名
Password
char(16)
空
管理员密码
表4-2管理员信息表
4.2.3学生信息表
表名
Stu_info(学生信息表)
列名
数据类型(精度范围)
空/非空
约束条件
说明
Stu_id
char(10)
非空
PK
学生编号
Stu_name
Varchar(10)
非空
学生姓名
Dept
Varchar(20)
空
所在院系
Major
Varchar(20)
空
专业
Class
Int
空
班级
Sex
Varchar
(2)
空
性别
Password
char(16)
空
学生密码
表4-3学生信息表
4.2.4教师信息表
表名
Teach_info(教师信息表)
列名
数据类型(精度范围)
空/非空
约束条件
说明
Teach_id
char(10)
非空
PK
教师编号
Teach_name
Varchar(10)
非空
教师姓名
Dept
Varchar(20)
空
所在院系
Title
Varchar(10)
空
职称
Sex
Varchar
(2)
空
性别
Password
char(16)
空
教师密码
表4-4学生信息表
4.2.5课程信息表
表名
Cour_info(课程信息表)
列名
数据类型(精度范围)
空/非空
约束条件
说明
Cour_id
char(10)
非空
PK
课程编号
Cour_name
Varchar(20)
非空
课程名称
Teach_id
char(10)
空
FK
任课教师编号
Credit
Tinyint
空
学分
Selected_num
Int
空
已选学生数目
Total_num
Int
空
可选学生数目
Cour_time
Varchar(10)
空
上课时间
Cour_place
Varchar(10)
空
上课地点
Start
Smalldatetime
空
选课开始时间
End
smalldatetime
空
选课结束时间
表4-5课程信息表
4.2.6学生选课表
表名
Sc(学生选课表)
列名
数据类型(精度范围)
空/非空
约束条件
说明
Stu_id
char(10)
非空
PKFK
学生编号
Cour_id
char(10)
非空
PKFK
课程编号
Grade
Tinyint
空
课程成绩
表4-6学生选课表
4.3索引构成
数据库中的索引是一个列表,在这个列表中包含了某个表中一列或者若干列值的集合,以及这些值的记录在数据表中的存储位置的物理地址。
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。
索引的主要作用表现在两个方面,一是提高数据的访问速度,二是确保数据的唯一性。
通过索引这种SQLserver的内部机制,可以有效地进行数据选择和排序。
在本数据库中为了提高数据库的使用效率共设计了五个索引,分别是:
(1)admin_info表中按admin_id的升序建立唯一索引;
(2)stu_info表中按stu_id的升序建立唯一索引;(3)teach_info表中按teach_id的升序建立唯一索引;(4)cour_info表中按cour_id的升序建立唯一索引;(5)sc表中按stu_id的升序和cour_id的升序建立唯一索引。
以上索引不但能够提高数据的访问速度,同时也能保证个表中内容唯一,例如学生表中不会出现学号重复的学生,学生信息表中不会出现同一个学生选择同一门课超过一次的情况,从某方面保证了数据库的稳定性。
4.4视图构成
视图是一种常用的数据库对象,是关系数据库系统提供给用户以多种角度来观察数据的一种重要机制。
使用视图使得用户能够以更多样而且更有弹性的方式来访问数据,这不仅仅可以确保数据库的安全性,而且可以提高其使用的便利性。
在数据库应用中使用视图有以下几个方面的优点:
(1)集中数据显示;
(2)简化数据操作;(3)提供简便易行的安全保密措施;(4)易于合并或分割数据。
在本数据库中,为不同用户的不同功能需求建立了不同的视图,具体构成如下:
管理员用户在本数据库中的指责是管理学生、教师及课程的具体数据,分配课程选课开始及结束的时间。
因此管理员用户的视图应能够将学生、教师及课程的基本信息包括在其中。
视图包括:
(1)显示所有学生学号、姓名、院系、密码等基本信息;
(2)显示所有教师编号、姓名、密码登记本信息;(3)显示所有课程编号、名称、开始选课及结束选课时间。
管理员可以通过以上视图对各视图中的内容进行修改操作。
学生用户是本系统的主要用户,学生能够通过本系统进行课程的选择,已选课程的删除、查看,成绩的查询、统计等相关功能。
视图包括:
(1)显示所有课程的基本情况;
(2)显示本人所选课程的全部情况。
教师用户在本系统中能够使用的功能包括查看自己任教课程选课的情况,给选择自己课程的学生打分。
视图包括:
(1)分别显示自己任教课程的选课情况。
4.5存储过程构成
存储过程是一组为了完成特定功能的表达式集合,经编译后存储在数据库中。
用户通过制定存储过程的名字并给出参数来执行。
存储过程可以包含程序流、逻辑以及对数据库的查询,可以接受输入参数、输出参数、返回单个或多个结果集以及返回值。
本数据库中共包括以下存储过程:
(1)管理员修改选课开始、结束时间;
(2)学生选择课程;(3)学生删除课程;(4)学生统计所选课程分数;(5)查看制定课程上课的时间及地点;(6)教师给选择自己课程的学生打分;(7)教师统计自己课程的情况。
4.6触发器构成
触发器是一种由事件驱动的特殊的存储过程,当它被定义在表面上时,可看作表的一部分,一旦定义,任何用户当试图对表进行增加、删除或修改操作时,都有服务器自动激活相应的触发器,即触发器被请求。
本数据库中共包括以下触发器:
(1)学生删除课程成功后显示详细信息;
(2)教师给学生分数时若分数不在0~100范围内则提示并撤销操作;(3)学生选课或删除课程后自动更新课程信息表中已选人数。
5数据库物理实现
5.1数据库的建立
通过SQL语言建立符合物理设计中规定的数据库,代码及结果如下:
CREATEDATABASEstu_sel_cour
ON(
NAME=stu_cour,
FILENAME="F:
\database\stu_cour.mdf",
SIZE=3MB,
MAXSIZE=500MB,
FILEGROWTH=10%
)
LOGON
(
NAME=stu_cour_log,
FILENAME="F:
\database\stu_cour_log.mdf",
SIZE=3MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=1MB
)
5.2数据表的建立
利用SQL语句创建物理结构设计中规定的数据表,代码及结果如下:
USEstu_sel_cour
GO
CREATETABLEadmin_info(
admin_idCHAR(10)PRIMARYKEY,/*管理员编号为主键*/
admin_nameVARCHAR(10)NOTNULL,
PASSWORDCHAR(16)
)
CREATETABLEstu_info(
stu_idCHAR(10)PRIMARYKEY,/*学生编号为主键*/
stu_nameVARCHAR(10)NOTNULL,
deptVARCHAR(20),
majorVARCHAR(20),
classINT,
sexVARCHAR
(2),
PASSWORDCHAR(16)
)
CREATETABLEteach_info(
teach_idCHAR(10)PRIMARYKEY,/*教师编号为主键*/
teach_nameVARCHAR(10)NOTNULL,
deptVARCHAR(20),
titleVARCHAR(10),
sexVARCHAR
(2),
PASSWORDCHAR(16)
)
CREATETABLEcour_info(
cour_idCHAR(10)PRIMARYKEY,/*课程编号为主键*/
cour_nameVARCHAR(20)NOTNULL,
teach_idCHAR(10),
creditTINYINT,
selected_numINT,
total_numINT,
cour_timeVARCHAR(10),
cour_placeVARCHAR(10),
start_timeSMALLDATETIME,
end_timeSMALLDATETIME,
CONSTRAINTteach_idfk/*添加teach_id为外键,与teach_info中的teach_id相关联*/
FOREIGNKEY(t