数据库课程设计 某书店图书进货销售系统精品文档.docx
《数据库课程设计 某书店图书进货销售系统精品文档.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 某书店图书进货销售系统精品文档.docx(21页珍藏版)》请在冰豆网上搜索。
数据库课程设计某书店图书进货销售系统精品文档
数据库原理课程设计
某书店图书进货、销售管理系统
学校:
广西大学
学院:
计算机与电子信息学院
班级:
网络131班
组长:
何鑫(1307300313)
组员:
方焕(1307300304)
指导老师:
叶进
一.需求分析...................................................................................................................2
1.1编写目的.......................................................................................................................................................2
1.2背景...............................................................................................................................................................2
1.3可行性分析…………………………………………………………………..............................................................3
1.4系统总体的功能需求…………………………………………………..................................................................3
二.概念结构设计........................................................................................................3
2.1概念结构设计步骤…………………………………………………………..........................................................4
2.2局部E-R图.................................................................................................................................................4
2.3整体E-R图………………………………………………………………………...............................................…....8
2.4物理结构设计…………………………………………………………………….....................................................9
三.数据库的实施和维护..............................................................................11
3.1建立数据库………………………………………………………………………...................................................11
3.2根据结构设计建表..……....……………………………………………............................................................12
3.3载入数据……………………………………………………………………...........................................................15
3.4创建存储过程…………………………………………………………….............................................................16
3.5查询与统计功能……………………………………………………...................................................................18
3.6触发器脚本………………………………………………………………..............................................................18
3.7视图脚本………………………………………………………………..................................................................19
3.8约束……………………………………………………………………...................................................................20
四.测试………………………………………………………………...............................21
五.总结………………………………………………………………………………………...........23
数据库开发与设计
一.需求分析
1.1编写目的
在科学飞速发展的今天,人们的视野越来越广,数据量急剧增加。
过去人们把数据存放在文件柜内,现在人们借助计算机和数据库技术科学的保管和管理大量的复杂数据,以便方便而充分的利用这些宝贵的信息资源。
本系统的设计目的就是为中小型书店提供一套运行稳定、安全可靠、操作方便的管理系统。
帮助书店销售业务处理日常工作业务,规范管理各项工作和操作流程。
从根本上改变以前那种旧的管理模式,真正提高管理和服务水平。
1.2背景
随着社会信息量的迅速增长,计算机处理的数据量不断增加,在我国,管理信息系统是计算机应用最广泛的领域之一。
随着我国经济建设突飞猛进,管理科学化与管理手段的现代化已经提到非常重要的地位,企、事业单位为了提高自身的管理水平和竞争能力,纷纷投入人力物力,开发适合本单位需求的管理信息系统。
中国的信息化沿着企业信息化和政府信息化这两根链条正在飞速的发展,在全国的各级教育单位中,都在进行管理方式的改革,由以前的人工管理方式在向现在的人工加计算机技术的过渡中,在现在的这种模式中可以很大的提高工作人员的工作效率,提高了正确性。
在传统模式下利用人工进行图书销售信息管理,存在着较多的缺点,如:
效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令书店管理者对图书的信息管理带来了很大困难,严重影响了书店的经营效率。
随着科学技术的不断提高,计算机科学日渐成熟,使用先进的计算机技术来代替传统的人工模式,来实现信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对图书销售信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。
这些优点能够极大地提高图书销售信息管理的效率,也是书店的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
1.3可行性分析
可行性分析的任务是明确开发应用项目的必要性和可行性。
必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。
但如果领导或管理人员对信息系统的需求很不迫切,或者条件尚不具备,就是不可行。
下面从系统的经济可行性、管理可行性、技术可行性等对本系统开发进行可行性分析,看可行与否。
(1)经济上的可行性
科学技术的发展和人们生活水平的不断提高,计算机的价格越来越能被很多人所接受,不管是在企业还是家庭,计算机的使用已经成为普遍现象,所以从用户经济方面考虑,本系统的开发不会有很大的困难和风险,且系统本身成本较低,不需要很多的开发费用和以后的维护费用。
(2)管理上的可行性
该书店图书销售管理系统是鉴于目前书店图书信息的剧增,读者市场对图书的呈爆炸性增长的前提下,书店对图书销售管理的自动化与准确化的要求日益强烈的背景下构思出来的,操作简单、方便,便于管理,并且书店有关管理者均同意该系统的开发、使用,相应的管理制度改革的时机也已成熟,规章制度齐全,提供的原始数据也很准确,所以,从管理上来说,是可行的。
1.4系统总体的功能需求
某书店需要一套信息管理系统辅助完成图书销售业务,该图书销售系统业务主要实现:
(1)图书类别、出版社、图书、仓库信息的管理;
(2)实现进货、入库管理;实现销售、出库管理;
(3)创建存储过程查询某段时间内各种图书的进货和销售情况;
(4)创建视图查询各类图书的库存总数;
(5)创建触发器当图书入库时自动修改相应图书的总量和存放仓库中该图书的数量;
(6)要求一单可以处理多种图书(比如销售设置销售单及其明细两个表);建立数据库相关表之间的参照完整性约束。
二.概念结构设计
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
将E-R模型转换为关系模型
转换原则:
一个1:
1联系可以转换为一个独立的关系,也可以与任意一段对应的关系模式合并。
如果转化为一个独立的关系模式,则与该联系相连的各个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一个实体对应的关系合并,则需要在该关系模式的属性中加入另一个关系的主码和联系本身的属性。
一个m:
n的联系可以转化为一个单独的关系模式,这个单独的关系模式的主码是两端实体的码,再加上联系的属性。
一个1:
n联系可以转化为一个独立的关系模式,也可以与n端的关系模式合并作如果与n端的关系模式合并,在n端的关系模式中加上另一端关系的码和联系属性。
2.1概念结构设计步骤
第一步是进行局部视图的设计:
由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。
因此我们们先逐一的设计分E-R图。
第二步是进行视图的集成:
各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,得到全局概念模型。
2.2局部E-R图
1.图书销售系统E-R图
出版社
进货
书店
处理
库内图书
2.书店-库内图书“处理”联系细化E-R图
书店
书店
书店
销售
退书
处理
库内图书
库内图书
库内图书
3.库内图书实体属性图
图书ISBN码
库内图书
作者
出版社
图书信息
图书名
图书种类
库存量
4.供应商实体属性图
出版社
电话
出版社地址
出版社名称
联系人
5.供应图书报价-书店-供应商“进货”联系的属性图
图书ISBN编码
进货数量
进货日期
进货价格
进货编号
出版社
书店
进货
6.书店-库内图书“销售”联系的属性图
销售数量
销售时间
图书ISBN编码
销售价格
销售编号
库内图书
销售
书店
7.书店-库内图书“退书”联系的属性图
退书时间
退书数量
退书信息
图书ISBN编码
退书编号
库内图书
书店
退书
账户
姓名
密码
管理员
8.“管理员”属性图
2.3整体E-R图
2.4物理结构设计
出版社信息表
字段名
数据类型
字段大小
是否允许空
备注
出版社
char
20
N
主键
出版社地址
char
20
N
电话
Char
12
N
联系人
Char
10
N
库内图书信息表
字段名
数据类型
字段大小
是否允许空
备注
图书ISBN编码
int
N
主键
图书种类
Char
10
N
图书名
Char
20
N
出版社
Char
20
N
外键
库内图书量
int
Y
作者
Char
20
N
图书信息
char
200
Y
销售信息表
字段名
数据类型
字段大小
是否允许空
备注
销售编号
int
N
主键
图书ISBN编码
int
Y
外键
销售时间
datatime
N
销售数量
int
N
销售价格
money
N
进货信息表
字段名
数据类型
字段大小
是否允许空
备注
进货编号
int
N
主键
出版社
int
Y
外键
图书ISBN编码
int
N
外键
进货日期
datatime
N
进货价格
money
N
进货数量
int
N
退书信息表
字段名
数据类型
字段大小
是否允许空
备注
退书编号
Char
20
N
主键
图书ISBN编码
Char
14
N
外键
退书时间
Data
N
退书数量
Money
N
退书信息
Integer
N
管理员信息表
字段名
数据类型
字段大小
是否允许空
备注
姓名
Char
20
N
编号
Char
10
N
主键
密码
char
10
N
三.数据库的实施和维护
3.1建立数据库
根据以下代码建立数据库:
CREATEDATABASE书店进货销售管理系统
ON
(NAME=order_dat,
FILENAME=‘F:
\mssql\data\orderdat.mdf’,
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME=order_log,
FILENAME=‘F:
\mssql\log\orderlog.ldf’,
SIZE=10MB,
MAXSIZE=30MB,
FILEGROWTH=5MB)
3.2根据结构设计建表
CREATETABLE出版社信息表(
出版社char(20)primarykey,
出版社地址char(20),
电话char(20),
联系人char(20))
CREATETABLE图书类别表(
类别号char(20)primarykey,类
别char(20),
类别信息char(20),
备注char(20))
CREATETABLE图书信息表(
图书号char(20)primarykey,
图书名char(20),
出版社char(20)CONSTRAINTFK_1foreignkeyreferences出版社信息表(出版社),
类别号char(20)CONSTRAINTFK_2foreignkeyreferences图书类别表(类别号),
作者char(20),
备注char(20))
CREATETABLE进货订单(进货单号char(20)
primarykey,
进货者char(20),
备注char(20))
CREATETABLE销售订单(
销售单号char(20)primarykey,
购买者char(20),
备注char(20))
CREATETABLE进货详情表(
进货项号char(20)primarykey,
进货单号char(20)CONSTRAINTFK_3foreignkeyreferences进货订单(进货单号),
图书号char(20)CONSTRAINTFK_4foreignkeyreferences图书信息表(图书号),
图书数量char(20),
进货日期date,
进货价格char(20),
备注char(20))
CREATETABLE销售详情表(
销售项号char(20)primarykey,
销售单号char(20)CONSTRAINTFK_5foreignkeyreferences销售订单(销售单号),
图书号char(20)CONSTRAINTFK_6foreignkeyreferences图书信息表(图书号),
图书数量char(20),
销售日期date,
销售价格char(20),
备注char(20))
CREATETABLE库存信息表(
图书号char(20)CONSTRAINTFK_7foreignkeyreferences
图书信息表(图书号),
图书数量char(20),
入库信息char(20),
出库信息char(20),
备注char(20),)
3.3载入数据
(1)图书类型
(2)出版社
(3)图书信息表
(4)仓库
(5)进货、入库
(6)销售、出库
(7)图书类别视图
3.4创建存储过程
(1)某段时间内进货查询
CREATEprocedurebuysearch
@起始时间date,@结束时间date
asbegin
SELECT*
from进货详情表
where进货日期>=@起始时间and进货日期<=@结束时间
end;
(2)某段时间内的销售查询
CREATEproceduresellsearch
@起始时间date,@终止时间date
asbegin
SELECT*
from销售详情表
where销售日期>=@起始时间and销售日期<=@终止时间
end;
3.5查询与统计功能
--每月的销售总额和销售总量
CreateProcQueryBook
@dateCHAR(10)
As
SelectSum(SellNum)asTotalNuns,Sum(Sprice)asTotalSales
FromSellOut
WhereDateDiff(mm,@date,SDate)=0
--每月销售的排行榜
CreateProcBookBack
@datesmalldatetime
As
Selecttop10b.Bname,s.SellNum
FromBookb
innerjoinSellOuts
onb.BookID=s.BookID
--按月查卖了多少本书
CreateProcQueryMonth
@datesmalldatetime
As
Begin
Selectb.Bname,Sum(b.Bnum)
FromBookasb
innerjoinSellOutass
onb.BookID=s.BookID
WhereDatediff(mm,@date,s.SDate)=0
Groupbyb.Bname
End
3.6触发器脚本
--使用触发器,实现新书在书库中的插入工作和图书数量修改
CreateTrigger进货On进货详情表
FORInsertAs
declare@nintSelect@n=图书号frominserted
declare@numintSelect@num=图书数量Frominserted
Update库存信息表set图书数量=图书数量+@numWhere图书号=@n
CreateTrigger销售On销售详情表
FORInsertAs
declare@nintSelect@n=图书号frominserted
declare@numintSelect@num=图书数量Frominserted
Update库存信息表set图书数量=图书数量-@numWhere图书号=@n
3.7视图脚本
CreateViewSBook
As
SelectPublisher,BookID,Bname,20-BnumasNum
FromBookwhereBnum<5--小于本时就定本书
GroupbyPublisher,BookID,Bname,20-Bnum
CreateProcSelectBook
As
Begin
Select*FromSBook
InsertIntoBuyIn
Selectv.BookID,GetDate(),v.Price,v.Num
FromSBookasv
End
--建立查询供应商信息的视图
createviewProvider_view
as
selectProviderID,Paddress,Pphone,Pcontacter,Pname
fromProvider
--建立查询书籍信息视图
createviewBook_view
as
selectBookID,ProviderID,Bkind,Bname,Bpublish,Bnum
fromBook
四.测试
4.1测试的目的
1、软件测试是为了发现缺陷而执行的过程。
2、测试是为了证明程序中的错误,而不是证明程序中无错误。
3、一个好的测试用例指的是它可能发现至今尚未被发现的缺陷 。
4、一次成功的测试指的是发现了新的软件缺陷的测试。
这种观点主要目的:
测试要以查找缺陷为中心,而不是为了演示软件能够正确运行。
但是发现缺陷并不是软件测试的唯一目的。
通过分析缺陷产生的原因和缺陷的分布特征,可以帮助程序员发现软件开发过程的不足,以便及时改进。
项目名称:
某书店图书进货、销售管理系统
(1)程序运行环境已经正确设定。
是
程序代码检查:
(1)程序单位首部有程序说明和修改备注。
是
(2)变量、过程、函数命令符合规则。
是
(3)程序中有足够的说明信息。
是
(4)修改注释符合要求。
是
(5)类库的使用符合要求。
是
画面及报表格式检查:
(1)画面和报表格式符合规定需求。
是
(2)程序命名符合格式需求。
是
(3)画面和报表的字段位置和宽度与设计文档一致。
是
功能测试:
(1)多画面之间切换正确。
是
(2)功能键、触发键、按钮、菜单、选择项功