报刊订阅管理系统.docx

上传人:b****8 文档编号:10393295 上传时间:2023-02-10 格式:DOCX 页数:18 大小:21.39KB
下载 相关 举报
报刊订阅管理系统.docx_第1页
第1页 / 共18页
报刊订阅管理系统.docx_第2页
第2页 / 共18页
报刊订阅管理系统.docx_第3页
第3页 / 共18页
报刊订阅管理系统.docx_第4页
第4页 / 共18页
报刊订阅管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

报刊订阅管理系统.docx

《报刊订阅管理系统.docx》由会员分享,可在线阅读,更多相关《报刊订阅管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

报刊订阅管理系统.docx

报刊订阅管理系统

数据库应用课程设计

设计说明书

报刊订阅管理系统

学生姓名

高虹

学号

班级

计专081

成绩

指导教师

肖海蓉

计算机科学与技术系

2011年1月7日

数据库应用课程设计评阅书

题目

报刊订阅管理系统

学生姓名

高虹

学号

07

指导教师评语及成绩

指导教师签名:

年月日

答辩评语及成绩

答辩教师签名:

年月日

教研室意见

总成绩:

室主任签名:

年月日

课程设计任务书

2010—2011学年第1学期

专业:

计算机应用学号:

姓名:

高虹

课程设计名称:

数据库应用课程设计

设计题目:

报刊订阅管理系统的设计

完成期限:

自2010年12月27日至2011年1月7日共2周

设计依据、要求及主要内容(可另加附页):

通过对某企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。

1.系统功能的基本要求:

(1)基本信息的录入功能,包括订阅人员信息,报刊基本信息;

(2)报刊订阅功能,包括订阅人员的具体订阅信息及订阅费用等;

(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数据流名称:

订阅人员信息

含义:

订阅人员登录系统时填写的单据

来源:

订阅人员

去向:

审核登录信息

数据流量:

250人/天

组成:

订阅人员编号+订阅人员密码

3数据流名称:

报刊信息

含义:

报刊的基本信息

来源:

录入报刊信息

去向:

报刊信息表

数据流量:

250人/天

组成:

报刊编号+报刊名称+报刊负责人+出版社+发行量

4数据流名:

订阅信息

含义:

订阅人员订阅报刊时的信息

来源:

订阅报刊

去向:

订阅报刊表

组成:

订阅人员编号+报刊编号+订阅时间+订阅费用

5数据流名:

打印信息

含义:

打印统计报刊的信息

来源:

订阅信息

去向:

打印结果

组成:

订阅人员编号+报刊编号+部门编号+订阅报刊数量

2系统结构分析

功能分析

1、管理员使用自己的编号和密码登陆系统并录入报刊基本信息;

2、订阅人员使用自己的编号和密码登陆系统,录入自己的基本信息;

3、订阅人员查询报刊基本信息,在系统中对自己所需的报刊进行订阅;

4、管理员查看、统计、管理订阅信息;

5、管理员登陆系统后可以修改报刊信息,然后统计出订阅情况,并打印出结果。

订阅人员用自己的编号登陆后查询当前可订阅的报刊信息,并订阅自己选择的报刊,确认无误后确认提交。

功能模块

经过对系统功能的分析得到以下功能模块图,如图。

图功能模块图

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

主码

姓名

Char

10

非空

联系方式

Char

30

非空

家庭住址

Char

20

非空

部门

Char

10

非空

订阅人员密码

Char

10

非空

报刊基本信息表属性,如表。

表报刊基本信息表

字段名

类型

长度

说明

报刊编号

Char

10

主码

报刊名称

Char

10

非空

报刊负责人

Char

10

非空

出版社

Char

10

非空

发行量

Char

10

非空

订阅表属性,如表。

表订阅表

字段名

类型

长度

说明

订阅人员编号

Char

10

外码

报刊编号

Char

10

外码

订阅时间

Datetime

格式YYYY-MM-DD

订阅费用

Money

非空

管理员表属性,如表。

表管理员表

字段名

类型

长度

说明

管理员编号

Char

10

主码

管理员密码

Char

10

非空

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),

@报刊编号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

asif(selectcount(*)

from订阅,deleted

where订阅.订阅人员编号=deleted.订阅人员编号)<>0

begin

rollback

print'该员工已定阅报刊,不能被删除!

'

end

delete

from订阅

where订阅人员编号=01

图删除订阅触发器

删除报刊触发器防止被订阅的报纸被删除,如图,其代码如下:

createtriggerbk_deleteon报刊基本信息表

fordelete

asif(selectcount(*)

from订阅,deleted

where订阅.报刊编号=deleted.报刊编号)<>0

begin

rollback

print'该报刊已被定阅,不能被删除!

'

end

delete

from报刊基本信息表

where报刊编号=001

图删除报刊触发器

创建视图

创建一个订阅人员视图,防止其他用户查看到其他用户的密码如图,其代码如下

createviewygview

asselect订阅人员编号,姓名,联系方式,部门

from订阅人员

图创建订阅人员视图

select*

fromygview

运行结果如图。

图查询结果

创建一个报刊视图,防止没有权限的订阅人员查看到其他信息,如图。

其代码如下

createviewbkview

asselect报刊名称,出版社

from报刊基本信息表

图创建报刊视图

select*

frombkview

其运行结果如图。

图查询报刊基本信息结果

备份数据库

为保证系统出错误或受到破坏后应为数据库进行备份。

首先建立备份数据库,并备份该数据库。

Sp_addumpdevice'disk','报刊订阅管理系统bak','c:

\报刊订阅管理系统bak'

Backupdatabase报刊订阅管理系统to报刊订阅管理系统bak

7系统测试

打开本系统,对其进行测试,首先弹出欢迎界面,选择用户入口,点击“新用户注册”,如图。

图欢迎界面

欢迎界面的程序:

总结

通过此次对报刊订阅管理系统的设计,我认识到自己在以前的课程学习中还有很多的不足。

在课设中,我了解了数据库对当今社会的重要性,它的安全性、方便性等特点,为我们日常生活提供了很大的帮助。

这次课设让我掌握了SQLServer语句的应用。

此次课设已经结束,但我不会结束对数据库的学习。

很高兴能和组员们一起完成报刊订阅管理系统的课设,谢谢老师的帮助。

参考文献

[1]张海藩.软件工程(第五版).北京:

人民邮电出版社,2010

[2]苗雪兰.数据库系统原理及应用教程(第三版).北京:

机械工业出版社,2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1