图书销售管理系统.docx
- 文档编号:6802846
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:16
- 大小:125.35KB
图书销售管理系统.docx
《图书销售管理系统.docx》由会员分享,可在线阅读,更多相关《图书销售管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
图书销售管理系统
数据库原理课程设计
题目图书销售管理系统
学院商学院
专业信息管理与信息系统
班级信息082
学号200853275215
学生姓名蒋艺敏
指导教师张细香
编写日期2010-01-10
目录
1.系统需求分析………………………………………………………………………1
1.1系统调查……………………………………………………………………1
1.2用户需求……………………………………………………………………1
1.3系统业务流程………………………………………………………………1
2.系统逻辑方案………………………………………………………………………2
2.1数据流图(简称DFD)……………………………………………………2
2.2数据字典(简称DD)……………………………………………………3
3.系统的总体结构设计………………………………………………………………4
3.1系统功能模块设计…………………………………………………………4
4.数据库设计…………………………………………………………………………5
4.1E-R图设计……………………………………………………………………5
4.2逻辑结构设计………………………………………………………………7
4.3数据库的完整性……………………………………………………………9
5.数据库操作………………………………………………………………………10
6.实验小结…………………………………………………………………………13
参考文献…………………………………………………………………………………………14
1.1系统需求分析
1.1系统调查
随着现代书店管理制度的日渐完善,图书管理销售系统已经在各大书店、图书批发公司得到了普及。
传统人工管理文件档案存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不便。
随着科学技术的不断提高,计算机科学已进入人类社会的各个领域并发挥重要作用。
图书管理系统的内容对学校的决策者和管理者来说是至关重要的,图书管理销售系统具有查找方便,可靠性高,存储量大,保密性好,成本低等优点,极大得提高管理的效率,便于管理者更清楚地了解图书库存的情况。
故要求建立一个能够对图书管理过程中图书的进货与销售进行详细记录归档,并将这些数据进行逻辑上的统计融合,以便于管理者查看及分析的图书管理销售系统。
1.2用户需求
要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。
本系统从以下三个方面对用户需求进行了分析:
用户的信息需求:
销售人员能够通过查询图书销售系统全面掌握本系统各类主体信息,如供应商信息、图书信息、进货信息、退货信息等。
用户的处理要求:
当书店发生进货、销售、顾客退货等活动时,销售人员能够对库存图书中相关信息进行添加、删减和修改操作,进货表、销售表以及退货表能自动进行信息更新,同时系统能够根据销售情况输出统计报表。
对系统的适应性、通用性要求:
要求系统能够满足大部分书店对图书以及图书周转经营情况的管理需求。
1.3系统业务流程
业务流程图的符号说明如图1-1所示:
1、2、3、4、5、
系统中人员实体或单据实物或信息流处理数据存储
图1-1业务流程图图例
经详细调查后,为开发系统绘制的销售管理系统业务流程图如图1-2所示:
图1-2图书销售管理系统业务流程图
2.系统逻辑方案
系统分析的主要成果是系统的逻辑模型。
本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。
即在销售系统管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。
2.1数据流图(简称为DFD)
数据流图是组织中信息运动的抽象。
根据系统的需求,细化系统功能,将信息处理功能和彼此之间的联系自顶向下,逐层分解,把系统划分为几个不同的子系统,明确每个子系统所要完成的主要逻辑功能,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。
数据流程图的符号说明如图2-1所示:
外部实体处理数据流数据存储
图2-1数据流程图图例
销售系统总数据流图如2-2所示:
图2-2销售系统总数据流图
2.2数据字典(简称为DD)
绘制DFD,只是对数据处理和彼此之间的联系进行了说明。
为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典对数据流图中的各部分进行具体的定义,为系统的分析,设计及以后的实现提供有关元素一致性定义和详细的描述。
下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。
数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。
数据项的DD表列举如下:
数据项
系统名:
图书销售管理系统编号:
I001名称:
ISBN码别名:
数据项值:
类型:
字符型长度:
13个字节取值范围:
简述:
每本书都具有唯一的ISBN码,它是某本书的唯一标识符,如“9787302205906”唯一的标识“数据库系统原理与设计”这本书。
修改记录:
编写
日期
审核
日期
数据项
系统名:
图书销售管理系统编号:
I002名称:
书名别名:
数据项值:
类型:
字符型长度:
20个字节取值范围:
简述:
每本书都具有唯一书名标识,不同的书可以有相同的书名。
修改记录:
编写
日期
审核
日期
数据项
系统名:
图书销售管理系统编号:
I003名称:
供应商编号别名:
数据项值:
类型:
字符型长度:
10个字节取值范围:
简述:
每个供应商都具有唯一的供应商编号,它是某个供应商的唯一标识符,如“2011001”唯一的标识李勇这个供应商,一般情况是用前四个字符表示第几年加入的供应商,后三位为按序排列。
修改记录:
编写
日期
审核
日期
图5系统数据字典
注:
因限于篇幅,其余数据项的DD表在此略过。
3系统总体结构设计
3.1系统功能模块设计
对系统各项功能进行集中,分块,按照结构化程序设计的要求,可得出系统的功能模块图如下:
图3-1销售管理系统总的功能模块图
图书进货管理:
一次进货可进多本的图书,一本图书信息只能对应某一次进货。
每次进货后对库存表和销售信息进行修改。
②图书退货管理:
一次退货可以退一本书或多本图书。
每次退货后会增加退货表的记录。
同时也会引起库存表的修改和销售统计的改变。
③图书销售管理:
每次销售一本也可销售多本。
每次销售都会引起销售表的更改,从而也会引起库存量的减少和统计信息相应的改变。
④图书销售统计:
根据相应的销售信息和退货信息可以统计近段时间内的销售情况。
4数据库设计
4.1.1E-R图设计
在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。
可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。
E-R图由实体、属性、联系三部分组成。
图书销售管理系统总的E-R图:
图4-1图书销售系统总体E-R图
图书销售管理中所涉及到的主要实体集及其属性如下:
供应商provider:
(供应商编号pno,供应商名称pname,供应商地址paddress,供应商联系电话pphone,联系人person)
库存图书book:
(图书ISBM,书名bname,出版社press,作者auther,单价price,提供商编号pno,库存图书量num)
报价单quotation:
(供应商编号pno,ISBN编号,报价qprice)
4..1.2.逻辑结构设计
E-R图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系横式的属性和码。
对于实体间的联系我们分不同的情况讨论:
(1)若实体间的联系是1:
1,可以在两个实体转换成的两个关系中任意一个关系的属性中加入另一个关系的码。
(2)若实体间联系为1:
n,则在n端实体转换成的关系中加入1端实体转换成的关系码。
(3)若实体间联系为n:
m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。
由以上三点,可转换为关系模型。
每个关系的码用下划线表示。
供应商provider:
(供应商编号pno,供应商名称pname,供应商地址paddress,供应商联系电话pphone,联系人person)
报价单quotation:
(供应商编号pno,ISBN编号,报价qprice)
库存图书book:
(图书ISBM,书名bname,出版社press,作者auther,单价price,提供商编号pno,库存图书量num)
进货stock:
(进货编号sno,供应商编号pno,图书ISBN,书名bname,单价price,数量stock_num,总额,进货日期stock_time)
销售orders:
(销售编号ono,图书ISBN,书名bname,销售日期order_time,单价price,数量order_num,总价total_price)
退书return:
(退货编号rno,图书ISBN,书名bname,退货数量rnum,退还金额rprice,退书日期rtime)
基于以上关系模型,本系统中关于数据库表结构设计如下:
在服务器上用SQLSever2000建立名为book_sales的数据库。
其中包括以下表:
供应商表provider,报价单表quotation,库存图书表book,进货表stock,销售表orders,退书表return。
下面将具体介绍数据库中各个表的结构。
表4-1库存图书信息表
字段名
数据类型
字段长度
是否为空
ISBN
varchar
13
Notnull
bname
varchar
20
auther
varchar
10
press
varchar
40
price
numeric
5,2
pno
varchar
10
num
int
表4-2进货信息表
字段名
数据类型
字段长度
是否为空
sno
varchar
10
Notnull
pno
Varchar
10
ISBN
Varchar
13
bname
Varchar
20
price
numeric
5,2
stock_num
Int
total_amount
numeric
5,2
stock_time
smalldatetime
表4-3销售图书信息表
字段名
数据类型
字段长度
是否为空
ono
varchar
6
notnull
ISBN
Varchar
13
Bname
Varchar
20
Order_time
datetime
5,2
Price
numeric
50
Order_num
Int
4
Total_price
numeric
5,2
表4-4退货信息表
字段名
数据类型
字段长度
是否为空
rno
varchar
6
notnull
ISBN
Varchar
13
Bname
Varchar
20
Rprice
numeric
5,2
Rtime
datetime
Rnum
int
表4-5供应商信息表
字段名
数据类型
字段长度
是否为空
pno
varchar
10
notnull
pname
varchar
20
paddress
varchar
40
pphone
pphone
20
person
varchar
10
表4-6报价信息表
字段名
数据类型
字段长度
是否为空
pno
varchar
10
NOTNULL
ISBN
varchar
13
NOTNULL
qprice
numeric
5,2
4.2数据库的完整性
数据库的完整性是指数据的正确性和相容性。
数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。
本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。
5 数据库操作
createdatabasebook_sales
go
usebook_sales
createtableprovider(pnovarchar(10)notnull,
Pnamevarchar(20),
paddressvarchar(40),
pphonevarchar(20),
personvarchar(10))
createtablequotation(pnovarchar(10)NOTNULL,
ISBNvarchar(13)NOTNULL,
qpricenumeric(5,2))
createtablestock(snovarchar(10)notnull,
pnovarchar(10),
ISBNvarchar(13),
Bnamevarchar(20),
pricenumeric(5,2),
stock_numint,
total_amountnumeric(5,2),
stock_timesmalldatetimenull)
createtableorders(onovarchar(6)notnull,
ISBNvarchar(13),
Bnamevarchar(20),
Order_timedatetime,
Pricenumeric(5,2),
Order_numint,
Total_pricenumeric(5,2))
Createtablereturned(rnovarchar(6)notnull,
ISBNvarchar(13),
Bnamevarchar(20),
Rnumint,
Rpricenumeric(5,2),
Rtimedatetime)
createtablebook(ISBNvarchar(13),
Bnamevarchar(20),
pressvarchar(40),
authervarchar(10),
pricenumeric(5,2),
pnovarchar(10),
numint)
为系统创建存储过程向表中插入、修改、删除数据,建立存储过程实现单表查询、连接查询、嵌套查询、集合查询,创建视图,INSERT、DELETE、UPDATE触发器等。
为进货表创建存储过程showBidPrice,当输入书名时输出报价单,供操作人员选择
go/*进货*/
createprocedureshowBidPrice
@bnamevarchar(20)
as
declare@numint
select*fromquotation
whereISBN=(selectISBNfrombookwherebname=@bname)
execshowBidPrice'数据库原理'
为进货表创建触发器trig_orders_insert,当进货表中增加一条记录时触动触发器,更新库存图书中的图书数量及相关信息。
createtriggertrig_orders_insert
onstock
forinsert
as
declare@ISBNvarchar(13),@numint
select@ISBN=ISBN,@num=stock_numfrominserted
updatebook
setnum=num+@num
whereISBN=@ISBN
为退货表创建触发器trig_returned_inserted,当退货表中增加一条信息时,触动触发器,更新库存图书中的库存量及相关信息。
go/*退货*/
createtriggertrig_returned_inserted
onreturned
forinsert
as
declare@ISBNvarchar(13),@numint
select@ISBN=ISBN,@num=Rnumfrominserted
updatebook
setnum=num+@num
whereISBN=@ISBN
为销售表创建存储过程sale,当输入相应图书ISBN及数量时,若库存图书数量能够满足顾客所需,则更新库存图书的数量及相关信息,并且在销售表中插入相应的销售信息,若若库存图书数量不足顾客所需,则输出库存不足,仅剩多少本
go/*销售*/
createproceduresale
@onovarchar(10),@ISBNvarchar(13),@numint
as
declare@num1int,@pricenumeric(5,2),@bnamevarchar(20)
if(selectnumfrombookwhereISBN=@ISBN)>=@num
begin
updatebook
setnum=num-@num
whereISBN=@ISBN
select@Bname=bname,@price=pricefrombookwhereISBN=@ISBN
Insertintoordersvalues(@ono,@ISBN,@bname,getdate(),@price,
@num,@price*@num)
end
else
begin
select@num1=numfrombookwhereISBN=@ISBN
print'库存不足,仅剩'+cast(@num1asvarchar)+'本!
'
end
execsale'010','9787302205906',10
为图书销售统计创建视图Arrange,根据总的销售量输出排行榜前两位的图书及相关信息
go/*图书销售统计*/
createviewArrange
as
selecttop2Bname,ISBN,SUM(Order_num)销售量fromorders
groupbyBname,ISBN
orderbySUM(Order_num)DESC
为月销售额,月销售量创建存储过程date_time,输入你想查询的月份,输出该月的总销售额和销售量。
go/*月销售额,月销售量*/
createproceduredate_time
@mint
as
selectsum(Order_num)月销售量,SUM(Total_price)月销售额fromorders
wheremonth(Order_time)=@m
execdate_time1
6程序设计
本次数据库原理的课程设计虽然被安排在紧张的期末阶段,时间比较仓促,但在我们一小组同学的的共同努力下,已经顺利完成了。
通过做这次的课程设计,我受益颇多。
首先,通过本次课程设计,我对数据库原理的相关知识及其基本设计思想有了更进一步深入的了解。
在编程的过程中我认识到良好知识基础对学好数据库原理这门课程的重要性。
其次,在这次课程设计的过程中,我遇到了一些问题,例如,在实践过程中,我们通过创建存储过程,视图和触发器来完成其功能的实现。
在程序调试过程中我们失败了好多次。
本次的编程使我明白掌握良好的知识基础是我们写程序时信心的来源。
在编程的过程我们做到周到,严密,有耐心。
当然最后还是成功了,在完成的那一刻大家都很兴奋,这种喜悦是我们通过自身实践努力才能感受到的。
最后,本次课程设计是一个小组合作的过程,我们组先共同调查分析、数据建模、功能设计、选择数据库系统、选择数据库访问技术等5个阶段,然后再实际上机操作分工编写代码部分。
在这分工合作的过程中,我充分感受到了团队的力量,我们在讨论中理清思路、在遇到编程问题时互相讨论来找出问题。
这些是我一个人无法解决的。
通过这次学习我认识到了实际上机操作过程的重要性,只有通过自己亲自上机,才能完全了解到设计过程中有能出现的问题,这样才能达到本次课程设计让我们更进一步加深对数据库原理知识的了解的目的。
这次课程设计对我们每个人来说都获益匪浅,使我们将数据库原理从理论转化为实际,相信对我们以后的学习都会带来一定帮助,是非常宝贵的经验!
参考文献
【1】万常选、廖国琼、吴京慧等·《数据库系统原理与设计》·清华大学出版社·2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 销售 管理 系统