《数据库原理与设计》课程设计实验报告药店药品管理系统数据库专业计算机科学与技术班级4班学号201320802013208520132086学生姓名周雪峰李毓磊张凯峰任课教师朱焱老师辅导教师谭洁帆,林钊2015年12月14日一、课程设计目的(1)加深理解数据库的基本概念与原理,提高数据库设计能力(2)掌握数据流图、ER图,关系模式的设计方法(3)熟练掌握SQL定义子语言,操纵子语句命令语句(4)掌握关系模型上的完整性约束机智(5)熟悉SQLServer数据库开发方法,与一定的数据库管理技术(6)提高数据库设计标准化文档书写能力二、课程设计实验环境WindowsXPMicrosoftSQLServer2000三、课程设计内容1、需求分析阶段1.1系统分析一、系统处理对象分析(1)药店药品信息:主要包括药品编号药品名称药品分类药品规格药品品牌进药单价买药单价等利用这些信息可以方便查询药品基本信息以及了解药品盈利情况(2)制药商信息:制药商名称制药商编号公司地点联系电话联系网址利用这些信息便于进药部门查找药品产地,联系药品退订情况(3)买药人信息:买药人编号买药人姓名心别年龄电话住址利用这些信息便于药品出现问题时及时与当事人联系,同时便于退药时确认买药信息(4)药品存储信息:药品编号柜台编号(5)柜台信息:柜台名称柜台编号(6)药品退订信息:药品编号制药商编号处理时间药品数量(7)药品售退信息:药品编号买药人编号药品数量柜台编号二、系统功能要求分析药品管理系统应具备以下几个基本功能:(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)药品剩余数量查询与缺货药品查询及统计。如图,即为药品销售系统的全局数据流图,即第一层数据流程图。系统局部数据流图全局数据流图从整体上描述了系统的数据流向和加工处理过程,为了清楚地描述系统数据的流向和加工处理的每个细节,在全局DFD基础上,对全局DFD中的某些局部进行单独放大,进一步细化,过程如下:药品销售过程主要分为三个业务,第一个业务为药品购进业务,第二个业务为存药业务,第三个业务为售药业务。针对三个业务得到第二层数据流程图如下:售药处取药单取药单库存管理员登记流水账流水账改账库存帐目药品入库单购药员药品发货单不符合存储清单符合库存药品清单返回重新清点决定退药退药单出库单退药单据取药单取药单据退货单商品不合格单入库单制药商1.1检验药品1库存台账1.3退货2流水账2.3退药2.1售药买药人员2.2决定退药库存管理3.1确认药品3.2药品进库药品订货单药品合格单1.2药品进库(1)药品购进业务流程图(2)存药业务流程图(3)售药业务流程图1.4数据字典由于数据流程图表达不够准确、具体,只有当数据流程图中出现的每一个成分都给出定义之后,才能完整、准确地描述一个系统,因此,有必要建立数据字典来对数据流程图中的各个元素作出详细的说明。数据字典通常包括数据项、数据结构、数据存储和处理过程5个部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。(1)数据项该系统设计的数据项共有24个,如下表:数据项编号数据项名存储结构别名取值约束DI-1Dnochar(5)药品编号退货单入库单药品合格单药品订货单药品发货单商品不合格单流水账库存台账制药商1.1检验药品1.2药品进库11.3退货2决定退药退药单据退药单出库单取药单取药单据流水账库存台账买药人员2.1售药122.3退药2.2决定退药不符合返回重新清点存储清单符合库存药品清单库存台账库存管理3.1确认药品3.2药品进库12.3退药DI-2Dnamechar(20)药品名称DI-3Dclasschar(8)药品分类DI-4Dguigechar(10)药品规格DI-5Dbrandchar(10)药品品牌DI-6Dprice1float进药单价DI-7Dprice2float卖药单价大于零DI-8Pnochar(5)买药人编号大于零DI-9Pnamechar(10)买药人姓名DI-10Pageint年龄1-255DI-11Psexchar(2)性别男女DI-12Pphonechar(11)联系电话DI-13Paddresschar(20)住址DI-14Mnochar(5)制药商编号DI-15Mnamechar(20)制药商名称DI-16Mplacechar(20)公司地点DI-17Mphonechar(11)联系电话DI-18Memailchar(15)联系网址DI-19Lnamechar(20)柜台名称DI-20Lnochar(5)柜台编号DI-21Quantityint药品数量大于零DI-22Time_SDsmalldatetime处理时间DI-23Supplychar(4)订退方式订购、退订DI-24Dealchar(4)售退方式售出、退回数据结构该系统的数据结构共有7个,具体见下表:数据结构编号数据结构名含义说明组成DS-1Drug药品信息DnoDnameDclassDbrandDprice1Dprice2DS-2Patient买药人信息PnoPnamePagePsexPphonePaddressDS-3Maker制药商信息MnoMnameMplaceMphoneMemailDS-4Storage柜台信息LnoLnameDS-5Order_Back药品退订信息MnoDnoTime_SDQuantitySupplyDS-6Buy_Back药品退售信息PnoDnoTime_SDQuantityDealDS-7Stored药品存储信息DnoLnoQuantity2.概念设计部分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(药品)属性名数据类型别名(注释)可否为空主键/外键取值范围Dnochar(5)药品编号否主键Dnamechar(20)药品名称否Dclasschar(10)药品分类Dguigechar(10)药品规格2.patient(买药人)3.Maker(制药商)4..Storage(存储位置)5,DOrder(订药)6.Dback(药品退订)7.Dbuy(买药)Dbrangchar(10)药品品牌Dprice1floar进药单价否大于0Dprice2floar买药单价否大于0属性名数据类型别名(注释)可否为空主键/外键取值范围Pnochar(5)买药人编号否主键Pnamechar(20)买药人姓名否Psexchar(10)性别1-150Pageint年龄nan、nvPphonechar(11)联系号码否Paddresschar(20)进住址属性名数据类型别名(注释)可否为空主键/外键取值范围Mnochar(5)制药商编号否主键Mnamechar(20)制药商名称否Mpalcechar(20)公司地址否Mphonechar(11)联系电话否Meailchar(20)联系邮箱否属性名数据类型别名(注释)可否为空主键/外键取值范围Lnochar(5)存储编号否主键Lnamechar(20)存储位置否不小于0属性名数据类型别名(注释)可否为空主键/外键取值范围Mnochar(5)制药商编号否外键(主键之一)Dnochar(5)药品编号否外键(主键之一)Quantityint药品数量否大于0Time_SDsmalldatetime处理时间Supplychar(4)订退方式否订购属性名数据类型别名(注释)可否为空主键/外键取值范围Mnochar(5)制药商编号否外键(主键之一)Dnochar(5)药品编号否外键(主键之一)Quantityint药品数量否大于0Time_SDsmalldatetime处理时间Supplychar(4)订退方式否退订属性名数据类型别名(注释)可否为空主键/外键取值范围8、BBack(退药)9.Stored(库存)3.2用户子模式——视图设计1、DM_P(订药)2.DM_M(药品退订)Pnochar(5)买药人编号否外键(主键之一)Dnochar(5)药品编号否外键(主键之一)Quantityint药品数量否大于0Time_SDsmalldatetime买药时间Dealchar(4)售退方式否售出属性名数据类型别名(注释)可否为空主键/外键取值范围Pnochar(5)买药人编号否外键(主键之一)Dnochar(5)药品编号否外键(主键之一)Quantityint药品数量否大于0Time_SDsmalldatetime买药时间Dealchar(4)售退方式否售出属性名数据类型别名(注释)可否为空主键/外键取值范围Lnochar(5)存储编号否外键(主键之一)Dnochar(5)药品编号否外键(主键之一)不小于0Quantityint药品数量否属性名数据类型别名(注释)可否为空取值范围Dnamechar(5)药品名称否Dguigechar(5)药品规格否DBrandint药品品牌否Mnamechar(20)制药商名称Mpalacechar(4)公司地点Mphonechar)11)否Me