学生学籍管理系统SQL数据库课程设计Word格式文档下载.docx
《学生学籍管理系统SQL数据库课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统SQL数据库课程设计Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
4、实现学生成绩的录入、修改、删除等基本操作。
5、能方便的对学生的各学期成绩进行查询。
6、具有成绩统计、排名等功能。
7、具有留级、休学等特殊情况的处理功能。
8、能输出常用的各种报表。
9、具有数据备份和数据恢复功能。
4、数据需求分析
学籍:
学号、姓名、性别、年级、班级、出生年月、住址、邮政编码、联系电话、入学时间、备注
成绩:
学号、姓名、班级、学期、课程名称、分数
班级:
年级、专业、人数、教室、班主任
课程:
课程代码、课程名称、任课教师
交费:
学号、学期、交费、欠费、日期
二、数据库概念设计
1、用触发器对学生基本情况进行录入、修改、删除。
在学籍中分别建立insert、delete、update触发器,例如insert触发器,当向学籍中添加新的学生信息时,将会自动更新班级中的人数。
2、利用视图将学生常用信息整合到一个表中,设置一个连接按钮,将不同表中的有用信息联系在一起,新建此表的视图,方便下次查看。
3、用触发器对学生成绩进行录入、修改、删除。
在成绩表中分别建立insert、delete、update触发器,例如update触发器,可以设置不能修改的基本数据,然后对其他数据进行修改。
4、用视图对学生成绩进行统计。
5、用报表里的报表服务器向导实现对学生的各学期成绩进行查询的功能,即按“学期”这一个项目进行分组,形成报表;
6、用报表实现删选出成绩大于等于60并进行由大到小排序,用到报表里的筛选器和排序两个功能;
7、同样用报表输出其他自行设计的常用报表;
8、对于数据备份和数据恢复功能的实现,我采用新建立一个存储设备FirstDisk,将数据备份文件存储在此存储设备下,而不是文件下,更接近实用化的目标
2、数据流程图
所有课程的E-R图
成绩的E-R图
班级的E-R图
班级查询的E-R图
交费的E-R图
考试类型的E-R图
使用者信息的E-R图
学籍的E-R图
学费的E-R图
3、数据库结构逻辑设计
学生成绩表格
序号
字段名
字段类型
宽度
可否为空
1
学号
nvarchar
10
否
2
姓名
8
3
班级
20
4
学期
50
5
课程名称
6
分数
班级信息表格
16
年级
专业
人数
教师
班主任
课程信息表格
课程代码
任课教师
学生交费信息表格
交费
money
欠费
日期
smalldatetime
学生学籍信息表格
性别
出生年月
20-
家庭住址
30
7
邮政编码
int
联系电话
9
入学时间
备注
ntext
三、详细设计
1、建立insert触发器
CREATETRIGGERT_addnum
on学籍
forinsert
as
update班级信息set人数=人数+1
where班级=(select班级frominserted)
2、建立update触发器
createtriggerT_updatecj
on成绩
forupdate
if(update(学号)orUPDATE(课程名称))
begin
print'
基础数据不能修改!
'
rollbacktransaction
end
elseprint'
数据修改成功!
3、建立delete触发器
createtriggerT_deletecj
fordelete
select学号as被删除的学生学号,课程名称,分数fromdeleted
4、利用视图将学生常用信息整合到一个表中,设置一个连接按钮,将不同表中的有用信息联系在一起,新建此表的视图,方便下次查看。
5、用视图对学生成绩进行统计。
6、用报表里的报表服务器向导实现对学生的各学期成绩进行查询的功能,即按“学期”这一个项目进行分组,形成报表;
7、用报表实现删选出成绩大于等于60并进行由大到小排序,用到报表里的筛选器和排序两个功能;
8、同样用报表输出其他自行设计的常用报表;
9、对于数据备份和数据恢复功能的实现,我采用新建立一个存储设备FirstDisk,将数据备份文件存储在此存储设备下,而不是文件下,更接近实用化的目标
四、系统实现与测试
1、向学籍表中插入新的学生信息,班级人数自动更新
2、用视图表示学生常用信息
3、对学生成绩进行update、delete
删除时显示所删除的信息,防止误删
修改时,所设置的基础数据不能修改
4、将学生成绩表用视图表示出来
5用报表里的报表服务器向导实现对学生的各学期成绩进行查询的功能,即按“学期”这一个项目进行分组,形成报表;
(1)报表设计
(2)报表预览
点击
、
后的表格显示:
查询成功
6.用报表实现删选出成绩大于等于60并进行由大到小排序,用到报表里的“筛选器”和“排序”两个功能;
7、对于数据备份和数据恢复功能的实现,我采用新建立一个存储设备FirstDisk,将数据备份文件存储在此存储设备下,而不是文件下,更接近实用化的目标
(1)建立存储设备FirstDisk
(2)对该数据库进行完整备份
(3)备份成功
(4)数据库恢复
(2)恢复成功
五、数据库的建立
usemaster
go
IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname='
学生学籍管理'
)
DROPDATABASE[学生学籍管理]
GO
CREATEDATABASE[学生学籍管理]
use[学生学籍管理]
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'
[dbo].[学籍]'
)andOBJECTPROPERTY(id,N'
IsUserTable'
)=1)
droptable[dbo].[学籍]
[dbo].[成绩]'
droptable[dbo].[成绩]
[dbo].[班级]'
droptable[dbo].[班级]
[dbo].[课程]'
droptable[dbo].[课程]
[dbo].[交费]'
droptable[dbo].[交费]
use学生学籍管理
CREATETABLE[dbo].[学籍](
[学号][nvarchar](5)COLLATEChinese_PRC_CI_ASNULL,
[姓名][nvarchar](8)COLLATEChinese_PRC_CI_ASNULL,
[性别][nvarchar]
(2)COLLATEChinese_PRC_CI_ASNULL,
[年级][nvarchar](16)COLLATEChinese_PRC_CI_ASNULL,
[班级][nvarchar](10)COLLATEChinese_PRC_CI_ASNULL,
[出生年月][smalldatetime]NULL,
[住址][nvarchar](30)COLLATEChinese_PRC_CI_ASNULL,
[邮政编码][int]NULL,
[联系电话][int]NULL,
[入学时间][smalldatetime]NULL,
[备注][ntext]COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
CREATETABLE[dbo].[成绩](
[学号][nvarchar](10)COLLATEChinese_PRC_CI_ASNULL,
[班级][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,
[学期][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[课程名称][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,
[分数][real]NULL
)ON[PRIMARY]
CREATETABLE[dbo].[班级](
[班级][nvarchar](16)COLLATEChinese_PRC_CI_ASNULL,
[年级][nvarchar](16)COLLATEChinese_PRC_CI_ASNULL,
[专业][nvarchar](16)COLLATEChinese_PRC_CI_ASNULL,
[人数][nvarchar](8)COLLATEChinese_PRC_CI_ASNULL,
[教室][nvarchar](5)COLLATEChinese_PRC_CI_ASNULL,
[班主任][nvarchar](8)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
CREATETABLE[dbo].[课程](
[课程代码][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,
[课程名称][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL,
[任课教师][nvarchar](20)COLLATEChinese_PRC_CI_ASNULL
CREATETABLE[dbo].[交费](
[交费][money]NULL,
[欠费][money]NULL,
[日期][smalldatetime]NULL
六、总结
经过近一个星期的努力,终于设计出一个达到程序设计要求的数据库。
其功
能完整,用户界面良好,但是也存在着某些缺陷。
这一段时间的工作努力,最后的结果固重要,但更重要的是它让自己了解了
数据库设计的一般过程。
在接受客户的一个项目的时候,首先是进行系统分析。
既首先分析其以后的销售情况以及技术可行性。
如果二者可行,我们接下来做的
就是总体设计。
我们首先必须听取用户的要求,将其提出的功能按某种方式划分
为几种模块。
这就是整体设计。
在对每一个模块进行细化形成最为简单的模块。
然后是考虑每一细化模块的算法并将其用语言刻画出来。
这就是详细设计。
这就
迈出了最为关键的一步。
剩下的就是编译测试阶段。
这是编程的必经阶段,也是
我们劳动结果的验金石。
只有得到我们期望的结果我们才算真正完成了任务。
最
后是软件的维护。
在软件的使用过程中不可避免地会出现一些错误,因此维护便
是必不可少的。
这便是完成一个项目必经的过程。
克服困难,坚持不懈是一个成功人士的所必需的品质。
同样作为一个软件编
程者更是必不可少的。
只有敢于对困难说不,我们才能成为真正的软件编程者。
不懈上帝是公平的,又付出就有回报。
眼前的困难只是你前进路上的绊脚石。
只
要我们不怕痛,我们就能坚持的走下来,最终走向胜利。
更重要的是它让我意识到团结互助的重要性。
我们人类毕竟是社会动物。
谁
也不能成为上帝无所不能。
只要是人他就必须需要别人。
无论从物质还是精神上
都不能摆脱对人的依赖。
我们必须学会了与人交往,与人合作。
这也是从事软件
业所必须要学会。
众所周知,软件是众人互相协作的产业,一个人不可能独立的
完成一个大型软件的编程工作。
信息产业在于它的速度,即使一个人能完成一个
项目,它也不可能在时间上满足社会的需求。
因此与人沟通与人协作也是十分重
要的。
在这一年的学习中,我终于体会到SQLServer2000功能的功能丰富,表达能力强,
使用灵活方便,应用面广。
但是在其优势后面必然也隐藏着劣势,那就是对程序员的
要求特别高。
随着社会的发展,人类需要处理的数据越来越多,对数据管理的要
求也越来越重要。
软件的发展也从面向程序发展成为面向数据。
参考文献
[1]王珊,陈红《数据库系统原理教程》清华大学出版社,1998年7月
[2]石树刚、郑振梅编著《关系数据》 北京清华大学出版社,1994年
[3]郑人杰等编辑 《使用软件工程》第二版。
北京大学清华大学出版社,1997年
[4]萨师煊、王珊 《数据库系统概论》(第三版)。
北京:
高等教育出版社,2000年