




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、装订线河北大学工商学院2008级本科生课程设计论文药店药物管理系统摘要如今,科学技术飞速发展,电脑基本上已经进入家家户户,生活中好多问题都有了电脑的帮助,但小型药店药品管理仍是人工管理,信息处理时工作量大、容易出现错误,针对这一情况,我设计了药店药品管理系统,用以提高人们买药时的效率,减小药店工作人员的工作量,提高管理水平。它包括药店药品的购进管理、药品的出售管理、药品的存储管理等几大功能模块,并提供了对各个功能模块的查询、更新、统计等功能。以上这几种功能基本上是通过存储过程来实现的。该系统开发由系统需求分析阶段(设计出该药店药品管理系统的业务流程图、各阶层的数据流图和数据字典)、概念设计阶段
2、(设计分e-r图,生成全局e-r图)、逻辑设计阶段(将e-r模型转换为关系模型、模型优化)、数据库实施阶段(数据的载入、应用程序的编码和调试)、系统调试和测试阶段等阶段组成。它的实现是通过sql server 2000这一软件来实现的。关键词:药物;购进药物;药物出售;药物存储;关系数据库pharmacy drugs management systemabstracttoday, the rapid development of science and technology, computer basically has entered into every family, life a lo
3、t of problems with the help of computer, but small pharmacy drugs management is still artificial management, information processing work, and prone to errors, in view of this situation, and i designed a pharmacy drugs management system, in order to improve the efficiency of the people to buy medicin
4、e, reduce the enterprise staff work and enhance the level of management. it includes a pharmacy drug buys the sale of the drug management, management, drug store management and so on several big function module, and provide the modules of the inquiry, update, statistics, and other functions. this fu
5、nction is basically through several storage process. the system developed by system demand analysis stage (design the pharmacy drugs management system business flow chart, all sectors of the data flow graph and data dictionary), concept design phase (design points e-r chart, generate global e-r char
6、t), logic design stage (will e-r model transformation for relation model, model optimization), database implementation stage (data load, the application's code and commissioning), system commissioning and testing phase of stage. it is through the realization of the sql server 2000 this software
7、to realize. key words: drugs; purchase drugs; drug sells; drug storage; relational database 目录1引言12需求分析22.1功能分析22.2多层数据流图22.3数据字典43概念结构设计63.1设计er图采用的方法63.2设计分e-r图63.3最终er图74逻辑结构设计84.1e-r图向关系模型的转换84.2向特定dbms规定的模型进行转换84.3数据模型的优化124.4设计用户子模式125数据库的物理设计155.1存储模式的选择155.2索引的建立156数据库实施166.1rdbms产品的选择166.2数
8、据库实施过程167结束语22参考文献23河北大学工商学院2008级本科生课程设计论文1引言通过对学校周边的药店进行调查,了解到现在的药店的管理仍由人来完成,这种人工管理费时、费力,而且还会降低买药人员的买药效率,浪费其时间。使用计算机对药店进行管理,能够极大程度上提高药店的效率,也是适应现代社会信息化建设的发展的趋势。设计一个药店药品管理系统,可以节约无论是工作人员还是买药人员的时间,减少工作人员的工作量,提高药店药品的管理效率和药品出入的查询效率。药物管理系统的开发主要包含两个方面,一是数据库的建立于维护,二是前台的应用程序的开发。本次数据库课程设计重视的是数据库理论知识的学习和数据库系统的
9、设计,对我们今后的数据库学习有很重要的意义。2需求分析2.1功能分析通过分析药品管理系统主要完成几个功能:药品购进和药品退定信息查询;买药人员信息查询与统计;药品存储信息查询与更新;药品销售情况统计和药品被退情况查询;盈利查询与统计;药品剩余数量查询与缺货药品查询及统计;2.2多层数据流图在药店药品管理系统中,经分析调查,其大致可以分为三部分:药品购进、药品出售、药品存储。(1) 药品购进:药店要开张营业,首先要购进药物,购药人员根据售药处对药品的需求以及库存信息,制定药品的需求单据并从制药商那求购所需的药品。购进药品后,购药人员将合格药品单据送往库存管理员进行药物存储,将不合格的药品单据送往
10、制药商进行退货处理。(2) 药物存储:管理员所承担的业务就是药品的出库和入库,当购药人员购进了新的药品时,管理员将新购进的药品进行分类并将药品入库;库存管理员接到取(退)药单时,将药品出(入)库并修改库存信息和流水帐目,如果药品缺货,将缺货药品信息单递交购药人员。(3) 药物出售:买药人员拿取药单(退药单)给售药处,售药处确认后,将药品售出(退回),并将取药单(退药单)给库存管理员。a 药品购进数据流程图如图2-1所示。图2-1 药品购进数据流图b 药品出售数据流程图如图2-2所示。图2-3 药品存储数据流图图2-2 药品出售数据流图c 药品存储数据流程图如图2-3所示。2.3数据字典数据字典
11、通常包括数据项、数据结构、数据存储和处理过程5个部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。(1) 数据项该系统设计的数据项共有24个,如下表:表2-1 药店药品管理系统数据项数据项编号数据项名存储结构别名取值约束di-1dnochar(5)药品编号di-2dnamechar(20)药品名称di-3dclasschar(8)药品分类di-4dguigechar(10)药品规格di-5dbrandchar(10)药品品牌di-6dprice1float进药单价di-7dprice2float卖药单价
12、大于零di-8pnochar(5)买药人编号大于零di-9pnamechar(10)买药人姓名di-10pageint年龄di-11psexchar(2)性别1-150di-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-21quantityi
13、nt药品数量大于零di-22time_sdsmalldatetime处理时间di-23supplychar(4)订退方式订购、退订di-24dealchar(4)售退方式售出、退回(2) 数据结构该系统设计的数据结构共有7个,具体见下表:表2-2 数据结构列表数据结构编号数据结构名含义说明组成ds-1drug药品信息dno、dname、dclass dbrand dprice1 dprice2ds-2patient买药人信息pno pname page psex pphone paddressds-3maker制药商信息mno mname mplace mphone memailds-4sto
14、rage柜台信息lno lnameds-5order_back药品订退信息mno dno time_sd quantity supplyds-6buy_back药品售退信息pno dno time_sd quantity dealds-7stored药品存储信息dno lno quantity3概念结构设计3.1设计er图采用的方法n er图设计方法:n 自底向上地设计概念结构n 自底向上设计概念结构的步骤:n 第1步:抽象数据并设计局部视图n 第2步:集成局部视图,得到全局概念结构3.2设计分e-r图根据需求分析,在该系统中存在以下实体集:药品信息实体集、买药人员信息实体集、制药商信息实体集
15、、订药信息实体集、退订信息实体集、买药信息实体集、退药信息实体集,其中,各实体集中可能存在多个实体。对每一个实体定义的属性如下:药品:药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价、买药单价买药人员:买药人编号、买药人姓名、性别、年龄、联系电话、住址制药商:制药商编号、制药商名称、公司地点、联系电话、联系网址柜台信息:柜台编号、柜台名称药品退订:药品编号、制药商编号、药品数量、处理时间、订退方式药品售退:药品编号、买药人编号、药品数量、处理时间、售退方式药品存储:药品编号、柜台编号、药品数量图3-1 药品存储分e-r根据以上分析,由第二层数据流图得到分e-r图如图3-1至3-3所示
16、。图3-3 药品售出分e-r 图3-2 药品订退分e-r3.3最终er图图3-4 全局e-r图解决各分e-r图之间存在的属性冲突、命名冲突、结构冲突等冲突,将各分e-r图合并起来生成初步e-r图,再消除不必要的冗余后得到全局e-r图如图3-4所示。4逻辑结构设计4.1e-r图向关系模型的转换转换原则:一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码;一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;一个m:n联系转换为一个关系模式;3个或3个以上的实体间的一个多
17、元联系可以转换为一个关系模式;具有相同码的关系模式可合并。根据以上转换原则,该系统得到以下转换结果。关系的码用下横线标出。表4-1 实体、联系与关系模式表实体/联系关系模式药品药品(药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价、买药单价)买药人买药人员(买药人编号、买药人姓名、性别、年龄、联系电话、住址)制药商制药商(制药商编号、制药商名称、公司地点、联系电话、联系网址)柜台柜台(柜台编号、柜台名称)“订退”药品订退:药品编号、制药商编号、药品数量、处理时间、订退方式“售退”药品售退:药品编号、买药人编号、药品数量、处理时间、售退方式“存储”药品存储:药品编号、柜台编号、药品数量
18、4.2向特定dbms规定的模型进行转换表4-2 drug属性名数据类型别名是否为空主键/外键取值范围dnochar(5)药品编号否主键dnamechar(20)药品名称否dclasschar(8)药品分类dguigechar(10)药品规格dbrandchar(10)药品品牌dprice1float进药单价否大于零dprice2float卖药单价否大于零表4-3 patient属性名数据类型别名是否为空主键/外键取值范围pnochar(5)买药人编号否主键pnamechar(10)买药人姓名否pageint年龄1-150psexchar(2)性别男、女pphonechar(11)联系电话否pa
19、ddresschar(20)住址表4-4 maker属性名数据类型别名是否为空主键/外键取值范围mnochar(5)制药商编号否主键mnamechar(20)制药商名称否mplacechar(20)公司地点否mphonechar(11)联系电话否memailchar(15)联系网址否表4-5 storage属性名数据类型别名是否为空主键/外键取值范围lnochar(5)存储编号否主键lnamechar(20)存储位置否表4-6 dorder属性名数据类型别名是否为空主键/外键取值范围mnochar(5)制药商编号否外键主键dnochar(5)药品编号否外键quantityint药品数量否大于零
20、time_sdsmalldatetime处理时间supplychar(4)订退方式否订购表4-7 oback属性名数据类型别名是否为空主键/外键取值范围mnochar(5)制药商编号否外键主键dnochar(5)药品编号否外键quantityint药品数量否大于零time_sdsmalldatetime处理时间supplychar(4)订退方式否退订表4-8 dbuy属性名数据类型别名是否为空主键/外键取值范围pnochar(5)买药人编号否外键主键dnochar(5)药品编号否外键time_sdsmalldatetime退药时间quantityint药品数量否大于零dealchar(4)售退
21、方式否售出表4-9 bback属性名数据类型别名是否为空主键/外键取值范围pnochar(5)买药人编号否外键主键dnochar(5)药品编号否外键time_sdsmalldatetime退药时间quantityint药品数量否大于零dealchar(4)售退方式否退回表4-10 stored属性名数据类型别名是否为空主键/外键取值范围dnochar(5)药品编号否外键主键lnochar(5)存储编号否外键quantityint否不小于零创建基本表create table drug(dno char(5) primary key not null,dname char(20)not null,
22、dclass char(8),dguige char(10),dbrand char(10),dprice1 float,dprice2 float,check(dprice1 > 0),check(dprice2 > 0);create table patient(pno char(5)primary key not null,pname char(10)not null,page int,psex char(2),pphone char(11)not null,paddress char(20),check(page >= 1 and page <= 150),ch
23、eck(psex = '男' or psex = '女');create table maker(mno char(5)primary key not null,mname char(20)not null,mplace char(20)not null,mphone char(11)not null,memail char(15)not null);create table storage(lno char(5)primary key not null,lname char(20)not null);create table dorder(mno char(5
24、)not null,dno char(5)not null,quantity int not null,time_sd smalldatetime,supply char(4) not null,primary key(mno,dno),foreign key(mno)references maker(mno),foreign key(dno)references drug(dno),check(quantity > 0),check(supply = '订购');create table oback(mno char(5)not null,dno char(5)not
25、null,quantity int not null,time_sd smalldatetime,supply char(4) not null,primary key(mno,dno),foreign key(mno)references maker(mno),foreign key(dno)references drug(dno),check(quantity > 0),check(supply = '退订');create table dbuy(pno char(5)not null,dno char(5)not null,time_sd smalldatetime
26、,quantity int not null,deal char(4) not null,primary key(pno,dno),foreign key(pno)references patient(pno),foreign key(dno)references drug(dno),check(quantity > 0),check(deal = '售出');create table bback(pno char(5)not null,dno char(5)not null,time_sd smalldatetime,quantity int not null,deal
27、 char(4) not null,primary key(pno,dno),foreign key(pno)references patient(pno),foreign key(dno)references drug(dno),check(quantity > 0),check(deal = '退回');create table stored(dno char(5)not null,lno char(5)not null,quantity int not null,primary key(lno,dno),foreign key(lno)references stor
28、age(lno),foreign key(dno)references drug(dno),check(quantity >= 0);4.3数据模型的优化为了进一步提高数据库应用系统的性能,根据应用需要适当的修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以范式化理论为指导,经过分析,关系模式drug、patient、maker、storage、stored中,不存在非主属性对主属性的部分函数依赖,不存在传递函数依赖,也不存在插入异常、删除异常、修改复杂等现象,已经达到了3nf。4.4设计用户子模式将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体db
29、ms的特点,设计用户的外模式,可以利用视图功能设计更符合局部用户需要的用户外模式。表4-11 dm_p属性名数据类型别名是否为空取值范围dnamechar(20)药品名称否dguigechar(10)药品规格否dbrandchar(10)药品品牌mnamechar(20)制药商名称否mplacechar(20)公司地点mphonechar(11)联系电话否memailchar(15)联系网址否建立药品信息和制药商信息之间的联系视图,供买药人对药品详细信息的查询。表4-12 dm_m属性名数据类型别名是否为空取值范围dnamechar(20)药品名称否dclasschar(8)药品分类dguig
30、echar(10)药品规格否dbrandchar(10)药品品牌dprice1float进药单价否大于零dprice2float卖药单价否大于零mnamechar(20)制药商名称否mplacechar(20)公司地点mphonechar(11)联系电话否memailchar(15)联系网址否建立药品信息和制药商信息之间的联系视图,供药店管理员对药品详细信息进行查询,方便药品购进和药品退订。表4-13 pd_m属性名数据类型别名是否为空取值范围pnamechar(10)买药人姓名否pageint年龄1-150psexchar(2)性别男、女pphonechar(11)联系电话否paddress
31、char(20)住址dnamechar(20)药品名称否dprice2float药品单价否大于零quantityint药品数量否大于零time_sdsmalldatetime买药时间否建立买药人信息和药品信息之间的联系视图,方便管理员计算应付金额,了解购药人购药信息,同时在买药人员进行退药时管理员能及时了解其买药情况并作出是否同意药品退货处理。表4-14 ds_m属性名数据类型别名是否为空取值范围dnochar(5)药品编号否dnamechar(20)药品名称否dprice1float进药单价否大于零lnamechar(20)存储位置否quantityint药品数量否大于零建立药品与存储柜台信
32、息的视图,快速的找到所需药品,便于对药品进行销售和回退处理。(1) 创建dm_p视图create view dm_passelect dname 药品名称,dguige 规格,dbrand 品牌,mname 制药商名称,mplace 药品产地,mphone 联系电话,memail 联系网址from drug,maker,dorderwhere drug.dno = dorder.dno and maker.mno = dorder.mnowith check option(2) 创建dm_m视图create view dm_masselect dname,dclass,dguige ,dbra
33、nd ,dprice1 ,dprice2 ,mname ,mplace ,mphone ,memailfrom drug,maker,obackwhere drug.dno = oback.dno and maker.mno = oback.mnowith check option(3) 创建pd_m视图create view pd_masselect pname,page ,psex ,pphone ,paddress ,dname ,dprice2 ,quantity ,time_sdfrom drug,patient,bbackwhere drug.dno = bback.dno and
34、 patient.pno = bback.pnowith check option(4) 创建ds_m试图create view ds_masselect drug.dno ,dname ,dprice2 ,lname ,quantityfrom drug,stored,storagewhere drug.dno = stored.lno and storage.lno = stored.lnowith check option5数据库的物理设计5.1存储模式的选择选择索引存取方法。索引存取方法实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些属性列监理组和索引、那些索引要设计为唯一索
35、引等。5.2索引的建立为数据库中个基本表建立的索引如下:(1) 由于基本表stored的主码dno、lno经常在查询条件中出现,且它们更新频率较低,考虑在这组属性上建立唯一性索引。(2) 基本表dorder的主码dno、mno经常在查询条件和链接操作中出现,且它们的取值唯一,考虑在其之上建立唯一性索引。(3) 表dbuy的主码dno、pno取值唯一,且经常在查询条件中出现,更新频率低,可以考虑适当建立唯一性索引。建立索引如下:(1) create unique index dlno on stored(dno,lno)(2) create unique index dmno on dorder
36、(mno,dno)(3) create unique index dpno on dbuy(pno,dno)6数据库实施6.1rdbms产品的选择由于用户需求和管理需求的不确定性,系统应用环境经常发生变化,应用软件要有足够的灵活性、适应性来满足对软件的输入、输出的要求。操作系统: windows xp数 据 库: sql sever 2000前台开发: microsoft visual basic 6.06.2数据库实施过程1. 创建数据库create database drugstore2. 创建基本表create table drug(dno char(5) primary key not
37、 null,dname char(20)not null,dclass char(8),dguige char(10),dbrand char(10),dprice1 float,dprice2 float,check(dprice1 > 0),check(dprice2 > 0);create table patient(pno char(5)primary key not null,pname char(10)not null,page int,psex char(2),pphone char(11)not null,paddress char(20),check(page &
38、gt;= 1 and page <= 150),check(psex = '男' or psex = '女');create table maker(mno char(5)primary key not null,mname char(20)not null,mplace char(20)not null,mphone char(11)not null,memail char(15)not null);create table storage(lno char(5)primary key not null,lname char(20)not null);c
39、reate table dorder(mno char(5)not null,dno char(5)not null,quantity int not null,time_sd smalldatetime,supply char(4) not null,primary key(mno,dno),foreign key(mno)references maker(mno),foreign key(dno)references drug(dno),check(quantity > 0),check(supply = '订购');create table oback(mno ch
40、ar(5)not null,dno char(5)not null,quantity int not null,time_sd smalldatetime,supply char(4) not null,primary key(mno,dno),foreign key(mno)references maker(mno),foreign key(dno)references drug(dno),check(quantity > 0),check(supply = '退订');create table dbuy(pno char(5)not null,dno char(5)n
41、ot null,time_sd smalldatetime,quantity int not null,deal char(4) not null,primary key(pno,dno),foreign key(pno)references patient(pno),foreign key(dno)references drug(dno),check(quantity > 0),check(deal = '售出');create table bback(pno char(5)not null,dno char(5)not null,time_sd smalldateti
42、me,quantity int not null,deal char(4) not null,primary key(pno,dno),foreign key(pno)references patient(pno),foreign key(dno)references drug(dno),check(quantity > 0),check(deal = '退回');create table stored(dno char(5)not null,lno char(5)not null,quantity int not null,primary key(lno,dno),fo
43、reign key(lno)references storage(lno),foreign key(dno)references drug(dno),check(quantity >= 0);3. 创建视图(1) 创建dm_p视图create view dm_passelect dname 药品名称,dguige 规格,dbrand 品牌,mname 制药商名称,mplace 药品产地,mphone 联系电话,memail 联系网址from drug,maker,dorderwhere drug.dno = dorder.dno and maker.mno = dorder.mnowit
44、h check option(2) 创建dm_m视图create view dm_masselect dname,dclass,dguige ,dbrand ,dprice1 ,dprice2 ,mname ,mplace ,mphone ,memailfrom drug,maker,obackwhere drug.dno = oback.dno and maker.mno = oback.mnowith check option(3) 创建pd_m视图create view pd_masselect pname,page ,psex ,pphone ,paddress ,dname ,dpr
45、ice2 ,quantity ,time_sdfrom drug,patient,bbackwhere drug.dno = bback.dno and patient.pno = bback.pnowith check option(4) 创建ds_m试图create view ds_masselect drug.dno ,dname ,dprice2 ,lname ,quantityfrom drug,stored,storagewhere drug.dno = stored.lno and storage.lno = stored.lnowith check option4. 创建索引建
46、立索引如下:(1) create unique index dlno on stored(dno,lno)(2) create unique index dmno on dorder(mno,dno)(3) create unique index dpno on dbuy(pno,dno) 5. 创建触发器(1) dorder_insert的定义:create trigger dorder_inserton dorderafter insertasupdate storedset stored.quantity = stored.quantity + inserted.quantityfrom
47、 stored,insertedwhere stored.dno = inserted.dno(2) oback_insert的定义:create trigger oback_inserton obackafter insertasupdate storedset stored.quantity = stored.quantity - inserted.quantityfrom stored,insertedwhere stored.dno = inserted.dno(3) dbuy_insert的定义:create trigger dbuy_inserton dbuyafter insertasupdate storedset stored.quantity = stored.quantity - inserted.quantityfrom stored,insertedwhe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年拔罐器合作协议书
- 2025年数显读卡仪合作协议书
- 2025年娱乐、游览用船舶合作协议书
- 社区活动组织及场地租赁协议
- 电子合同登记协议
- 智慧城市规划与设计合同
- 航空航天行业航天器动力系统方案
- IT行业软件开发工程师出生日期及工作证明(6篇)
- 商业办公空间装修设计与施工一体化协议
- 合作研发创新科技产品协议
- 旅行社企业章程范本
- 2025年宁波余姚市直属企业招招聘笔试参考题库含答案解析
- 《心理健康测试》课件
- 输变电工程监督检查标准化清单-质监站检查
- GB/T 26718-2024城市轨道交通安全防范系统技术要求
- 《心房颤动》课件
- 静脉输液操作考试流程
- 校园艺术团指导教师聘用合同
- 护理记录与交班制度
- 2024-2030年中国海外医疗中介服务行业运行现状及投资潜力分析报告
- 幼儿园应急疏散演练
评论
0/150
提交评论