文档内容
数据库开发示例——图书管理系统
1 系统需求分析
当今社会,仓储物资管理系统以规范的物资管理流程和采购价格系数分析为
核心,通过对物资出入库信息的过程控制,实现物资管理的规范化和程序化,从而
降低物资采购价格,提高工作效率。
目前,很多企业都在进行企业信息化建设,而这种信息化建设不仅仅是计算
机技术的革新,而是一种管理创新、思想创新,也就是说在企业信息化建设的同
时,对企业的的各项管理业务及活动的处理过程进行改造,即业务流程再造
(BPR--Bussiness Process Reengineering),为何要把业务流程再造提到这
样一个高度,因为,业务流程的合理化是信息系统发挥作用的前提;计划和市场
是业务流程设计的出发点;价值链是衡量业务流程的尺度;增加效益是业务流程
合理化的目的。
物资管理是企业管理非常重要的一环。由于物资材料储备量大、管理种类
繁多,供应渠道复杂,使得物资供应和管理变得十分复杂和困难。只有建立完善
的计算机物资管理系统才能有效管理物资的供、管、用三方面的工作,达到保障
供应,降低库存,加速资金周转,加强物资使用监管,提高物资管理劳动生产率,
促进企业可持续的发展。物资管理水平的高低直接影响到整个企业的生产管理水
平。采用计算机仓储物资管理系统,具有以下优点:(1)及时掌握企业经营信息,
提高管理水平,提升企业的分析、决策能力。(2)可以减轻工作人员工作量,将其
从大量的繁琐工作中解放出来,全力提高工作效益和工作质量,提高工作效率。
(3)有效管理库存,合理控制资金占用,加快资金周转,提高经济效益。(4)通过
对材料消耗的控制,降低生产成本。(5)信息准确及时,克服了人为造成的遗漏和
损失。
1.1系统功能需求
如何描述一个业务过程是仓储物资管理系统的基础,首先,抽象出企业有哪
些业务过程,哪些业务过程适合于仓储物资管理,然后,对业务过程进行分析描
述。对业务流程的描述主要包括:每一个业务过程的流程如何?是否规范?哪些
环节可完全用计算机实现?哪些不能?哪些只能辅助实现?若用计算机实现,需
输入哪些数据?需进行哪些处理?需输出什么?相关数据的入口在哪里?数据
的所有者是谁?其他人员和这些数据的关系是什么?通过这几个方面的描述来
唯一确定一个业务过程。由此看来,我们可把一些业务过程看作一些实体,该实
体包括如下几个属性:流程描述、业务流程图、数据流图、输入数据、输出数据、功能、事件等。1.流程描述:用文字详细描述流程中的每一个业务环节,使具体的业
务员和计算机开发人员看了之后,不发生任何歧义,每个业务环节的复杂度要适
中。它是后面功能和事件描述的基础,是详细设计功能模块划分的依据。每个业
务过程可能有很多业务环节,每个业务环节可能由不同岗位上的人来做,我们把
管理中涉及到的人员划分角色,每一种角色分担一项具体的工作,任务明确;每
一种角色对数据的属性也是各不相同的;对数据的操作权限也是各不相同的。2.
业务流程图:根据业务流程描述,画出对应的业务流程图,是业务流程描述的图
形表示,使业务流程更加直观明了。 3.数据流图:从数据流动的角度描述该业
务中的数据输入,数据的处理以及数据输出。4.输入数据:描述本系统中的输入
数据,输入数据主要分为三类,(1)外界数据;(2)内部数据;(3)外系统的数据。
5.输出数据:描述本系统中的输出数据,输出数据主要分为三类,(1)外界数据;
(2)内部数据;(3)外系统内存贮的数据。它是数据库设计,报表设计和查询设计
的依据。 6.功能:主要是管理系统出入库信息的。7.事件:用户在使用该系统时
触发功能所引发的时间。物流控制模型图说明如下: 1)入库:依据是入库验收
单备注;控制是资金;目的是允许出库。2)出库:依据是库存;控制是库存、资金;
目的是允许出库。
通过对物资供应部门业务的了解和以上物流控制模型的分析,物资供应管理
的主要业务过程有:仓储管理(1入库、2出库、3库存、4台帐管理)在物资供应管
理工作中涉及的角色主要有:系统管理员,操作管理员,用户。
本系统主要面向的用户有系统管理员、操作管理员管理员、用户。下面分角色
对该系统的不同操作范围做说明。
登录:
(1)身份验证登录包括:管理员登录和用户登录。管理员分为系统管理员和普
通管理员,分别通过不同的用户名和密码进入仓储物资管理系统管理界面(管理
员有不同的权限,通过权限判别进入)。
系统管理员、操作管理员共有操作权限,系统管理员还有系统维护权限。
(2)物资入库录入:用来记录入库的物资。
(3)物资出库录入:用来记录出库的物资。
(3)物资出库录入:用来记录出库的物资。
(4)物资台帐管理:用来管理出入库所进行的台帐记录。(5)物资管理流水帐:用来管理出入库所进行的流水帐记录。
(6)物资统计报表:用来统计所有能写入输出的物资。
(7)物资管理流水帐输出:查看,打印流水帐。
(8)物资管理台帐输出:查看,打印台帐。
(9)物资库存信息汇总:库存信息。
(10)物资库存信息查询:查询库存的信息。
(11)物资库存信息输出:打印库存的信息。
系统管理员操作权限:
(12)物资维护:修改物资。
(13)打印机设置:设置打印机。
(14)帐号管理:增加删除帐号。
读者操作权限:
(15)物资入库信息查询:查询入库的信息。
(16)物资出库信息查询:查询出库的信息。
(17)物资入库信息输出:打印入库的信息。
(18)物资出库信息输出:打印出库的信息。
(19)注册用户:申请新用户。
1.2数据需求
仓储物资管理系统中的数据流主要贯穿于管理工作中的业务操作流程之中,
涉及到出库,入库,帐单,流水帐,库存等操作。
系统
管理员
帐出单入库
用户
库存仓储物资管理系统中的数据流程主要描述如下:
系统管理员:将部分参数信息进行录入处理,然后保存信息到数据库中,同时
可以对这些库信息进行查询、修改和删除处理。系统管理员对出入库信息、库存
信息等还有统计、查询功能。且可以修改口令,维护管理员信息。
普通管理员:通过操作各项事务——出入库录入,库存录入及其查询。管理员
可以重新登录,可以修改口令。
读者:只能查询信息
1.3 数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素
的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。由仓储物资管理
系统的数据流图得到数据字典,举例如下:
(1)物资入库
描述物资进入仓库,并将其加入数据库。
(2)物资出库
描述物资离开仓库,并将其加入数据库。
(3)物资库存
描述物资进入仓库和出仓库的总和。
2 系统总体设计
2.1系统总体结构设计
图书管理系统主要是由物资信息录入,物资信息查询,库存管理,台帐管理
报表输出管理,系统维护,系统设置,帮助等主要模块构成。
本系统的结构功能图:仓储物资管理系统
物资 物资 库存 台帐 报表 系统 系统 帮助
信息 信息 管理 管理 输出 维护 管理
录入 查询 管理
物 物 物 物 库 库 库 库 库 物 物 物 物 物 物 打 注 帐 更 注 退
资 资 资 资 存 存 存 存 存 资 资 资 资 资 资 印 册 户 改 销 出
入 出 入 出 信 信 信 信 信 入 出 库 管 管 维 机 用 管 密 置
库 库 库 库 息 息 息 息 息 库 库 存 理 理 护 设 户 理 码
信 信 信 信 汇 查 查 查 查 信 信 信 流 台 置
息 息 息 息 总 询 询 询 询 息 息 息 水 帐
录 录 查 查 输 输 输 帐 报
入 入 询 询 出 出 出 输 表
出
帮助
帮助
关于
3.2系统数据模型设计
3.2.1 E-R图
E-R图提供了表示实体、属性和联系的方法。
* 实体: 用矩形表示,矩形框内写明实体名
* 属性:用椭圆型表示,并用无向边与其相应实体连接起来
* 联系:用菱形表示,菱形框内写明联系名,并用无向边与其有关实体
连接起来,同时联系的类型。
本系统采用E-R图(实体-关系图)的方法进行数据库概念结构设计。系统E-R图如下所示:
物资流水帐 物资
流 水
帐
出
库
入库
物资入库 物资出库
系统各实体E-R图(部分):
(1)物资入库实体E-R图:
入库编号 入库日期 入库数量
物资入库
经办人 总价 备注
(2)物资出库实体E-R图:
出库编号 出库日期 出库数量
物资出库
经办人 总价 备注(3)物资实体E-R图:
物资编号 物资名称 规格
物资
产地 单价 厂家
(4)物资流水帐E-R图:
流水帐号 日期
物资流水帐
领料人 领料部门
3.2.2 数据表
本系统的数据库采用了大量的数据表:
(1)物资流水帐信息表(物资入库)
该表共有流水帐号,日期,领料人,领料部门,一共4个字段,其中流水帐号
为主键。
(2)物资入库信息表(t_reader)该表共有读者借阅证号(rcode)、读者姓名(rname)、读者证件号(读者学
号/工作人员工号)(rstucode)、读者性别(rsex)、读者部门(rbum)、读者类型
(rtype)、已借数目(rlend)、读者借阅状态(rgrade)、违章状态(rbilldue)、读者
初始密码(rpassword)、读者照片(rphoto)等多个个字段,其中读者借阅证号
(rcode)为主键。该表记录了所有读者的基本信息。
(3)图书编号信息表(t_bookcode)
该表共有图书财产号(初始状态下与图书条码号一致)(bproperty)、图书条
码号(bbarcode)、图书索书号(bextort)、在馆状态(bisnot)、备注(bremarks)等
五个字段,其中图书财产号(bproperty)是该表的主键。该表记录了馆中每一本
图书的基本信息,与t_book表以图书索书号(bextort)相关联,构成图书的所有
基本信息。
(4)图书预约信息表(t_bbookget)
该表共有预约号(bbookid)、读者借阅证号(rcode)、图书索书号(bextort)、
预约日期(bookdate)、到馆日期(arrivetime)、截止日期(endtime)、保留天数
(keepdays)、到馆状态(barrive)、处理状态(bstate)等多个字段。该表记录了预
约图书的相关信息。(5)图书借阅信息表(t_borrow)
该表共有图书条码号(bbarcode)、读者条码号(rcode)、借出日期
(lenddate)、应归还日期(expdate)、实际归还日期(returndate)、超期天数
(surpassdays)、是否已续借(bagain)、归还状态(retsta)等多个字段,其中自动
编号为主键。该表记录了读者借阅、归还等基本信息。
(6)罚款信息表(t_bfine)
该表有读者借阅证号(rcode)、图书条码号(bbarcode)、应归还日期
(expdate)、实际归还日期(returndate)、处理日期(donedate)、应罚款金额
(mustfine)、实际罚款金额(reality)、罚款原因(freason)、处理状态
(handinstate)、罚款处理人(hander1)、收款人(hander2)等。
(7)罚款缴纳信息表(t_bfined)该表有读者借阅证号(rcode)、图书条码号(bbarcode)、应归还日期
(expdate)、实际归还日期(returndate)、处理日期(donedate)、应罚款金额
(mustfine)、实际罚款金额(reality)、罚款原因(freason)、处理状态
(handinstate)、罚款处理人(hander1)、收款人(hander2)等。该表用于提取读者
当前缴纳罚款的情况,便于显示、打印等,减少了写烦琐SQL语句所带来的困难。
(8)归还信息表(t_bborrow)
该表共有图书条码号(bbarcode)、读者条码号(rcode)、借出日期
(lenddate)、应归还日期(expdate)、实际归还日期(returndate)、超期天数
(surpassdays)、是否已续借(bagain)、归还状态(retsta)等多个字段。该表记录
了读者归还的基本信息。该表主要用于暂时存放读者归还记录信息,便于在归还
窗口显示当前读者的归还信息。
(9)管理员信息表(t_manager)该表编号(id)、管理员编号(mcode)、管理员姓名(mname)、管理员密码
(mpassword)、权限(permission)等字段。该表记录了管理员的相关信息。
(10)阅览信息表
该表共有阅览编号(readid)、借阅证号(rcode)、到馆时间(rarrtime)、图书
馆地(baddress)等字段,其中阅览编号(readid)是该表的主键。该表记录了读者
阅览信息。
(11)图书经费统计信息(t_bookfund)
该表有年份(yeartime)、图书种数(booknum)、图书总册数(booksum)、图书
总经费(bookfund)等字段,年份(yeartime)是该表的主键。该表记录了每年入馆
图书量和图书经费。
(12)借阅参数表1(t_parmaxbor)该表共有读者类型编号(readertypeid)、读者类型(rtype)、最大借阅图书本数
(maxnum) 和 最 大 借 阅 天 数 (maxdays) 四 个 字 段 , 其 中 读 者 类 型 编 号
(readertypeid)是该表的主键。该表记录了读者借书时用到的部分参数。
(13)借阅参数表2(t_parmeter)
该表字段有超期每天罚款(pmoney),丢失默认赔偿倍数(lostmultiple)、预
约到书保留天数(keepdays)、污损每处罚款 (pruin)、读者初始密码
(rpassword)、图书条码号(producebbarcode)、读者条码号(producercode)。该
表记录了读者借书时用到的部分参数。其中图书条码号(producebbarcode)、读
者条码号(producercode)用于生成新的图书条码号、读者条码号。
(14)借阅信息统计表(t_countborrow)
该表字段有索书号(bextort)、条码号(rcode)、借阅次数(bbcount)等字段。可以用于统计在一段时间内按索书号(bextort)统计的图书借阅次数,或者按借阅证
号(rcode)统计的读者借阅次数。
(15)馆藏地信息表(t_baddress)
该表字段有馆藏地编号(aid)、馆藏地名称(baddress)等字段。可以用于保存图
书馆各馆藏地的信息。
(16)部门信息表(t_department)
该表字段有部门编号(aid)、部门名称(rbum)等字段。可以用于保存读者来自各
部门的信息。
(17)借阅等级信息表(t_rgrade)
该表字段有等级编号(gid)、借阅等级(rgrade)等字段。可以用于保存读者借阅
等级的信息。3.2.3此模块设计遇到的问题及解决方案
(1) 图书相关基本信息表的设计问题
每一种图书都有不同的基本信息,但是每种图书有不同的条码号、在馆
状态等属范式,产生了很大的冗余。为了使数据不冗余,把图书基本信息分
成两张表——图书基本信息表t_book和图书编号信息表t_bookcode存储,
避免图书基本信息重复存储的问题。
(2) 借阅信息表的设计问题
要对图书流通中最重要操作——借阅信息登记,用一张表来存储,如果将借阅记
录、归还记录分成两张表来设计,而这两张表的结构是一致的,在老师的指导下,
我增加了一个字段——归还状态,避免了表结构重复,数据重复存储的问题。
(3)参数设置
将参数以表格数据的形式表示出来,便于在前台维护这些参数。如果在
程序中静态地设定这些参数,很难满足使用单位的需要。