药店药品管理系统数据库总报告资料Word格式.docx
《药店药品管理系统数据库总报告资料Word格式.docx》由会员分享,可在线阅读,更多相关《药店药品管理系统数据库总报告资料Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
(1)药品购进和退订信息查询
(2)买药人员信息查询与统计
(3)药品存储信息查询与更新
(4)药品销售情况统计与药品售退情况查询
(5)盈利查询与统计
(6)药品剩余数量查询与缺货药品查询及统计
三、总体安全要求
(1)保密性。
机密或敏感数据在存储处理传输过程中应保密,并用户只有在授权后才可以访问。
不同的用户只能访问系统收授权的视图,这取决于其授权级别
(2)完整性。
保证系统中的信息处于一种完整和未受损害的状态,防止因未授权访问,部件故障或其他错误而引起的信息篡改,破坏或丢失。
药品管理系统的信息对不同用户应有不同访问权限,购药人员只能查询库存信息,而库存的更新应只能库存管理员进行等等。
(3)可靠性:
保障系统在复杂的网络环境下提供可持续、可靠的服务
1.2业务分析
药品管理系统的业务应有以下3个:
(1)药品购进(退订)业务:
购药人员根据售药处对药品的需求以及库存信息,制定药品的需求单并从制药商处购进药品,并将合格药品单送往库存管理员进行药物存储,将不合格药品单送往制药商处进行退货。
(2)存药业务:
库存管理员负责药品的出入库。
根据合格购货药品单,对新购进的药品进行分类并将药品入库;
根据取药单(退药单)将药品出库(入库)并修改库存信息和流水账目,若药品缺货,将缺货药品信息单传给购药人员。
(3)售药业务:
买药人将取药单(退药单)交给售药处,确认后,将药品售出(退回),并将取药单(退药单)交给库存管理员
业务流程图如下:
(1)药品购进业务流程图
(2)存药业务流程图
(3)售药业务流程图
1.3数据流程图
系统全局数据流图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,他可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况,它有抽象性、概括性、层次性三大特点。
经过对药店中药品的销售业务调查、数据的收集处理和信息流程分析,明确了该系统的主要功能,分别为
(1)药品购进和药品退订信息查询;
(2)买药人员信息查询与统计;
(3)药品存储信息查询与更新;
(4)药品销售情况统计和药品被退情况查询;
(5)盈利查询与统计;
(6)药品剩余数量查询与缺货药品查询及统计。
如图,即为药品销售系统的全局数据流图,即第一层数据流程图。
药品发货单
不符合
存储清单
符合
库存药品清单
返回重新清点
决定退药
退药单
出库单
退药单据
取药单
取药单据
退货单
商品不合格单
入库单
制药商
1.1
检验药品
1
库存台账
1.3
退货
2
流水账
2.3
退药
2.1
售药
买药人员
2.2
库存管理
3.1
确认药品
3.2
药品进库
药品订货单
药品合格单
1.2
系统局部数据流图
全局数据流图从整体上描述了系统的数据流向和加工处理过程,为了清楚地描述系统数据的流向和加工处理的每个细节,在全局DFD基础上,对全局DFD中的某些局部进行单独放大,进一步细化,过程如下:
药品销售过程主要分为三个业务,第一个业务为药品购进业务,第二个业务为存药业务,第三个业务为售药业务。
针对三个业务得到第二层数据流程图如下:
(1)药品购进业务流程图
不符合
存储清单
1.4数据字典
由于数据流程图表达不够准确、具体,只有当数据流程图中出现的每一个成分都给出定义之后,才能完整、准确地描述一个系统,因此,有必要建立数据字典来对数据流程图中的各个元素作出详细的说明。
数据字典通常包括数据项、数据结构、数据存储和处理过程5个部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
(1)数据项
该系统设计的数据项共有24个,如下表:
数据项编号
数据项名
存储结构
别名
取值约束
DI-1
Dno
char(5)
药品编号
DI-2
Dname
char(20)
药品名称
DI-3
Dclass
char(8)
药品分类
DI-4
Dguige
char(10)
药品规格
DI-5
Dbrand
药品品牌
DI-6
Dprice1
float
进药单价
DI-7
Dprice2
卖药单价
大于零
DI-8
Pno
买药人编号
DI-9
Pname
买药人姓名
DI-10
Page
int
年龄
1-255
DI-11
Psex
char
(2)
性别
男女
DI-12
Pphone
char(11)
联系电话
DI-13
Paddress
住址
DI-14
Mno
制药商编号
DI-15
Mname
制药商名称
DI-16
Mplace
公司地点
DI-17
Mphone
DI-18
Memail
char(15)
联系网址
DI-19
Lname
柜台名称
DI-20
Lno
柜台编号
DI-21
Quantity
药品数量
DI-22
Time_SD
smalldatetime
处理时间
DI-23
Supply
char(4)
订退方式
订购、退订
DI-24
Deal
售退方式
售出、退回
数据结构
该系统的数据结构共有7个,具体见下表:
数据结构编号
数据结构名
含义说明
组成
DS-1
Drug
药品信息
DnoDnameDclassDbrandDprice1Dprice2
DS-2
Patient
买药人信息
PnoPnamePagePsexPphonePaddress
DS-3
Maker
制药商信息
MnoMnameMplace
DS-4
Storage
柜台信息
LnoLname
DS-5
Order_Back
药品退订信息
MnoDnoTime_SDQuantitySupply
DS-6
Buy_Back
药品退售信息
PnoDnoTime_SD
QuantityDeal
DS-7
Stored
药品存储信息
DnoLnoQuantity
2.概念设计部分
2.1分析过程
根据之前的数据流图和数据字典,我们提取出实体、实体的属性、标识实体的码、确认实体之间的联系及其类型。
定义如下:
药品:
[药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价‘买药单价]
买药人员:
[买药人编号、买药人性命、性别、年龄、联系电话、住址]
制药商:
[制药商编号、制药商名称、公司地位、联系电话、联系网址]
柜台信息:
[柜台编号、柜台名称]
药品退订:
[药品编号、制药上编号、药品数量、处理时间、退订方式]
药品售退:
[药品编号、买药人编号、药品数量、处理时间、售退方式]
药品储存:
[药品编号、柜台编号、药品数量]
2.2子模块ER图
2.2.1存药子模块ER图
2.2.2售药子模块ER图
2.2.3购进药品子模块ER图
2.3全局ER图
3.逻辑设计部分
3.1数据库关系模式定义描述
1.Drug(药品)
属性名
数据类型
别名(注释)
可否为空
主键/外键
取值范围
否
主键
Dbrang
floar
大于0
买药单价
2.patient(买药人)
1-150
nan、nv
联系号码
进住址
3.Maker(制药商)
Mpalce
公司地址
Meail
联系邮箱
4..Storage(存储位置)
存储编号
存储位置
不小于0
5,DOrder(订药)
外键(主键之一)
订购
6.Dback(药品退订)
退订
7.Dbuy(买药)
买药时间
售出
8、BBack(退药)
9.Stored(库存)
3.2用户子模式——视图设计
1、DM_P(订药)
DBrand
Mpalace
char)11)
Meamil
处理方式
Qauntity
数量
2.DM_M(药品退订)
Dpricel1
药品进价
Dpricel2
药品售价
3.PD_M(买药)
买药人名字
电话
地址
4、DS_M(药品存储)
4.物理设计部分
4.1目标与任务
1.确认数据库的物理结构,主要指存取方式和存储结构
2.对物理结构进行评价,评价重点是时间和空间效率数据存取方法
4.2数据存取方法
4.2.1基本表索引
1.由于基本表Stored的主码Dno,Lno经常在查询条件中出现,且它们更新平率较低,所以考虑在这组属性上建立作为唯一索引
2.由于基本表DOrder的主码Dno,Mno经常在查询条件和链接操作中出现,所以考虑在这组属性上建立作为唯一索引
3.由表Dbuy的主码Dno,Pno取值唯一,经常在查询条件中出现,且她们更新平率较低,所以考虑在这组属性上建立作为唯一索引
4.2.2系统模块分析
1、药品基本信息的查询与更新(插入、删除、修改)操作
2、制药商基本信息的查询与更新(插入、删除、修改)操作
3、买药人基本信息的查询与更新(插入、删除、修改)操作
4、药品存储信息的查询与更新(插入、删除、修改)操作
5、药品盈利情况统计查询
6、买药人购买药品信息的查询
7、管理员对买药人购买药品和退回药品信息的查询
8、管理员对购药人员订购药品和退订药品信息的查询
4.2.3系统模块分析
四、程序源码与运行结果
1表和视图的建立
1.1创建购药记录表
createtableDBuy
(Pnochar(5)notnull,
Dnochar(5)notnull,
Quantityintnotnull,
Time_SDsmalldatetime,
Dealchar(4)notnull,
createnonclusteredindextimeidxonDBuy(Time_SDDESC),
primarykey(Pno,Dno),
foreginkey(Pno)referenceParient(Pno),
forgrinkey(Dno)referenceDrug(Dno),
check(Quantity>
'
0'
),
check(Deal='
售出'
)
);
1.2创建药品存储表
createtableStored
(Lnochar(5)notnull,
primarykey(Lno,Dno),
foreginkey(Lno)referenceStorage(Lno),
);
1.3创建买药视图
createviewDM_P
as
selectDname,Dguige,Drand,Mname,Mplace,Mphone,Memail
fromDrug,Maker,Dorder
whereDrug.Dno=Dorder.DnoandMaker.Mno=Dorder.Mno
withcheckoption
1.4创建退药视图
createviewDM_M
selectDname,Dguige,Dbrand,Dprice1,Dpricel2,Mname,Mplace,Mphone,Memail
fromDrug,Maker,DBack
whereDrug.Dno=DBack.DnoandMaker.Mno=DBack.Mno
2数据插入
2.1向Dorder表中插入一个订购记录
insertintoDordervalues('
M0001'
'
D0009'
150'
2014-10-23'
订购'
5.2.2向Drug表插入一个新的药品记录
insertintoDrugvalues('
D0024'
维生素'
125s*36粒'
太极'
1.50,2.00)
3数据查询
3.1全药品存储位置及库存查询
3.2查询在2004-8-21退订的药品数量大于80的药品的详细信息
3.3查询在2004-8-05前买药的病人的姓名和地址
4数据统计
4.1统计在2014-8-21卖出的各药品数量
4.2统计编号为"
P0001"
的病人购买各药品的总数量
5数据修改
5.1将Drug表中编号为D0001的药品的名称由666感冒灵更改为999感冒灵
5.2修改存储在二层左位置的所有药品的库存数量为100
五、课程设计总结与感悟
在学习数据库这门课程时,感觉学到的知识还是掌握了的,并且以为自己已经理解了,但真正通过一个课程设计去应用这些知识的时候才发现,会遇到很多困难,并且学到的知识自己其实并不能熟练的应用,将知识应用到实际的工作并没有很好的完成。
在课程设计遇到了许多问题,例如:
插入数据时,提示插入的数据长度不符合要求,原因是未考虑到汉字占两个字节,char[]的长度设置过小,解决办法是修改长度即可
无法插入数据到一个表中,总是提示外键约束错误,原因是因为该表中有外键,而外键所在的表未插入数据,所以无法插入数据到该表(插入的外键值不存在)。
解决方法是先将外键所在表的数据插入,在插入该表的数据。
数据库建立在一个账号上,只有一个人可以操作,显得不方便。
可以通过授权GRANT给另一个账号,就可以两个账号进行操作,方便了许多。
问题和困难还遇到过许多,在这不一一列数。
在课程设计的过程中,经历了许多的相关设计工作,也学习到了许多书本上有和没有的知识,更重要的是,通过不断的实践和自学,不断发现问题,思考问题,进而解决问题,有效的提