《报刊订阅管理系统.pdf》由会员分享,可在线阅读,更多相关《报刊订阅管理系统.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库应用课程设计 设计说明书 报刊订阅管理系统 学生姓名 高 虹 学号 班级 计 专 081 成绩 指导教师 肖 海 蓉 计算机科学与技术系 2011 年 1 月 7 日数据库应用课程设计评阅书 题目 报刊订阅管理系统 学生姓名 高 虹 学号 07 指导教师评语及成绩 指导教师签名:年 月 日 答辩评语及成绩 答辩教师签名:年 月 日 教研室意见 总成绩:室主任签名:年 月 日 课程设计任务书 20102011 学年第 1 学期 专业:计算机应用 学号:姓名:高 虹 课程设计名称:数据库应用课程设计 设计题目:报刊订阅管理系统的设计 完成期限:自 2010 年 12 月 27 日至 2011
2、 年 1 月 7 日共 2 周 设计依据、要求及主要内容(可另加附页):通过对某企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。1系统功能的基本要求:(1)基本信息的录入功能,包括订阅人员信息,报刊基本信息;(2)报刊订阅功能,包括订阅人员的具体订阅信息及订阅费用等;(3)系统查询功能,能够根据不同关键字查询报刊信息、订阅人员信息;(4)系统统计功能,能够根据人员、报刊、部门进行统计,并进行打印功能;(5)不同用户权限的管理功能。2.具体要求如下:(1)在小组内进行分工,进行系统调查,搜集资料。(2)系统的需求分析:根据自己的选题,确定系统的功能需求,性能需求,绘制的 DFD,
3、DD 图表以及书写相关的文字说明。(3)数据库概念结构设计:绘制所选课题详细的 E-R 图。(4)数据库逻辑结构设计:将 E-R 图转换数据库的逻辑结构,并进行优化;(5)物理结构设计:选定实施环境,确定系统数据库的存储结构和存取方法等;(6)数据实施和维护:用 DBMS 建立数据库结构,加载数据,实现各种查询,链接应用程序,设计库中触发器、存储过程等对象,并能对数据库做简单的维护操作。(7)自选开发工具,采用 C/S 或 B/S 模式实现软件功能。3.课程设计报告的基本要求:(1)必须提交系统分析报告,包括:数据流图、数据词典和系统功能分析。(2)数据库的设计与实现。包括数据库的数据字典,数
4、据库的概念结构(ER 图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义,数据库数据的插入、修改、删除、查询,要求使用用 SQL 脚本提供。(3)程序设计的报告:包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)。指导教师(签字):教研室主任(签字):批准日期:年 月 日 摘 要 本报刊订阅管理系统实现的主要功能有登录、录入、订阅、查询、统计、管理功能,其中利用 SQL Server 2000 实现了数据的订阅,查询,统计功能。采用登录功能,实现数据库的安全管理。采用触发器功能,实现数据插入的参考完整性,并为防止系统的故障或
5、受到破坏,创建备份数据库,当系统故障时能快速恢复数据库。关键词:报刊订阅管理系统;SQL server 2000;数据库备份 目 录 1 需求分析 用户需求 不同的用户需要根据自身需求,更快捷地对自己从系统中查找出自己所需报刊进行订阅。设计的报刊订阅管理系统要有以下几个作用:第一,方便订阅人员录入自己的基本信息;第二,方便订阅人员在系统中快速找出自己所需的报刊信息;最后,管理员方便查询统计订阅人员和报刊的信息。此系统要易维护,操作简单。安全性要求 不同用户管理权限不同。管理员和订阅人员分别要有自己的编号和密码,登录时只有正确输入自己编号和密码才能进入系统。管理员对系统进行统计、管理,订阅人员只
6、能通过此系统进行订阅。完整性要求 数据库各表之间的联系紧密,各表相关联的数据项的属性要保持一致,从而保证系统中数据的正确性、相容性和有效性。实现的功能 此系统可以完成以下几个功能:1、管理员使用自己的编号和密码登陆系统并录入报刊基本信息;2、订阅人员使用自己的编号和密码登陆系统,录入自己的基本信息;3、订阅人员查询报刊基本信息,在系统中对自己所需的报刊进行订阅;4、管理员查看、统计、管理订阅信息;5、管理员登陆系统后可以修改报刊信息,然后统计出订阅情况,并打印出结果。订阅人员用自己的编号登陆后查询当前可订阅的报刊信息,并订阅自己选择的报刊,确认无误后确认提交。数据流图 根据对实现的功能进行分析
7、,得到下面的数据流图,如图。图 顶层数据流图 精细化后,形成第一层数据流图,如图。图 精细化后形成的第一层数据流图 数据字典 1 数据流名称:管理员信息 含义:管理员登录系统时填写的单据 来源:管理员 去向:审核登录信息 数据流量:250 人/天 组成:管理员编号+管理员密码 2 数据流名称:订阅人员信息 含义:订阅人员登录系统时填写的单据 来源:订阅人员 去向:审核登录信息 数据流量:250 人/天 组成:订阅人员编号+订阅人员密码 3 数据流名称:报刊信息 含义:报刊的基本信息 来源:录入报刊信息 去向:报刊信息表 数据流量:250 人/天 组成:报刊编号+报刊名称+报刊负责人+出版社+发
8、行量 4 数据流名:订阅信息 含义:订阅人员订阅报刊时的信息 来源:订阅报刊 去向:订阅报刊表 组成:订阅人员编号+报刊编号+订阅时间+订阅费用 5 数据流名:打印信息 含义:打印统计报刊的信息 来源:订阅信息 去向:打印结果 组成:订阅人员编号+报刊编号+部门编号+订阅报刊数量 2 系统结构分析 功能分析 1、管理员使用自己的编号和密码登陆系统并录入报刊基本信息;2、订阅人员使用自己的编号和密码登陆系统,录入自己的基本信息;3、订阅人员查询报刊基本信息,在系统中对自己所需的报刊进行订阅;4、管理员查看、统计、管理订阅信息;5、管理员登陆系统后可以修改报刊信息,然后统计出订阅情况,并打印出结果
9、。订阅人员用自己的编号登陆后查询当前可订阅的报刊信息,并订阅自己选择的报刊,确认无误后确认提交。功能模块 经过对系统功能的分析得到以下功能模块图,如图。图 功能模块图 3 概念模型设计 概念模型分析 采用自底而上的设计方法。先自顶向下地进行需求分析,对报刊订阅管理系统的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。通过对局部应用的选择,逐一设计出分 E-R 图,并对各个分 E-R 图进行合并,生成初步 E-R 图,消除不必要的系统冗余,可以得出以下报刊订阅管理系统 E-R 图。实体联系图 经过对系统的分析,得出如下 E-R 图,如图。图 E-
10、R 图 4 逻辑模型设计 关系模型 将上 E-R 图转化为如下的关系模型,其中下划线为主码:订阅人员(订阅人员编号,姓名,联系方式,家庭住址,部门,订阅人员密码)报刊基本信息(报刊编号,报刊名称,报刊负责人,出版社,发行量)订阅信息(订阅人员编号,报刊编号,订阅时间,订阅费用)管理员(管理员编号,管理员密码)订阅人员、报刊基本信息、订阅信息、管理员的 E-R 图如图图。图 订阅人员 E-R 图 图 报刊基本信息 E-R 图 图 管理员 E-R 图 图 订阅信息 E-R 图 关系模型优化设计 对上面的关系模型进行优化设计,该系统模型属于 3NF。5 物理模型设计 创建数据库 在 SQL Serv
11、er 中,创建数据库,如图。图 创建数据库之常规选项卡 图 创建数据库之数据文件 图 数据库的创建 如图,用 SQL Server 语句建库:create database 报刊订阅 on primary(name=报刊订阅,filename=c:报刊订阅.mdf,Size=1mb,maxsize=100mb,filegrowth=1mb)图 用 SQL Server 语句建库 创建表 在 SQL Server 中,创建各表,如图。创建订阅人员表:create table 订阅人员(订阅人员编号 char(10)primary key,姓名 char(10)not null,联系方式 char
12、(30)not null,家庭地址 char(20)not null,部门 char(10)not null,订阅人员密码 char(10)not null)图 创建订阅人员表 创建报刊基本信息表:create table 报刊基本信息表(报刊编号 char(10)primary key,报刊名称 char(10),报刊负责人 char(10),出版社 char(10),发行量 char(10)图 创建报刊基本信息表 创建订阅表:create table 订阅(订阅人员编号 char(10),报刊编号 char(10),订阅时间 datetime,订阅费用 money,constraint c
13、1 primary key(订阅人员编号,报刊编号)图 创建订阅表 创建管理员表:create table 管理员(管理员编号 char(10),管理员密码 char(10)图 创建管理员表 用 SQL Server 语句创建各表:订阅人员表属性,如表。表 订阅人员表 字段名 类型 长度 说明 订阅人员编号 Char 10 主码 姓名 Char 10 非空 联系方式 Char 30 非空 家庭住址 Char 20 非空 部门 Char 10 非空 订阅人员密码 Char 10 非空 报刊基本信息表属性,如表。表 报刊基本信息表 字段名 类型 长度 说明 报刊编号 Char 10 主码 报刊名称
14、 Char 10 非空 报刊负责人 Char 10 非空 出版社 Char 10 非空 发行量 Char 10 非空 订阅表属性,如表。表 订阅表 字段名 类型 长度 说明 订阅人员编号 Char 10 外码 报刊编号 Char 10 外码 订阅时间 Datetime 格式 YYYY-MM-DD 订阅费用 Money 非空 管理员表属性,如表。表 管理员表 字段名 类型 长度 说明 管理员编号 Char 10 主码 管理员密码 Char 10 非空 6 数据实施和维护 创建登陆与用户 用 SQL Server 语句 Sp_addlogin gaohong,123 创建登录语句,如图。图 创建登
15、录用户 用 Sp_adduser gaohong 为系统授权用户语句,如图。图 系统授权 创建存储过程 创建录入存储过程以方便数据插入 1 录入订阅人员信息存储过程,如图。create procedure crdyry 订阅人员编号 char(10),姓名 char(10),联系方式 char(30),家庭地址 char(20),部门 char(10),订阅人员密码 char(10)as insert into 订阅人员 values(订阅人员编号,姓名,联系方式,家庭地址,部门,订阅人员密码)图 订阅人员存储过程 2 插入报刊存储过程,如图。create procedure crbk 报刊编
16、号 char(10),报刊名称 char(10),报刊负责人 char(10),出版社 char(10),发行量 char(10)as insert into 报刊基本信息表 values(报刊编号,报刊名称,报刊负责人,出版社,发行量)图 报刊存储过程 3 插入订阅信息存储过程,如图。create procedure crdyxx 订阅人员编号 char(10),报刊编号 char(10),订阅时间 datetime,订阅费用 money as insert into 订阅 values(订阅人员编号,报刊编号,订阅时间,订阅费用)图 订阅信息存储过程 4 插入管理员存储过程,如图。crea
17、te procedure crgly 管理员编号 char(10),管理员密码 char(10)as insert into 管理员 values(管理员编号,管理员密码)图 管理员存储过程 5 录入数据:如图和图,录入订阅人员信息,其代码如下:exec crdyry 01,高婷,陕西米脂,1,123 exec crdyry 02,陈芳青,陕西咸阳,2,234 图 插入订阅人员信息语句 图 订阅人员信息 如图和图,录入报刊信息,其代码如下:exec crbk 001,华商报,梁娇,陕西韩城,100 exec crbk 002,人民日报,曹小丽,陕西澄城,100 图 插入报刊信息语句 图 录入报
18、刊信息 如图,录入订阅信息,其代码如下 exec crdyxx 01,002,2010-1-1,10 exec crdyxx 02,001,2010-2-2,10 图 录入订阅信息 如图和图,录入管理员信息,其代码如下 exec crgly 11,1234 exec crgly 22,2345 图 录入管理员信息语句 图 录入管理员信息 6 创建一个查找订阅人员的存储过程方便查找,代码如下 create procedure searchdyry as select 订阅人员编号,姓名,部门 from 订阅人员 exec searchdyry 创建一个查找报刊基本信息表的存储过程方便查找,代码如
19、下 create procedure searchbk as select*from 报刊基本信息表 exec searchbk 创建触发器 为防止数据库中插入错误的数据应为订阅表创建触发器,当在订阅表中插入数据时,首先在订阅人员表中和报刊基本信息表中查询是否含有待插入的订阅人员和报刊基本信息,如果其中的一个未含有,则拒绝插入以保证数据的完整性,其语句如下,结果如图。其代码如下:create trigger dy_insert on 订阅 for insert as if(select count(*)from 订阅人员,inserted,报刊基本信息表 where 订阅人员.订阅人员编号=i
20、nserted.订阅人员编号 and 报刊基本信息表.报刊编号=inserted.报刊编号)=0 begin rollback transaction print 该订阅人员或报刊不存在!End 图 创建插入订阅信息触发器 当在订阅表中录入一个不存在的订阅人员或报刊时触发器被触发如图。图 录入一个不存在的订阅人员或报刊时触发器的情况 删除订阅触发器,当订阅人员订阅报刊时,不能被删除如图,其代码如下:create trigger yg1_delete on 订阅人员 for delete as if(select count(*)from 订阅,deleted where 订阅.订阅人员编号=d
21、eleted.订阅人员编号)0 begin rollback print 该员工已定阅报刊,不能被删除!end delete from 订阅 where 订阅人员编号=01 图 删除订阅触发器 删除报刊触发器防止被订阅的报纸被删除,如图,其代码如下:create trigger bk_delete on 报刊基本信息表 for delete as if(select count(*)from 订阅,deleted where 订阅.报刊编号=deleted.报刊编号)0 begin rollback print 该报刊已被定阅,不能被删除!end delete from 报刊基本信息表 whe
22、re 报刊编号=001 图 删除报刊触发器 创建视图 创建一个订阅人员视图,防止其他用户查看到其他用户的密码如图,其代码如下 create view ygview as select 订阅人员编号,姓名,联系方式,部门 from 订阅人员 图 创建订阅人员视图 select*from ygview 运行结果如图。图 查询结果 创建一个报刊视图,防止没有权限的订阅人员查看到其他信息,如图。其代码如下 create view bkview as select 报刊名称,出版社 from 报刊基本信息表 图 创建报刊视图 select*from bkview 其运行结果如图。图 查询报刊基本信息结果
23、 备份数据库 为保证系统出错误或受到破坏后应为数据库进行备份。首先建立备份数据库,并备份该数据库。Sp_addumpdevice disk,报刊订阅管理系统 bak,c:报刊订阅管理系统 bak Backup database 报刊订阅管理系统 to 报刊订阅管理系统 bak 7 系统测试 打开本系统,对其进行测试,首先弹出欢迎界面,选择用户入口,点击“新用户注册”,如图。图 欢迎界面 欢迎界面的程序:总结 通过此次对报刊订阅管理系统的设计,我认识到自己在以前的课程学习中还有很多的不足。在课设中,我了解了数据库对当今社会的重要性,它的安全性、方便性等特点,为我们日常生活提供了很大的帮助。这次课设让我掌握了 SQL Server 语句的应用。此次课设已经结束,但我不会结束对数据库的学习。很高兴能和组员们一起完成报刊订阅管理系统的课设,谢谢老师的帮助。参考文献 1 张海藩.软件工程(第五版).北京:人民邮电出版社,2010 2 苗雪兰.数据库系统原理及应用教程(第三版).北京:机械工业出版社,2010
限制150内