报刊订阅管理系统文档格式.docx
《报刊订阅管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《报刊订阅管理系统文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
(3)系统查询功能,能够根据不同关键字查询报刊信息、订阅人员信息;
(4)系统统计功能,能够根据人员、报刊、部门进行统计,并进行打印功能;
(5)不同用户权限的管理功能。
2.具体要求如下:
(1)在小组内进行分工,进行系统调查,搜集资料。
(2)系统的需求分析:
根据自己的选题,确定系统的功能需求,性能需求,绘制的DFD,DD图表以及书写相关的文字说明。
(3)数据库概念结构设计:
绘制所选课题详细的E-R图。
(4)数据库逻辑结构设计:
将E-R图转换数据库的逻辑结构,并进行优化;
(5)物理结构设计:
选定实施环境,确定系统数据库的存储结构和存取方法等;
(6)数据实施和维护:
用DBMS建立数据库结构,加载数据,实现各种查询,链接应用程序,设计库中触发器、存储过程等对象,并能对数据库做简单的维护操作。
(7)自选开发工具,采用C/S或B/S模式实现软件功能。
3.课程设计报告的基本要求:
(1)必须提交系统分析报告,包括:
数据流图、数据词典和系统功能分析。
(2)数据库的设计与实现。
包括数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义,数据库数据的插入、修改、删除、查询,要求使用用SQL脚本提供。
(3)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)。
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
摘要
本报刊订阅管理系统实现的主要功能有登录、录入、订阅、查询、统计、管理功能,其中利用SQLServer2000实现了数据的订阅,查询,统计功能。
采用登录功能,实现数据库的安全管理。
采用触发器功能,实现数据插入的参考完整性,并为防止系统的故障或受到破坏,创建备份数据库,当系统故障时能快速恢复数据库。
关键词:
报刊订阅管理系统;
SQLserver2000;
数据库备份
1需求分析
用户需求
不同的用户需要根据自身需求,更快捷地对自己从系统中查找出自己所需报刊进行订阅。
设计的报刊订阅管理系统要有以下几个作用:
第一,方便订阅人员录入自己的基本信息;
第二,方便订阅人员在系统中快速找出自己所需的报刊信息;
最后,管理员方便查询统计订阅人员和报刊的信息。
此系统要易维护,操作简单。
安全性要求
不同用户管理权限不同。
管理员和订阅人员分别要有自己的编号和密码,登录时只有正确输入自己编号和密码才能进入系统。
管理员对系统进行统计、管理,订阅人员只能通过此系统进行订阅。
完整性要求
数据库各表之间的联系紧密,各表相关联的数据项的属性要保持一致,从而保证系统中数据的正确性、相容性和有效性。
实现的功能
此系统可以完成以下几个功能:
1、管理员使用自己的编号和密码登陆系统并录入报刊基本信息;
2、订阅人员使用自己的编号和密码登陆系统,录入自己的基本信息;
3、订阅人员查询报刊基本信息,在系统中对自己所需的报刊进行订阅;
4、管理员查看、统计、管理订阅信息;
5、管理员登陆系统后可以修改报刊信息,然后统计出订阅情况,并打印出结果。
订阅人员用自己的编号登陆后查询当前可订阅的报刊信息,并订阅自己选择的报刊,确认无误后确认提交。
数据流图
根据对实现的功能进行分析,得到下面的数据流图,如图。
图顶层数据流图
精细化后,形成第一层数据流图,如图。
图精细化后形成的第一层数据流图
数据字典
1数据流名称:
管理员信息
含义:
管理员登录系统时填写的单据
来源:
管理员
去向:
审核登录信息
数据流量:
250人/天
组成:
管理员编号+管理员密码
2数据流名称:
订阅人员信息
订阅人员登录系统时填写的单据
订阅人员
订阅人员编号+订阅人员密码
3数据流名称:
报刊信息
报刊的基本信息
录入报刊信息
报刊信息表
报刊编号+报刊名称+报刊负责人+出版社+发行量
4数据流名:
订阅信息
订阅人员订阅报刊时的信息
订阅报刊
去向:
订阅报刊表
组成:
订阅人员编号+报刊编号+订阅时间+订阅费用
5数据流名:
打印信息
打印统计报刊的信息
打印结果
订阅人员编号+报刊编号+部门编号+订阅报刊数量
2系统结构分析
功能分析
功能模块
经过对系统功能的分析得到以下功能模块图,如图。
图功能模块图
3概念模型设计
概念模型分析
采用自底而上的设计方法。
先自顶向下地进行需求分析,对报刊订阅管理系统的需求进行逐步细化;
然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。
通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出以下报刊订阅管理系统E-R图。
实体联系图
经过对系统的分析,得出如下E-R图,如图。
图E-R图
4逻辑模型设计
关系模型
将上E-R图转化为如下的关系模型,其中下划线为主码:
订阅人员(订阅人员编号,姓名,联系方式,家庭住址,部门,订阅人员密码)
报刊基本信息(报刊编号,报刊名称,报刊负责人,出版社,发行量)
订阅信息(订阅人员编号,报刊编号,订阅时间,订阅费用)
管理员(管理员编号,管理员密码)
订阅人员、报刊基本信息、订阅信息、管理员的E-R图如图—图。
图订阅人员E-R图
图报刊基本信息E-R图
图管理员E-R图
图订阅信息E-R图
关系模型优化设计
对上面的关系模型进行优化设计,该系统模型属于3NF。
5物理模型设计
创建数据库
在SQLServer中,创建数据库,如图—。
图创建数据库之常规选项卡
图创建数据库之数据文件
图数据库的创建
如图,用SQLServer语句建库:
createdatabase报刊订阅
onprimary(name='
报刊订阅'
filename='
c:
\报刊订阅.mdf'
Size=1mb,
maxsize=100mb,
filegrowth=1mb)
图用SQLServer语句建库
创建表
在SQLServer中,创建各表,如图—。
创建订阅人员表:
createtable订阅人员(
订阅人员编号char(10)primarykey,
姓名char(10)notnull,
联系方式char(30)notnull,
家庭地址char(20)notnull,
部门char(10)notnull,
订阅人员密码char(10)notnull)
图创建订阅人员表
创建报刊基本信息表:
createtable报刊基本信息表(
报刊编号char(10)primarykey,
报刊名称char(10),
报刊负责人char(10),
出版社char(10),
发行量char(10))
图创建报刊基本信息表
创建订阅表:
createtable订阅(
订阅人员编号char(10),
报刊编号char(10),
订阅时间datetime,
订阅费用money,
constraintc1primarykey(订阅人员编号,报刊编号))
图创建订阅表
创建管理员表:
createtable管理员(
管理员编号char(10),
管理员密码char(10))
图创建管理员表
用SQLServer语句创建各表:
订阅人员表属性,如表。
表订阅人员表
字段名
类型
长度
说明
订阅人员编号
Char
10
主码
姓名
非空
联系方式
30
家庭住址
20
部门
订阅人员密码
报刊基本信息表属性,如表。
表报刊基本信息表
报刊编号
报刊名称
报刊负责人
出版社
发行量
订阅表属性,如表。
表订阅表
外码
订阅时间
Datetime
格式YYYY-MM-DD
订阅费用
Money
管理员表属性,如表。
表管理员表
管理员编号
管理员密码
6数据实施和维护
创建登陆与用户
用SQLServer语句Sp_addlogingaohong,123创建登录语句,如图。
图创建登录用户
用Sp_addusergaohong为系统授权用户语句,如图。
图系统授权
创建存储过程
创建录入存储过程以方便数据插入
1录入订阅人员信息存储过程,如图。
createprocedurecrdyry
@订阅人员编号char(10),
@姓名char(10),
@联系方式char(30),
@家庭地址char(20),
@部门char(10),
@订阅人员密码char(10)
asinsertinto订阅人员
values(@订阅人员编号,@姓名,@联系方式,@家庭地址,@部门,@订阅人员密码)
图订阅人员存储过程
2插入报刊存储过程,如图。
createprocedurecrbk
@报刊编号char(10),
@报刊名称char(10),
@报刊负责人char(10),
@出版社char(10),
@发行量char(10)
asinsertinto报刊基本信息表
values(@报刊编号,@报刊名称,@报刊负责人,@出版社,@发行量)
图报刊存储过程
3插入订阅信息存储过程,如图。
createprocedurecrdyxx
@订阅人员编号char(10),
@订阅时间datetime,
@订阅费用money
asinsertinto订阅
values(@订阅人员编号,@报刊编号,@订阅时间,@订阅费用)
图订阅信息存储过程
4插入管理员存储过程,如图。
createprocedurecrgly
@管理员编号char(10),
@管理员密码char(10)
asinsertinto管理员
values(@管理员编号,@管理员密码)
图管理员存储过程
5录入数据:
如图和图,录入订阅人员信息,其代码如下:
execcrdyry01,高婷,,陕西米脂,1,123
execcrdyry02,陈芳青,,陕西咸阳,2,234
图插入订阅人员信息语句
图订阅人员信息
如图和图,录入报刊信息,其代码如下:
execcrbk001,华商报,梁娇,陕西韩城,100
execcrbk002,人民日报,曹小丽,陕西澄城,100
图插入报刊信息语句
图录入报刊信息
如图,录入订阅信息,其代码如下
execcrdyxx01,002,2010-1-1,10
execcrdyxx02,001,2010-2-2,10
图录入订阅信息
如图和图,录入管理员信息,其代码如下
execcrgly11,1234
execcrgly22,2345
图录入管理员信息语句
图录入管理员信息
6创建一个查找订阅人员的存储过程方便查找,代码如下
createproceduresearchdyry
asselect订阅人员编号,姓名,部门
from订阅人员
execsearchdyry
创建一个查找报刊基本信息表的存储过程方便查找,代码如下
createproceduresearchbk
asselect*
from报刊基本信息表
execsearchbk
创建触发器
为防止数据库中插入错误的数据应为订阅表创建触发器,当在订阅表中插入数据时,首先在订阅人员表中和报刊基本信息表中查询是否含有待插入的订阅人员和报刊基本信息,如果其中的一个未含有,则拒绝插入以保证数据的完整性,其语句如下,结果如图。
其代码如下:
createtriggerdy_inserton订阅
forinsert
asif(selectcount(*)
from订阅人员,inserted,报刊基本信息表
where订阅人员.订阅人员编号=inserted.订阅人员编号and报刊基本信息表.报刊编号=inserted.报刊编号)=0
begin
rollbacktransaction
print'
该订阅人员或报刊不存在!
!
'
End
图创建插入订阅信息触发器
当在订阅表中录入一个不存在的订阅人员或报刊时触发器被触发如图。
图录入一个不存在的订阅人员或报刊时触发器的情况
删除订阅触发器,当订阅人员订阅报刊时,不能被删除如图,其代码如下:
createtriggeryg1_deleteon订阅人员
fordelete
from订阅,deleted
where订阅.订阅人员编号=deleted.订阅人员编号)<
>
rollback
该员工已定阅报刊,不能被删除!
!
end
delete
from订阅
where订阅人员编号=01
图删除订阅触发器
删除报刊触发器防止被订阅的报纸被删除,如图,其代码如下:
createtriggerbk_deleteon报刊基本信息表
where订阅.报刊编号=deleted.报刊编号)<
该报刊已被定阅,不能被删除!
where报刊编号=001
图删除报刊触发器
创建视图
创建一个订阅人员视图,防止其他用户查看到其他用户的密码如图,其代码如下
createviewygview
asselect订阅人员编号,姓名,联系方式,部门
图创建订阅人员视图
select*
fromygview
运行结果如图。
图查询结果
创建一个报刊视图,防止没有权限的订阅人员查看到其他信息,如图。
其代码如下
createviewbkview
asselect报刊名称,出版社
图创建报刊视图
frombkview
其运行结果如图。
图查询报刊基本信息结果
备份数据库
为保证系统出错误或受到破坏后应为数据库进行备份。
首先建立备份数据库,并备份该数据库。
Sp_addumpdevice'
disk'
'
报刊订阅管理系统bak'
'
\报刊订阅管理系统bak'
Backupdatabase报刊订阅管理系统to报刊订阅管理系统bak
7系统测试
打开本系统,对其进行测试,首先弹出欢迎界面,选择用户入口,点击“新用户注册”,如图。
图欢迎界面
欢迎界面的程序:
总结
通过此次对报刊订阅管理系统的设计,我认识到自己在以前的课程学习中还有很多的不足。
在课设中,我了解了数据库对当今社会的重要性,它的安全性、方便性等特点,为我们日常生活提供了很大的帮助。
这次课设让我掌握了SQLServer语句的应用。
此次课设已经结束,但我不会结束对数据库的学习。
很高兴能和组员们一起完成报刊订阅管理系统的课设,谢谢老师的帮助。
参考文献
[1]张海藩.软件工程(第五版).北京:
人民邮电出版社,2010
[2]苗雪兰.数据库系统原理及应用教程(第三版).北京:
机械工业出版社,2010