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

上传人:白大夫 文档编号:5422488 上传时间:2020-05-05 格式:PDF 页数:20 大小:2.52MB
返回 下载 相关 举报
药店药品管理系统数据库总报告资料.pdf_第1页
第1页 / 共20页
药店药品管理系统数据库总报告资料.pdf_第2页
第2页 / 共20页
药店药品管理系统数据库总报告资料.pdf_第3页
第3页 / 共20页
药店药品管理系统数据库总报告资料.pdf_第4页
第4页 / 共20页
药店药品管理系统数据库总报告资料.pdf_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《药店药品管理系统数据库总报告资料.pdf》由会员分享,可在线阅读,更多相关《药店药品管理系统数据库总报告资料.pdf(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、据流图 全局数据流图从整体上描述了系统的数据流向和加工处理过程,为了清楚地描述系统数据的流向和 加工处理的每个细节,在全局DFD基础上,对全局 DFD 中的某些局部进行单独放大,进一步细化,过程 如下: 药品销售过程主要分为三个业务,第一个业务为药品购进业务,第二个业务为存药业务,第三个业 务为售药业务。针对三个业务得到第二层数据流程图如下: 售药处 取药单 取药单 库存管理员 登记流水账 流水账 改账库存帐目 药品入库单 购药员 药品发货单 不 符 合 存 储 清 单 符 合 库存药品清单返回重新清点决定退药 退 药 单 出 库 单 退 药 单 据 取药单 取药单据 退货单 商品不合格单 入

8、库单 制药商 1.1 检验药品 1 库存台账 1.3 退货 2 流水账 2.3 退药 2.1 售药 买药人员 2.2 决定退药 库存管理 3.1 确认药品 3.2 药品进库 药品订货单 药品合格单 1.2 药品进库 (1)药品购进业务流程图 (2)存药业务流程图 (3)售药业务流程图 1.4 数据字典 由于数据流程图表达不够准确、具体,只有当数据流程图中出现的每一个成分都给出定义之后,才 能完整、准确地描述一个系统,因此,有必要建立数据字典来对数据流程图中的各个元素作出详细的说 明。数据字典通常包括数据项、数据结构、数据存储和处理过程5 个部分,其中数据项是数据的最小组 成单位,若干个数据项可

9、以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、 数据存储的逻辑内容。 (1) 数据项 该系统设计的数据项共有24 个,如下表: 数据项编号数据项名存储结构别名取值约束 DI-1 Dno char(5) 药品编号 退货单 入库单药品合格单 药品订货单 药品发货单 商 品 不 合 格 单 流水账 库存台账 制药商 1.1 检验药品 1.2 药品进库 1 1.3 退货 2 决定退药 退 药 单 据 退药单 出库单 取药单 取药单据 流水账 库存台账买药人员 2.1 售药 1 2 2.3 退药 2.2 决定退药 不 符 合 返回重新清点 存储清单符合库存药品清单 库存台账库存管

10、理 3.1 确认药品 3.2 药品进库 1 2.3 退药 DI-2 Dname char(20) 药品名称 DI-3 Dclass char(8) 药品分类 DI-4 Dguige char(10) 药品规格 DI-5 Dbrand char(10) 药品品牌 DI-6 Dprice1 float 进药单价 DI-7 Dprice2 float 卖药单价大于零 DI-8 Pno char(5) 买药人编号大于零 DI-9 Pname char(10) 买药人姓名 DI-10 Page int 年龄1255 DI-11 Psex char(2) 性别男女 DI-12 Pphone char(11

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) 联系网址 DI-19 Lname char(20) 柜台名称 DI-20 Lno char(5) 柜台编号 DI-21 Quantity int 药品数量大于零 DI-22 Time_SD smalldatetime 处理时间 DI-23 Supply char(4) 订退方式

12、订购、退订 DI-24 Deal char(4) 售退方式售出、退回 数据结构 该系统的数据结构共有7 个,具体见下表: 数据结构编号数据结构名含义说明组成 DS-1 Drug 药品信息Dno Dname Dclass Dbrand Dprice1 Dprice2 DS-2 Patient 买药人信息Pno Pname Page Psex Pphone Paddress DS-3 Maker 制药商信息Mno Mname Mplace Mphone Memail DS-4 Storage 柜台信息Lno Lname DS-5 Order_Back 药品退订信息Mno Dno Time_SD Q

13、uantity Supply DS-6 Buy_Back 药品退售信息Pno Dno Time_SD Quantity Deal DS-7 Stored 药品存储信息Dno Lno Quantity 2.概念设计部分 2.1 分析过程 根据之前的数据流图和数据字典,我们提取出实体、实体的属性、标识实体的码、确认实体之间的联 系及其类型。定义如下: 药品: 药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价买药单价 买药人员: 买药人编号、买药人性命、性别、年龄、联系电话、住址 制药商: 制药商编号、制药商名称、公司地位、联系电话、联系网址 柜台信息: 柜台编号、柜台名称 药品退订: 药

14、品编号、制药上编号、药品数量、处理时间、退订方式 药品售退: 药品编号、买药人编号、药品数量、处理时间、售退方式 药品储存: 药品编号、柜台编号、药品数量 2.2子模块 ER图 2.2.1存药子模块ER图 2.2.2售药子模块ER图 2.2.3购进药品子模块ER图 2.3 全局 ER图 3. 逻辑设计部分 3.1 数据库关系模式定义描述 1. Drug(药品 ) 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Dno char(5) 药品编号否主键 Dname char(20) 药品名称否 Dclass char(10) 药品分类 Dguige char(10) 药品规格 2.pati

15、ent(买药人 ) 3.Maker(制药商) 4Storage(存储位置) 5, DOrder( 订药 ) 6.Dback(药品退订) 7. Dbuy(买药 ) Dbrang char(10) 药品品牌 Dprice1 floar 进药单价否大于 0 Dprice2 floar 买药单价否大于 0 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Pno char(5) 买药人编号否主键 Pname char(20) 买药人姓名否 Psex char(10) 性别1-150 Page int 年龄nan、nv Pphone char(11) 联系号码否 Paddress char(20)

16、 进住址 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Mno char(5) 制药商编号否主键 Mname char(20) 制药商名称否 Mpalce char(20) 公司地址否 Mphone char(11) 联系电话否 Meail char(20) 联系邮箱否 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Lno char(5) 存储编号否主键 Lname char(20) 存储位置否不小于 0 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Mno char(5) 制药商编号否外键(主键之 一) Dno char(5) 药品编号否外键(主键之 一) Qu

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

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

19、否售出 属性名数据类型别名(注释)可否为空主键/ 外键取值范围 Lno char(5) 存储编号否外键(主键之 一) Dno char(5) 药品编号否外键(主键之 一) 不小于 0 Quantity int 药品数量否 属性名数据类型别名(注释)可否为空取值范围 Dname char(5) 药品名称否 Dguige char(5) 药品规格否 DBrand int 药品品牌否 Mname char(20) 制药商名称 Mpalace char(4) 公司地点 Mphone char)11) 否 Meamil char(20) 否 Time_SD smalldatetime 处理时间否 Sup

20、ply char(4) 处理方式否订购 Qauntity int 数量否大于 0 属性名数据类型别名(注释)可否为空取值范围 Dname char(5) 药品名称否 Dguige char(5) 药品规格否 Dpricel1 float 药品进价否大于 0 Dpricel2 float 药品售价否大于 0 3. PD_M( 买药 ) 4、DS_M( 药品存储 ) 4. 物理设计部分 4.1 目标与任务 1. 确认数据库的物理结构,主要指存取方式和存储结构 2. 对物理结构进行评价,评价重点是时间和空间效率数据存取方法 4.2 数据存取方法 4.2.1 基本表索引 1. 由于基本表 Stored

21、 的主码 Dno,Lno 经常在查询条件中出现,且它们更新平率较低,所以考虑 在这组属性上建立作为唯一索引 2. 由于基本表 DOrder的主码 Dno,Mno经常在查询条件和链接操作中出现,所以考虑在这组属性 上建立作为唯一索引 3. 由表 Dbuy的主码 Dno ,Pno取值唯一,经常在查询条件中出现,且她们更新平率较低,所以 DBrand int 药品品牌否 Mname char(20) 制药商名称 Mpalace char(4) 公司地点 Mphone char)11) 否 Meamil char(20) 否 Time_SD smalldatetime 处理时间否 Supply cha

22、r(4) 处理方式否退订 Qauntity int 数量否大于 0 属性名数据类型别名(注释)可否为空取值范围 Pname char(10) 买药人名字否 Page int 年龄1-150 Pphone char(11) 电话否 Paddress char(20)地址 Dname char(5) 药品名称否 Dguige char(5) 药品规格否 Dpricel2 float 药品售价否大于 0 Time_SD smalldatetime 处理时间否 Qauntity int 数量否大于 0 属性名数据类型别名(注释)可否为空取值范围 Dno char(5) 药品编号否 Dname char

23、(5) 药品名称否 Dpricel1 float 药品进价否大于 0 Lname char(20) 存储位置否 Quantity int 药品数量否大于 0 考虑在这组属性上建立作为唯一索引 4.2.2 系统模块分析 1、药品基本信息的查询与更新(插入、删除、修改)操作 2、制药商基本信息的查询与更新(插入、删除、修改)操作 3、买药人基本信息的查询与更新(插入、删除、修改)操作 4、药品存储信息的查询与更新(插入、删除、修改)操作 5、药品盈利情况统计查询 6、买药人购买药品信息的查询 7、管理员对买药人购买药品和退回药品信息的查询 8、管理员对购药人员订购药品和退订药品信息的查询 4.2.

24、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) not null, create nonclustered index timeidx on DBuy(Time_SD DESC), primary key (Pno,Dno) , foregin key(Pno) reference Parient(Pno),

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

26、y0) ) ; 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 as select Dname,Dguige,Dbrand,Dprice1,Dpricel2,Mname,Mplace,Mphone,Memail from Drug,Make

27、r,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 表插入一个新的药品记录 insert into Drug values(D0024,维生素 ,维生素,125s*36粒,太极,1.50,2.00) 3 数据查询 3.1 全药品存储位置及库存查询 3.2 查询在 2004-8-21 退订的药品数量大

28、于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 五、课程设计总结与感悟 在学习数据库这门课程时,感觉学到的知识还是掌握了的,并且以为自己已经理解了,但真正通过一 个课程设计去应用这些知识的时候才发现,会遇到很多困难,并且学到的知识自己其实并不能熟练的应用, 将知识

29、应用到实际的工作并没有很好的完成。 在课程设计遇到了许多问题,例如: 插入数据时,提示插入的数据长度不符合要求,原因是未考虑到汉字占两个字节,char 的长度设置 过小,解决办法是修改长度即可 无法插入数据到一个表中,总是提示外键约束错误,原因是因为该表中有外键,而外键所在的表未插 入数据,所以无法插入数据到该表(插入的外键值不存在)。解决方法是先将外键所在表的数据插入,在插 入该表的数据。 数据库建立在一个账号上,只有一个人可以操作,显得不方便。可以通过授权GRANT 给另一个账号, 就可以两个账号进行操作,方便了许多。 问题和困难还遇到过许多,在这不一一列数。 在课程设计的过程中,经历了许

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

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1