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