




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据库原理课程设计题 目 医药销售管理系统 学 院 XXXX 专 业 XXXXXXXXXXXX 班 级 XXXXX 学 号 XXXXXXX 学生姓名 XXXXXX 指导教师 XXX 编写日期 2013. 07. 11 目 录1 系统需求分析31.1 系统调查31.2 系统目标与要求31.3 用户需求41.4 系统业务流程图42 系统逻辑方案42.1 数据流图52.2 数据字典63系统总体结构设计83.1 软件系统总体结构设计83.2 数据存储的总体设计83.3 系统功能模块设计84 数据库详细设计94.1 数据库设计94.2 数据库的完整性和安全性145数据库操作156 心得体会24 1 系
2、统需求分析1.1 系统调查 随着近年来我国医药事业的迅速发展,我国药品企业的经营呈现了多态式,例如大型药品超市、连锁药店、小型药品商店等综合发展。随着社会经济的发展提高,这些医药企业也在不断地扩大规模,因此传统的医药销售系统已经不能满足医药企业的需求。 通过调查从事医药产品的零售、批发等工作的企业,发现该企业的主要业务包括企业药品销售、出入库管理、企业的财务、人事管理等。医药管理本身就是一项复杂、琐碎但又需要足够的细心,是考验人的耐心的一项工作。手工进行企业的日常药品销售,常常会出现很多错误,例如开错单、开空单等不同现象,既费时又费力而且还得不到好的结果,这些问题常常令销售人员头疼,却总是没有
3、好的解决办法。本系统在设计中考虑和克服了上述问题,实现了企业管理工作的系统化、规范化和自动化。1.2 系统目标与要求要设计一个性能良好的医药销售管理管理系统,明确用户的应用环境对系统的要求是首要的和基本的要求,使其具有较高的可靠性、安全性和易维护性,以及可移植性。本系统实现了以下六个的功能:(1)基础信息管理模块:包括药品信息、员工信息、客户信息、供应商信息四个子模块。(2)进货管理模块:包括入库登记、入库登记查询、入库报表三个子模块。(3)库房管理模块:包括库存查询、库存盘点、退货处理、库存报表四个子模块。(4)销售管理模块:包括销售登记、销售退货、销售报表查询三个子模块。(5)财务统计模块
4、:包括当日统计、当月统计报表两个子模块。(6)系统维护模块说明:根据对现实中医药销售管理业务,将用户分为二类超级管理员(经理)、普通管理员(操作员)。 1.3 用户需求(1)员工需求:员工需要对医药销售管理,指对药品信息的录入、更新、修改和删除;员工需要查询药品信息,以了解是否有该药品和库存等信息;员工需要销售药品,出库记录;员工需要管理退还药品,入库记录;员工需要管理现金收支,指对进出帐目的记录统计。(2)顾客需求:顾客需要查询药品信息;顾客选购药品。1.4 系统业务流程图业务流程图的符号说明如图2.2所示:1、 2、 3、 4、 5、系统中人员 实体或单据 实物或信息流 处理 数据存储 图
5、2.2 业务流程图图例查询查询号选购取药单库房查询查询号客户员工药品的录入、更新、修改、删除销售 退还出库记录现金处理账目统计2 系统逻辑方案系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。即在无纸化网络考试系统管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。2.1 数据流程图(DFD):数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输
6、出、数据存储及数据来源和去向(外部实体)等项目。首先,分析无纸化网络考试管理系统的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。数据流程图的符号说明如图2.4所示。 外部实体 处理 数据流 数据存储图2.4 查询 药品的录入、更新、修改、删除现金处理 客户 员工 账目统计销售 退还 出库记录 2.2 数据字典(简称DD)绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数
7、据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。数据项的DD表列举如下:表2.1 药品编号的数据字典 数 据 项系统名:医药销售管理系统 编号:I001 名称:药品编码 别名: 数据项值: 类型:字符型 长度:6个字节 取值范围:简述:每种药品都具有唯一的编号,它是某种药品的唯一标识符,每种药品都有唯一的编号,如“011976”通常用前两位数字表示入库的年份,中间两位表示类别,最后两位
8、表示该药的序号。如果该类药数超过100种时,可用“0119A0”表示第100种药。修改记录:编写日期审核日期表2.2 药品名称 数 据 项系统名:医药销售管理系统 编号:I002 名称:药品名称 别名:数据项值: 类型:字符型 长度:32个字节 取值范围:简述:每种药品都具有唯一药品标识。修改记录:编写日期审核日期表2.3 密码 数 据 项系统名:医药销售管理系统 编号:I003 名称:售价 别名:数据项值: 类型:数值型 长度:8个字节 取值范围:简述:每种药品都要设置一个销售价格。修改记录:编写日期审核日期3 系统总体结构设计3.1软件系统总体结构设计软件系统总体结构设计的主要任务就是将整
9、个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设计。3.2数据存储的总体设计 按用途分类可把本系统文件分成以下几种:(1) 主文件:系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。它需要长期保存,并不断更新。(2) 处理文件:处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如新闻登录日志文件、待审核项目信息文件。3.3系统功能模块设计通过对系统的数据流图进行分析,进一步进行功能分解,直到分
10、解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图。运行医药销售管理系统用户登入员工登入经理登入现金收支查询药品信息选购药品退还药品销售药品查询药品信息医药销售管理 4 数据库详细设计4.1数据库设计数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。1)
11、 ER图设计 E-R图:在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。各分E-R图说明如下:密码用户名 经理E-R图:经理 供应商E-R图:供应商名称供应商号联系人供应商供应商所在城市联系方式 员工E-R图:员工号权限姓名员工用户名密码职位 药品销售清单E-R图:药品名称销售编码数量药品编码药品销售清单供应商单价总额销售日期销售员编号 客户E-R图:联系方式客户号客户
12、所在城市客户客户名称联系人 药品E-R图:药品卖票代号编号药品编号药品名称有效期供应商药品库存量售价进价 整体E-R图:供应商查询经理1n 查询管理 nn供应药品查询查询药品销售查询客户管理员工 mnmmn mn 医药销售管理中所涉及到的主要实体集及其属性如下:药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期) 药品分类索引信息(药品类别代号,类别说明)员工信息(员工号,姓名,用户名,密码,职位,权限)客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药
13、品编码,药品名称,单价,数量,供应商,总额,销售员编码) 2)逻辑结构设计(E-R图向关系模型的转换)ER图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系横式的属性和码。 对于实体间的联系我们分不同的情况讨论:(1) 若实体间的联系是1:1,可以在两个实体转换成的两个关系中任意一个关系的属性中加入另一个关系的码。(2) 若实体间联系为1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。(3) 若实体间联系为n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。由以上三点,可转换为关系模型。每个关
14、系的码用下划线表示。药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期) 药品分类索引信息(药品类别代号,类别说明)员工信息(员工号,姓名,用户名,密码,职位,权限)客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商,总额,销售员编码) 数据库设计对上述E-R图所需的实体需要的几个关键表的设计如下:药品信息表字段名字段类型长度主键或外键字段值约束对应中文属性名MedicineCodeChar6Primary KeyNo
15、t Null药品编码MedicineNameVarchar40 Not Null药品名称MedKindCodeChar10Foreign keyNot Null药品类别代码PriceMoney8 售价ListPriceMoney8 进价NumberInt4 库存量FirmCodeChar10Foreign key 供应商UsefulllifeDatetime8 有效期至客户信息表字段名字段类型长度主键或外键字段值约束对应中文属性名GuestCodeChar10Primary KeyNot
16、 Null客户编码GuestNameVarchar16Not Null客户名称gLinkVarchar12联系人gLinkTellVarchar11联系方式CityVarchar8所在城市供应商信息表字段名字段类型长度主键或外键字段值约束对应中文属性名FirmCodeChar10Primary KeyNot Null供应商编码FirmNameVarchar16Not Null供应商名称LinkVarchar12联系人LinkTellVarchar11联系电话CityVarchar10所在城市药品销售主表字段名字段类型长度主键或外键字段值约束对应中文属性名SaleNoint4Primary Ke
17、yNot Null销售编码WorkNoChar10Foreign keyNot Null销售员编码SaleDateDateTime8销售日期AmountMoney8总金额药品销售子表字段名字段类型长度主键或外键字段值约束对应中文属性名SaleNoint4Primary KeyNot Null销售编码MedicineCodeChar6Foreign keyNot Null药品编码MedicineNameVarchar32Not Null药品名称PriceMoney8售价NumberInt4数量UnitChar8单位AmountMoney8金额药品类别索引信息表字段名字段类型长度主键或外键字段值约
18、束对应中文属性名MedKindCodeChar10Primary KeyNot Null药品类别代码KindExplanationVarchar12Not Null类别说明员工信息表字段名字段类型长度主键或外键字段值约束对应中文属性名WorkNoChar10Primary KeyNot Null职工号NameVarchar12姓名UserRegNameChar6Not Null用户登录名PasswordChar10Not Null用户口令PositionChar10用户身份PowerInt4用户权限4.2 数据库的完整性和安全性1)数据库的完整性数据库的完整性是指数据的正确性和相容性。数据库管
19、理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。2)数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而
20、是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。5 数据库操作(1)建立数据库create database Medical
21、SellManagerSystem/*创建医药销售管理系统*/gouse MedicalSellManagerSystem(2) 建立各个表,包括各种约束条件create table MedID/*创建药品类别索引信息*/ (MedKindeCode char(10) constraint MI_PRI PRIMARY KEY, KindExplanation varchar(12) NOT NULL)create table FirmInfor/*创建供应商信息表*/ (FirmCode char(10) constraint F_PRIM PRIMARY KEY, FirmName var
22、char(16) NOT NULL, Link varchar(12), LinkTell varchar(11), City varchar(10)create table WorkInfor/*创建员工信息表*/ (WorkNo char(10) constraint W_PRIM PRIMARY KEY, Name varchar(12), UserRegName char(6) NOT NULL, Password char(10) NOT NULL, Position char(10), Power Int) create table MedInfor/*创建药品信息表*/ (Med
23、icineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(40) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode), Price Money, ListPrice Money, Number Int, FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode), Userfulllife Datetime)create table GueInfor/*创
24、建客户信息表*/ (GuestCode char(10) constraint G_PRIM PRIMARY KEY, GuestName varchar(16) NOT NULl, GLink varchar(12), GLinkTell varchar(11), City varchar(8)create table sellMain/*创建医药销售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo), SaleDate DateTi
25、me, Amount Money)create table sellChild/*创建医药销售子表*/ (SaleNo int constraint SC_PRIM PRIMARY KEY, MedicineCode char(6) FOREIGN KEY REFERENCES MedInfor(MedicineCode), MedicineName varchar(32) NOT NULL, Price Money, Number Int, Uint char(8), Amount Money)MedID表Insert into MedID values('0001',
26、9;口腔溃疡')Insert into MedID values('0002','感冒')Insert into MedID values('0003','发烧')Insert into MedID values('0004','拉肚子')Insert into MedID values('0005' ,'外伤')FirmInfor表Insert into FirmInfor values('015','yangshengtang
27、9;,'xiaotai','681472','huzhou')Insert into FirmInfor values('014','baozhilin','zhangqing','658421','deqing')Insert into FirmInfor values('051','pinmingdayaofang','oudan','65417','xiangshan')MedInf
28、or表Insert into MedInfor values('1012','板蓝根','0002',5,3,'100','014','2010-12-5')Insert into MedInfor values('2014','银黄颗粒','0002',12,8.8, '120 ','014','2012-10-6')Insert into MedInfor values('2015',
29、'感冒清热软胶囊','0002',17,12, '150','015', '2011-11-1')Insert into MedInfor values('3012','阿斯匹林','0003',15,11,'100','014','2010-12-1')Insert into MedInfor values('4012','诺氟沙星胶囊','0004',15,12,
30、9;100','015','2012-9-16')Insert into MedInfor values('5012','创口贴','0005',2,1,'250','014','2015-5-1')GueInfor表Insert into GueInfor values('015112','zhangsan','xiaozhang','668401','jiaxing')Inse
31、rt into GueInfor values( '065114','lisi','xiaofang','614425','yuyao')Insert into GueInfor values('052114','wangwu','xiaowu','659024','wenzhou')Insert into GueInfor values('043115','zhaoliu','xiaowu
32、9;,'615874','shangyu')Insert into GueInfor values( '014221','awu','xiaozhang','651283','linan')Insert into GueInfor values('025471','asha','xiaofang','691472','dongyang')WorkInfor表Insert into WorkInfor va
33、lues('075101','ZKL','zkl01','456789','jingli','')Insert into WorkInfor values( '075201','ZJM','zjm01','123789','dongshi','')Insert into WorkInfor values('075215','WMX','wmx05','
34、;147258','xiaomi','')Insert into WorkInfor values( '075120','ZZW','zzm20','123456','buzhang','')sellMain表Insert into sellMain values('12','075101','2009-1-1',1000)Insert into sellMain values( '13',
35、9;075201','2009-1-1',1500)Insert into sellMain values('15','075215','2009-1-1',800)Insert into sellMain values( '20','075120','2009-1-1',1200)sellChild表Insert into sellChild values('13','1012','板蓝根',5,'20',
36、39;bao',100)Insert into sellChild values('20','3012','阿斯匹林',15,'20','he',300)(3) 建立存储过程向表中插入、修改、删除数据插入过程:create proc FirmInfor_procFirmCode char(10),FirmName varchar(16),Link varchar(12),LinkTell varchar(11),City varchar(10)asinsert into FirmInfor(FirmCode
37、,FirmName,Link,LinkTell,City)values(FirmCode,FirmName,Link,LinkTell,City)exec FirmInfor_proc '013','liaoyanling','xiaota','671078','leshan'修改过程:create proc FirmInfor_update_procFirmCode1 char(10),FirmName varchar(16),Link varchar(12),LinkTell varchar(11),City
38、varchar(10),FirmCode char(10)asupdate FirmInforset FirmCode=FirmCode1,FirmName=FirmName,Link=Link,LinkTell=LinkTell,City=Citywhere FirmCode=FirmCode删除过程:Create proc FirmInfor_deleteFirmCode char(10)asdelete from FirmInforwhere FirmCode=FirmCode(4) 建立存储过程实现单表查询(5个)、连接查询(5个)、嵌套查询(2个)单表查询:1) 查询药品编码为101
39、2的药品名称。declare MedicineName varchar(40)select MedicineName=MedicineName from MedInforwhere MedicineCode='1012'print MedicineName2)查询所在城市为温州的客户姓名。declare GuestName varchar(16)select GuestName=GuestName from GueInforwhere City='wenzhou'print GuestName3) 查询销售金额为100的药品名称。declare Medicine
40、Name varchar(32)select MedicineName=MedicineName from SellChildwhere Amount='100'print MedicineName4) 查询销售时间为2009年1月1日的销售编码。declare SaleNo intselect SaleNo=SaleNo from SellMainwhere SaleDate='2009-01-01'print SaleNo5) 查询供应商名字为养生堂的联系人。declare Link varchar(12)select Link = Link from Fi
41、rmInforwhere FirmName='yangshengtang'print Link连接查询:1) 查询销售员编码为075201的药品名称。declare MedicineName varchar(32)select MedicineName=sellChild.MedicineNamefrom sellMain, sellChildwhere sellMain.SaleNo= sellChild.SaleNo and WorkNo='075201'print MedicineName2)查询价格为15的药品类别说明。declare KindExpla
42、nation varchar(12)select KindExplanation= MedID.KindExplanationfrom MedInfor,MedID where MedID.MedKindeCode=MedInfor.MedKindeCode and Price='15'print KindExplanation3)查询所在城市为湖州的供应商姓名。declare FirmName varchar(16)select FirmName = FirmInfor.FirmNamefrom MedInfor,MedID,FirmInforwhere MedID.MedK
43、indeCode=MedInfor.MedKindeCode and MedInfor.FirmCode=FirmInfor.FirmCode and City='huzhou'print FirmName4)查询供应商编码为014的药品类别说明。declare KindExplanation varchar(12)select KindExplanation =MedID. KindExplanationfrom sellChild,MedID,MedInfor where MedID.MedKindeCode=MedInfor.MedKindeCode and MedInf
44、or.MedicineCode=sellChild.MedicineCode and FirmCode='014'print KindExplanation5)查询用户口令为123456的药品名称。declare MedicineName varchar(32)select MedicineName = MedInfor.MedicineNamefrom WorkInfor,sellChild,MedInfor,sellMainwhere WorkInfor.WorkNo=sellMain.WorkNo and sellMain.SaleNo=sellChild.SaleNo
45、and sellChild.MedicineCode=MedInfor.MedicineCode andPassWord='123456'print MedicineName嵌套查询:1)查询进价为11.00的供应商名字。declare FirmName Varchar(16)select FirmName= FirmName from FirmInforwhere FirmCode =(select FirmCode from MedInfor where ListPrice='11.00')print FirmName2)查询职工号为ZZW负责的药品名称。declare MedicineName Varchar(40)select MedicineName = MedicineName from sellChildwhere SaleNo =(select SaleNo from sellMain where WorkNo in(Select WorkNo from WorkInfor where WorkInfor.Name='ZZW' )print MedicineName(5) 视图建立(根据用户需求建立若干视图)1)药品类别的视图create view Yaopinasselect* from MedID2)供应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 助理广告师试题及答案有效解答
- 2024年广告中价值观表达试题及答案
- 2024年纺织品质量检验要点试题及答案
- 助理广告师评估标准解读试题及答案
- 全面提升国际商业美术设计师试题及答案
- 服装展览展示技巧试题及答案
- 儿童安全教育试题及答案
- 2024年助理广告师考试模拟考试准备试题及答案
- 2024年考试直击核心考点的技巧试题及答案
- 2024年助理广告师考试流程指南试题及答案
- 数字贸易学 课件 第21、22章 数字自由贸易与数字贸易壁垒、数字贸易规则构建与WTO新一轮电子商务谈判
- 中小学必背飞花令诗词-(春、月、风、花、山、江、人、日、动物、颜色、数字)
- 旅客列车客运乘务 第四版 课件 第三章 旅客列车乘务作业
- 口腔临床操作规范培训课件
- 财务管理-审计风险及其防范措施-以普信永和会计师事务所为例
- 高中定语从句100题(含答案)
- 足球鞋选购指南
- 某标准件厂冷镦车间低压配电系统及车间变电所设计(超详细)
- 日本大众文化-北京科技大学中国大学mooc课后章节答案期末考试题库2023年
- 朝花夕拾电子版打印
- 初中数学北师大八年级下册第五章分式与分式方程认识分式
评论
0/150
提交评论