数据库课程设计医药销售管理系统.docx

上传人:b****6 文档编号:15505879 上传时间:2023-07-05 格式:DOCX 页数:38 大小:94.92KB
下载 相关 举报
数据库课程设计医药销售管理系统.docx_第1页
第1页 / 共38页
数据库课程设计医药销售管理系统.docx_第2页
第2页 / 共38页
数据库课程设计医药销售管理系统.docx_第3页
第3页 / 共38页
数据库课程设计医药销售管理系统.docx_第4页
第4页 / 共38页
数据库课程设计医药销售管理系统.docx_第5页
第5页 / 共38页
数据库课程设计医药销售管理系统.docx_第6页
第6页 / 共38页
数据库课程设计医药销售管理系统.docx_第7页
第7页 / 共38页
数据库课程设计医药销售管理系统.docx_第8页
第8页 / 共38页
数据库课程设计医药销售管理系统.docx_第9页
第9页 / 共38页
数据库课程设计医药销售管理系统.docx_第10页
第10页 / 共38页
数据库课程设计医药销售管理系统.docx_第11页
第11页 / 共38页
数据库课程设计医药销售管理系统.docx_第12页
第12页 / 共38页
数据库课程设计医药销售管理系统.docx_第13页
第13页 / 共38页
数据库课程设计医药销售管理系统.docx_第14页
第14页 / 共38页
数据库课程设计医药销售管理系统.docx_第15页
第15页 / 共38页
数据库课程设计医药销售管理系统.docx_第16页
第16页 / 共38页
数据库课程设计医药销售管理系统.docx_第17页
第17页 / 共38页
数据库课程设计医药销售管理系统.docx_第18页
第18页 / 共38页
数据库课程设计医药销售管理系统.docx_第19页
第19页 / 共38页
数据库课程设计医药销售管理系统.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计医药销售管理系统.docx

《数据库课程设计医药销售管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计医药销售管理系统.docx(38页珍藏版)》请在冰点文库上搜索。

数据库课程设计医药销售管理系统.docx

数据库课程设计医药销售管理系统

医药销售管理系统

一可行性性研究

近年来,中国医药行业迅速发展,药店企业多业态经营,仓储式大型超市、中等规模超市、便利连锁综合发展。

随着规模的扩大,传统的医药管理已经不能适应发展的需要,很难在激烈的竞争中生存。

通过对从事医药产品的零售、批发等工作企业的深入调查,发现其业务主要包括企业药品销售、出入库管理、企业的财务、人事管理等。

医药管理是一项琐碎、复杂而又十分细致的工作。

手工进行企业日常的药品销售、出入库的工作,容易出现“开空单”的现象,且呆账、错账时有发生,而且费时费力。

本系统在设计中考虑和克服了上述问题,实现了企业管理工作的系统化、规范化和自动化。

二系统需求分析

2.1.1系统目标与要求

要求本系统能够投入实际的使用并且满足基本的功能要求。

要求具有较高的可靠性、安全性和易维护性,具有较高的可移植性。

本系统实现了以下的功能:

(1)基本信息模块:

包括药品信息、员工信息、客户信息、供应商信息四个子模块。

(2)进货管理模块:

包括入库登记、入库登记查询二个子模块。

(3)库房管理模块:

包括库存查询、库存盘点、退货处理三个子模块。

(4)销售管理模块:

包括销售登记、销售退货、销售报表查询三个子模块。

(5)财务统计模块:

包括当日统计、当月统计二个子模块。

(6)系统维护模块:

包括数据安全管理、操作员管理、权限设置三个模块。

说明:

根据对现实中医药销售管理业务,将用户分为二类超级管理员(经理)、普通管理员(操作员)。

2.1.2系统分析

用户活动及活动图

(1)经理主要参与活动有:

①查询销售情况和财务状况以便了解本企业的经营状况,作出相应的决策;

②管理员工,了解不同员工的上班时间和他的相关的业绩;

③客户的管理,了解客户的数量,注销有问题的客户;

④供应商的管理,了解供应信息,选择最合适的供应商。

(2)营业员主要活动有:

医药销售管理是指对药品信息的录入、更新、修改和删除;

查询药品信息,以了解是否有该药品和库存等信息;

销售药品,出库记录;

退还药品,入库记录;

现金收支是指对进出帐目的记录统计。

(3)顾客主要活动:

①查询药品信息;

②选购药品。

2.1.3业务流程图

2.2系统逻辑方案

系统分析的主要成果是系统的逻辑模型。

本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。

即在无纸化网络考试系统管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。

2.2.1数据流程图(DFD):

数据流图是组织中信息运动的抽象。

是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。

将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。

 

 

在数据流程图中可以很清楚的看到数据的流向,药品信息的数据分别能够流向经理、员工和顾客。

药品销售信息的信息也流经理。

药品销售信息记录的是药品销售和退还的信息。

顾客表信息从顾客流出又可以流回到顾客和员工、经理。

2.2.2数据字典(简称DD)

绘制DFD,只是对数据处理和彼此之间的联系进行了说明。

为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。

这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。

下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。

数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。

 

数据项的DD表列举如下:

表2.1药品编号的数据字典

数据项

系统名:

医药销售管理系统编号:

I001名称:

药品编码别名:

数据项值:

类型:

字符型长度:

6个字节取值范围:

简述:

每种药品都具有唯一的编号,它是某种药品的唯一标识符,每种药品都有唯一的编号,如“011976”通常用前两位数字表示入库的年份,中间两位表示类别,最后两位表示该药的序号。

如果该类药数超过100种时,可用“0119A0”表示第100种药。

修改记录:

编写

日期

审核

日期

表2.2药品名称

数据项

系统名:

医药销售管理系统编号:

I002名称:

药品名称别名:

数据项值:

类型:

字符型长度:

32个字节取值范围:

简述:

每种药品都具有唯一药品标识。

修改记录:

编写

日期

审核

日期

表2.3密码

数据项

系统名:

医药销售管理系统编号:

I003名称:

售价别名:

数据项值:

类型:

数值型长度:

8个字节取值范围:

简述:

每种药品都要设置一个销售价格。

修改记录:

编写

日期

审核

日期

三数据库系统结构设计

3.1软件系统总体结构设计

软件系统总体结构设计的主要任务就是将整个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解-协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设计。

3.2数据存储的总体设计

按用途分类可把本系统文件分成以下几种:

(1)主文件:

系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。

它需要长期保存,并不断更新。

(2)处理文件:

处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如新闻登录日志文件、待审核项目信息文件。

3.3系统功能模块设计

通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图。

3.4数据库详细设计

3.4.1数据库设计

数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。

作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。

对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。

E-R图:

在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。

可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。

E-R图由实体、属性、联系三部分组成。

各分E-R图说明如下:

经理E-R图:

供应商E-R图:

员工E-R图:

 

药品销售清单E-R图:

 

客户E-R图:

 

药品E-R图:

整体E-R图:

关系模式与码:

药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期)外码:

药品类别代号、供应商

药品分类索引信息(药品类别代号,类别说明)

员工信息(员工号,姓名,用户名,密码,职位,权限)

客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)

供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)

药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商,总额,销售员编码)外码:

销售员编码、药品编码

关系模式优化:

在上述关系模式中,每一个分量都是不可分割的数据项所以都符合第一范式;而且前四个关系模式都是单个属性作为码,没有任何非主属性对码部分函数依赖,在药品销售信息内虽由三个属性作为码,但也不存在非主性对码的部分函数依赖,所以上都符合第二范式;药品信息、药品类别索引、客户信息、供应商信息四个关系模式中都不存在非主属性对码的传递函数依赖,都属于第三范式。

在员工信息关系模式中,员工是按照权限分类的,职位不同权限也不同,这样该关系模式就存在了非主属性对码的传递依赖:

职工号->职位,职位->权限,所以就将用员工信息分解为如下现个模式:

①员工信息(员工号,姓名,用户名,用户口令,职位)

②职位权限信息(职位,权限)

本系统不考虑职工信息的管理,为了使销售员编号与销售员的职工号连系起来,并能通过职工姓名和职位来修改用户信息所以把员工的部分信息(职工号,姓名,职位)和经理(用户名,密码)合成了员工信息(员工号,姓名,用户名,密码,职位,权限)以便系统功能的实现,所以在此不采用模式分解。

药品销售信息中有大量的数据冗余,表达不明确,将其分解为如下两个模式:

①药品销售主表(销售编码,销售日期,销售员编号,总金额)

②药品销售子表(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商)

数据库设计

对上述E-R图所需的实体需要的几个关键表的设计如下:

表名:

药品信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

MedicineCode

Char

6

PrimaryKey

NotNull

药品编码

MedicineName

Varchar

32

 

NotNull

药品名称

MedKindCode

Char

10

Foreignkey

NotNull

药品类别代码

Price

Money

8

 

 

售价

ListPrice

Money

8

 

 

进价

Number

Int

4

 

 

库存量

FirmCode

Char

10

 Foreignkey

 

供应商

Usefulllife

Datetime

8

 

 

有效期至

表名:

客户信息

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

GuestCode

Char

10

PrimaryKey

NotNull

客户编码

GuestName

Varchar

16

 

NotNull

客户名称

gLink

Varchar

12

 

 

联系人

gLinkTell

Varchar

11

 

 

联系方式

City

Varchar

8

 

 

所在城市

表名:

供应商信息

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

FirmCode

Char

10

PrimaryKey

NotNull

供应商编码

FirmName

Varchar

16

 

NotNull

供应商名称

Link

Varchar

12

 

 

联系人

LinkTell

Varchar

11

 

 

联系电话

City

Varchar

8

 

 

所在城市

表名:

药品销售主表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

SaleNo

int

4

PrimaryKey

NotNull

销售编码

WorkNo

Char

10

Foreignkey

NotNull

销售员编码

SaleDate

DateTime

8

 

 

销售日期

Amount

Money

8

 

 

总金额

表名:

药品销售子表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

SaleNo

int

4

PrimaryKey

NotNull

销售编码

MedicineCode

Char

6

Foreignkey

NotNull

药品编码

MedicineName

Varchar

32

 

NotNull

药品名称

Price

Money

8

 

 

售价

Number

Int

4

 

 

数量

Unit

Char

8

 

 

单位

Amount

Money

8

 

 

金额

表名:

药品类别索引信息

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

MedKindCode

Char

10

PrimaryKey

NotNull

药品类别代码

KindExplanation

Varchar

12

 

NotNull

类别说明

表名:

员工信息

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

WorkNo

Char

10

PrimaryKey

NotNull

职工号

Name

Varchar

12

 

 

姓名

UserRegName

Char

6

 

NotNull

用户登录名

Password

Char

10

 

NotNull

用户口令

Position

Char

10

 

 

用户身份

Power

Int

4

 

 

用户权限

3.4.2数据库的完整性和安全性

数据库的完整性

数据库的完整性是指数据的正确性和相容性。

数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。

本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。

实体完整性

例如:

CREATETABLEMedInfor/*创建药品信息表*/

(MedicineCodechar(6)constraintM_PRIMPRIMARYKEY,

MedicineNamevarchar(8)NOTNULL,

MedKindeCodechar(10)FOREIGNKEYREFERENCESMedID(MedKindeCode),

PriceMoney(8),

ListPriceMoney(8),

NumberInt(4),

FirmCodechar(10)FOREIGNKEYREFERENCESFirmInfor(FirmCode),

UserfulllifeDatetime)

参照完整性

例如:

createtablesellMain/*创建医药销售主表*/

(SaleNointconstraintSM_PRIMPRIMARYKEY,

WorkNochar(10)FOREIGNKEYREFERENCESWorkInfor(WorkNo),

SaleDateDateTime,

AmountMoney)

数据库的安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。

在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。

本系统包括数据库的安全和服务器的安全。

采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。

在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。

服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。

这是一种简单可行的方法,实现起来比较方便。

没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。

四数据库的运行(SQLServer2000语句完成)

4.1创建医药销售管理系统

createdatabaseMedicalManagerSystem/*创建医药销售管理系统*/

useMedicalManagerSystem

4.2创建药品类别索引信息表

createtableMedID//创建药品类别索引信息表

(MedKindeCodechar(10)constraintMI_PRIPRIMARYKEY,

KindExplanationvarchar(12)NOTNULL)

其余略

4.3建立存储过程向表中插入、修改、删除数据

插入数据的存储过程

createprocMedID_proc

@MedKindeCodechar(10),@KindExplanationvarchar(12)

as

insertintoMedID(MedKindeCode,KindExplanation)values(@MedKindeCode,@KindExplanation)

execMedID_proc'0001','口腔溃疡'

execMedID_proc'0002','感冒'

execMedID_proc'0003','发烧'

execMedID_proc'0004','拉肚子'

execMedID_proc'0005','外伤'

其余略

删除数据的存储过程

createprocMedID_delete_proc

@MedKindeCodechar(10)

as

deletefromMedId

whereMedKindeCode=@MedKindeCode

execMedID_delete_proc'0002'

其余略

修改数据的存储过程

createprocMedID_update_proc

@MedKindeCodechar(10),@KindExplanationvarchar(12),@MedKindeCode1char(10)

as

updateMedID

setMedKindeCode=@MedKindeCode,KindExplanation=@KindExplanation

whereMedKindeCode=@MedKindeCode1

其余略

4.4建立存储过程实现单表查询

/*建立名为“单表查询1”的存储过程,用来查询某种药品的信息*/

createproc单表查询1

@MedicineCodechar(6)

AS

select*

fromMedInfor

whereMedicineCode=@MedicineCode

建立存储过程实现连接查询

/*建立名为“连接查询1”的存储过程,用来查询某个药品名称对应的药品类型的信息*/

createproc连接查询1

@MedicineNamevarchar(8)

as

selectMedicineName,KindExplanation

fromMedInfor,MedID

whereMedID.MedKindeCode=MedInfor.MedKindeCodeand

MedicineName=@MedicineName

/

建立存储过程实现嵌套查询

/*建立名为“嵌套查询1”的存储过错,用来查询某类药品的销售量*/

createproc嵌套查询1

@KindExplanationvarchar(12)

as

selectNumber

fromsellChild

whereMedicineCodeIn(selectMedicineCode

fromMedID

whereKindExplanation=@KindExplanation)

/*建立名为“嵌套查询2”的存储过错,用来查询某个供应商提供的商品*/

createproc嵌套查询2

@FirmNamevarchar(16)

as

selectMedicineName

fromMedInfor

whereFirmCodeIn(selectFirmCode

fromFirmInfor

whereFirmName=@FirmName)

建立存储过程实现集合查询

/*建立名为“集合查询1”的存储过错,用来查询提供某类商品的供应商数*/

createproc集合查询1

@MedicineNamevarchar(8)

as

selectavg(FirmCode)

fromFrimInfor

whereFirmCodein(selectFirmCode

fromMedInfor,FrimInfor

whereMedInfor.FirmCode=FrimInfor.FirmCodeand

MedicineName=@MedicineName)

4.5视图建立

由供应商信息表“FirmInfor”建立一个视图,该视图由供应商信息表的所有列构成*/

createview供应商信息(供应商编码,供应商名称,联系人,联系电话,所在城市)

as

select*fromFirmInfor

4.6建立INSERT触发器

/*建立INSERT触发器*/

createtriggerMedID_insertonMedID

forinsert

asif(selectcount(*)

fromMedID_med,inserted

whereMedID_med.MedKindeCode=inserted.MedKindeCode)=0

rollbacktransaction

4.7建立DELETE触发器

createtriggerdelete_MedIDonMedID

fordelete

as

select*fromMedID

declare@MedKindeCodechar(10)

select@MedKindeCode=MedKindeCodefromdeleted

deletefromMedID

whereMedKindeCode=@MedKindeCode

select*fromMedID

4.8建立UPDATE触发器

createtriggerMedID_updateonMedID

forupdate

as

ifupdate(MedKindeCode)

begin

raiserror('youcannotmodifythiscolumn',16,1)

rollbacktransaction

end

五数据库系统程序

医药销售管理系统SQL语句,如下:

createdatabaseMedicalManagerSystem/*创建医药销售管理系统*/

useMedicalManagerSystem

createtableMedID/*创建药品类别索引信息*/

(MedKindeCodechar(10)constraintMI_PRIPRI

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2