收藏 分享(赏)

药店药品管理系统数据库总报告资料.doc

上传人:weiwoduzun 文档编号:4240899 上传时间:2018-12-17 格式:DOC 页数:20 大小:1.78MB
下载 相关 举报
药店药品管理系统数据库总报告资料.doc_第1页
第1页 / 共20页
药店药品管理系统数据库总报告资料.doc_第2页
第2页 / 共20页
药店药品管理系统数据库总报告资料.doc_第3页
第3页 / 共20页
药店药品管理系统数据库总报告资料.doc_第4页
第4页 / 共20页
药店药品管理系统数据库总报告资料.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、 数据库原理与设计课程设计实验报告药店药品管理系统数据库专 业 计算机科学与技术 班 级 4 班 学 号 20132080 20132085 20132086 学生姓名 周雪峰 李毓磊 张凯峰 任课教师 朱焱老师 辅导教师 谭洁帆, 林钊 2015年 12 月 14 日一、课程设计目的 (1)加深理解数据库的基本概念与原理,提高数据库设计能力(2)掌握数据流图、ER 图,关系模式的设计方法(3)熟练掌握 SQL 定义子语言,操纵子语句命令语句(4)掌握关系模型上的完整性约束机智(5)熟悉 SQL Server 数据库开发方法,与一定的数据库管理技术(6)提高数据库设计标准化文档书写能力二、课程

2、设计实验环境 Windows XP Microsoft SQL Server2000三、课程设计内容1、需求分析阶段1.1 系统分析一、系统处理对象分析(1)药店药品信息:主要包括 药品编号 药品名称 药品分类 药品规格 药品品牌 进药单价 买药单价等 利用这些信息可以方便查询药品基本信息以及了解药品盈利情况(2)制药商信息:制药商名称 制药商编号 公司地点 联系电话 联系网址 利用这些信息便于进药部门 查找药品产地,联系药品退订情况(3)买药人信息:买药人编号 买药人姓名 心别 年龄 电话 住址 利用这些信息便于药品出现问题时及时与当事人联系,同时便于退药时确认买药信息(4)药品存储信息:药

3、品编号 柜台编号(5)柜台信息:柜台名称 柜台编号(6)药品退订信息:药品编号 制药商编号 处理时间 药品数量 (7)药品售退信息: 药品编号 买药人编号 药品数量 柜台编号 二、系统功能要求分析药品管理系统应具备以下几个基本功能:(1) 药品购进和退订信息查询(2) 买药人员信息查询与统计(3) 药品存储信息查询与更新(4) 药品销售情况统计与药品售退情况查询(5) 盈利查询与统计(6) 药品剩余数量查询与缺货药品查询及统计三、总体安全要求(1) 保密性。机密或敏感数据在存储处理传输过程中应保密,并用户只有在授权后才可以访问。不同的用户只能访问系统收授权的视图,这取决于其授权级别(2) 完整

4、性。保证系统中的信息处于一种完整和未受损害的状态,防止因未授权访问,部件故障或其他错误而引起的信息篡改,破坏或丢失。药品管理系统的信息对不同用户应有不同访问权限,购药人员只能查询库存信息,而库存的更新应只能库存管理员进行等等。(3) 可靠性:保障系统在复杂的网络环境下提供可持续、可靠的服务1.2 业务分析药品管理系统的业务应有以下 3 个:(1) 药品购进(退订)业务:购药人员根据售药处对药品的需求以及库存信息,制定药品的需求单并从制药商处购进药品,并将合格药品单送往 库存管理员进行药物存储,将不合格药品单送往制药商处进行退货。(2) 存药业务:库存管理员负责药品的出入库。根据合格购货药品单,

5、对新购进的药品进行分类并将药品入库;根据取药单(退药单)将药品出库(入库)并修改库存信息和流水账目,若药品缺货,将缺货药品信息单传给购药人员。(3) 售药业务:买药人将取药单(退药单)交给售药处,确认后,将药品售出(退回) ,并将取药单(退药单)交给库存管理员业务流程图如下:(1)药品购进业务流程图合格不合格库存信息购药人员 填写药品取货单药品缺货单制药商药品取货单检查药名单药品单库存管理员 药品入库单 存档退货单(2)存药业务流程图买药人退药单取药单 售药处 库存帐目取药单据库存管理员 存档售药处 确认 退药单(3)售药业务流程图售药处 取药单取药单 库存管理员登记流水账流水账改账 库存帐目

6、药品入库单购药员1.3 数据流程图系统全局数据流图数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,他可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况,它有抽象性、概括性、层次性三大特点。经过对药店中药品的销售业务调查、数据的收集处理和信息流程分析,明确了该系统的主要功能,分别为(1)药品购进和药品退订信息查询;(2)买药人员信息查询与统计;(3)药品存储信息查询与更新;(4)药品销售情况统计和药品被退情况查询;(5)盈利查询与统计;(6)药品剩余数量查询与缺货药品查询及统计。如图,即为药品销售系统的全局数据流图,即第一层数据流程图。药品发货单不 符 合存 储 清 单符合

7、库存药品清单 返回重新清点 决定退药退 药 单出 库 单退药单据取药单取药单据退货单商品不合格单入库单制药商 1.1检验药品 1 库存台账1.3退货 2 流水账2.3退药2.1售药 买药人员2.2决定退药库存管理3.1确认药品3.2药品进库药品订货单药品合格单 1.2药品进库系统局部数据流图全局数据流图从整体上描述了系统的数据流向和加工处理过程,为了清楚地描述系统数据的流向和加工处理的每个细节,在全局 DFD 基础上,对全局 DFD 中的某些局部进行单独放大,进一步细化,过程如下:药品销售过程主要分为三个业务,第一个业务为药品购进业务,第二个业务为存药业务,第三个业务为售药业务。针对三个业务得

8、到第二层数据流程图如下:(1)药品购进业务流程图退货单入库单药品合格单药品订货单药品发货单商品不合格单流水账库存台账制药商 1.1检验药品 1.2药品进库 11.3退货 2(2)存药业务流程图决定退药退药单据退药单出库单取药单取药单据流水账库存台账买药人员 2.1售药 122.3退药2.2决定退药(3)售药业务流程图不符合返回重新清点存储清单符合库存药品清单库存台账库存管理 3.1确认药品 3.2药品进库 12.3退药1.4 数据字典由于数据流程图表达不够准确、具体,只有当数据流程图中出现的每一个成分都给出定义之后,才能完整、准确地描述一个系统,因此,有必要建立数据字典来对数据流程图中的各个元

9、素作出详细的说明。数据字典通常包括数据项、数据结构、数据存储和处理过程 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 char(10) 药品品牌DI-6 Dprice1 float 进

10、药单价DI-7 Dprice2 float 卖药单价 大于零DI-8 Pno char(5) 买药人编号 大于零DI-9 Pname char(10) 买药人姓名DI-10 Page int 年龄 1255DI-11 Psex char(2) 性别 男女DI-12 Pphone char(11) 联系电话DI-13 Paddress char(20) 住址DI-14 Mno char(5) 制药商编号DI-15 Mname char(20) 制药商名称DI-16 Mplace char(20) 公司地点DI-17 Mphone char(11) 联系电话DI-18 Memail char(15

11、) 联系网址DI-19 Lname char(20) 柜台名称DI-20 Lno char(5) 柜台编号DI-21 Quantity int 药品数量 大于零DI-22 Time_SD smalldatetime 处理时间DI-23 Supply char(4) 订退方式 订购、退订DI-24 Deal char(4) 售退方式 售出、退回数据结构该系统的数据结构共有 7 个,具体见下表:数据结构编号 数据结构名 含义说明 组成DS-1 Drug 药品信息 Dno Dname Dclass Dbrand Dprice1 Dprice2DS-2 Patient 买药人信息 Pno Pname

12、Page Psex Pphone PaddressDS-3 Maker 制药商信息 Mno Mname MplaceMphoneMemailDS-4 Storage 柜台信息 Lno LnameDS-5 Order_Back 药品退订信息 Mno Dno Time_SD Quantity SupplyDS-6 Buy_Back 药品退售信息 Pno Dno Time_SDQuantity DealDS-7 Stored 药品存储信息 Dno Lno Quantity2.概念设计部分2.1 分析过程根据之前的数据流图和数据字典,我们提取出实体、实体的属性、标识实体的码、确认实体之间的联系及其类型

13、。定义如下:药品:药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价买药单价买药人员:买药人编号、买药人性命、性别、年龄、联系电话、住址制药商:制药商编号、制药商名称、公司地位、联系电话、联系网址柜台信息:柜台编号、柜台名称药品退订:药品编号、制药上编号、药品数量、处理时间、退订方式药品售退:药品编号、买药人编号、药品数量、处理时间、售退方式药品储存:药品编号、柜台编号、药品数量2.2 子模块 ER 图2.2.1 存药子模块 ER 图2.2.2 售药子模块 ER 图2.2.3 购进药品子模块 ER 图2.3 全局 ER 图3.逻辑设计部分3.1 数据库关系模式定义描述1. Drug(药

14、品)属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Dno char(5) 药品编号 否 主键Dname char(20) 药品名称 否Dclass char(10) 药品分类2.patient(买药人)3.Maker(制药商)4Storage(存储位置)5, DOrder(订药)6.Dback(药品退订)7. Dbuy(买药)Dguige char(10) 药品规格Dbrang char(10) 药品品牌Dprice1 floar 进药单价 否 大于 0Dprice2 floar 买药单价 否 大于 0属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Pno

15、 char(5) 买药人编号 否 主键Pname char(20) 买药人姓名 否Psex char(10) 性别 1-150Page int 年龄 nan、nvPphone char(11) 联系号码 否Paddress char(20) 进住址属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Mno char(5) 制药商编号 否 主键Mname char(20) 制药商名称 否Mpalce char(20) 公司地址 否Mphone char(11) 联系电话 否Meail char(20) 联系邮箱 否属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围L

16、no char(5) 存储编号 否 主键Lname char(20) 存储位置 否 不小于 0属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Mno char(5) 制药商编号 否 外键(主键之一)Dno char(5) 药品编号 否 外键(主键之一)Quantity int 药品数量 否 大于 0Time_SD smalldatetime 处理时间Supply char(4) 订退方式 否 订购属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Mno char(5) 制药商编号 否 外键(主键之一)Dno char(5) 药品编号 否 外键(主键之一)Qua

17、ntity int 药品数量 否 大于 0Time_SD smalldatetime 处理时间Supply char(4) 订退方式 否 退订8、BBack(退药 )9.Stored(库存)3.2 用户子模式视图设计1、DM_P( 订药 )2.DM_M(药品退订)属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Pno char(5) 买药人编号 否 外键(主键之一)Dno char(5) 药品编号 否 外键(主键之一)Quantity int 药品数量 否 大于 0Time_SD smalldatetime 买药时间Deal char(4) 售退方式 否 售出属性名 数据类型

18、 别名(注释) 可否为空 主键 / 外键 取值范围Pno char(5) 买药人编号 否 外键(主键之一)Dno char(5) 药品编号 否 外键(主键之一)Quantity int 药品数量 否 大于 0Time_SD smalldatetime 买药时间Deal char(4) 售退方式 否 售出属性名 数据类型 别名(注释) 可否为空 主键 / 外键 取值范围Lno char(5) 存储编号 否 外键(主键之一)Dno char(5) 药品编号 否 外键(主键之一)不小于 0Quantity int 药品数量 否属性名 数据类型 别名(注释) 可否为空 取值范围Dname char(5

19、) 药品名称 否Dguige char(5) 药品规格 否DBrand int 药品品牌 否Mname char(20) 制药商名称Mpalace char(4) 公司地点Mphone char)11) 否Meamil char(20) 否Time_SD smalldatetime 处理时间 否Supply char(4) 处理方式 否 订购Qauntity int 数量 否 大于 0属性名 数据类型 别名(注释) 可否为空 取值范围Dname char(5) 药品名称 否Dguige char(5) 药品规格 否Dpricel1 float 药品进价 否 大于 03. PD_M(买药)4、D

20、S_M( 药品存储 )4.物理设计部分4.1 目标与任务1. 确认数据库的物理结构,主要指存取方式和存储结构2. 对物理结构进行评价,评价重点是时间和空间效率数据存取方法 4.2 数据存取方法4.2.1 基本表索引1. 由于基本表 Stored 的主码 Dno,Lno 经常在查询条件中出现,且它们更新平率较低,所以考虑在这组属性上建立作为唯一索引2. 由于基本表 DOrder 的主码 Dno,Mno 经常在查询条件和链接操作中出现,所以考虑在这组属性上建立作为唯一索引3. 由表 Dbuy 的主码 Dno,Pno 取值唯一,经常在查询条件中出现,且她们更新平率较低,所以Dpricel2 floa

21、t 药品售价 否 大于 0DBrand int 药品品牌 否Mname char(20) 制药商名称Mpalace char(4) 公司地点Mphone char)11) 否Meamil char(20) 否Time_SD smalldatetime 处理时间 否Supply char(4) 处理方式 否 退订Qauntity int 数量 否 大于 0属性名 数据类型 别名(注释) 可否为空 取值范围Pname char(10) 买药人名字 否Page int 年龄 1-150Pphone char(11) 电话 否Paddress char(20) 地址Dname char(5) 药品名称

22、 否Dguige char(5) 药品规格 否Dpricel2 float 药品售价 否 大于 0Time_SD smalldatetime 处理时间 否Qauntity int 数量 否 大于 0属性名 数据类型 别名(注释) 可否为空 取值范围Dno char(5) 药品编号 否Dname char(5) 药品名称 否Dpricel1 float 药品进价 否 大于 0Lname char(20) 存储位置 否Quantity int 药品数量 否 大于 0考虑在这组属性上建立作为唯一索引4.2.2 系统模块分析1、药品基本信息的查询与更新(插入、删除、修改)操作2、制药商基本信息的查询与

23、更新(插入、删除、修改)操作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

24、char(4) 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,Dno char(5) not null,Quantity int not nul

25、l ,primary key(Lno,Dno) ,foregin key(Lno) reference Storage(Lno),forgrin key(Dno) reference Drug(Dno) ,check(Quantity0)) ;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

26、 创建退药视图create view DM_M as select Dname,Dguige,Dbrand,Dprice1,Dpricel2,Mname,Mplace,Mphone,Memail from Drug,Maker,DBack where Drug.Dno=DBack.Dno and Maker.Mno=DBack.Mno with check option 2 数据插入2.1 向 Dorder 表中插入一个订购记录insert into Dorder values(M0001,D0009,150,2014-10-23,订购)5.2.2 向 Drug 表插入一个新的药品记录inse

27、rt 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 数据统计4.1 统计在 2014-8-21 卖出的各药品数量4.2 统计编号为“P0001“的病人购买各药品的总数量5 数据修改5.1 将 Drug 表中编号为 D0001 的药品的名称由 666 感冒灵更改为 999 感冒灵5.2 修改存储在二层左位置的所有药品的库存数量为 100五、课程设计总结

28、与感悟 在学习数据库这门课程时,感觉学到的知识还是掌握了的,并且以为自己已经理解了,但真正通过一个课程设计去应用这些知识的时候才发现,会遇到很多困难,并且学到的知识自己其实并不能熟练的应用,将知识应用到实际的工作并没有很好的完成。在课程设计遇到了许多问题,例如:插入数据时,提示插入的数据长度不符合要求,原因是未考虑到汉字占两个字节,char的长度设置过小,解决办法是修改长度即可无法插入数据到一个表中,总是提示外键约束错误,原因是因为该表中有外键,而外键所在的表未插入数据,所以无法插入数据到该表(插入的外键值不存在) 。解决方法是先将外键所在表的数据插入,在插入该表的数据。数据库建立在一个账号上

29、,只有一个人可以操作,显得不方便。可以通过授权 GRANT 给另一个账号,就可以两个账号进行操作,方便了许多。问题和困难还遇到过许多,在这不一一列数。在课程设计的过程中,经历了许多的相关设计工作,也学习到了许多书本上有和没有的知识,更重要的是,通过不断的实践和自学,不断发现问题,思考问题,进而解决问题,有效的提升了我们的动手能力,并加深了对知识的理解和掌握,从一开始的需求分析,到概念设计,到逻辑设计,再到物理设计,一直到上机建立数据库,一步步走来,通过我们自己亲自分析、设计、和动手,也让我们不断进步和成长。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,任何困难在勇气和毅力面前都是“纸老虎“。从做这个数据库开始无论遇到什么困难,我们都一直坚持,努力去解决,通过上网,与同学交流,向老师请教等等手段。通过这次课程设计的完成,使我们对所学的知识有了进一步掌握,同时也通过实践发现了自己的不足。所以在今后的学习中,我们仍应该好好学习,不断完善自我。当然,本系统仍然存在了许多的不足之处,如功能不够完善,安全性问题没有很好解决等,恳请老师谅解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报