药店管理系统数据库报告.docx
《药店管理系统数据库报告.docx》由会员分享,可在线阅读,更多相关《药店管理系统数据库报告.docx(31页珍藏版)》请在冰点文库上搜索。
大连大学信息工程学院
数据库系统课程设计报告
题目:
药店管理系统的设计与开发
作者姓名:
于澜、范震
专业、班级:
软件121
学号:
12427012,12427013
指导教师:
张敏
完成日期:
2014.6.17
目录
目录 2
1. 需求分析 3
1.1引言 3
1.2需求分析阶段的目标与任务 3
1.2.1需求分析阶段的目标 3
1.2.2需求分析阶段的任务 3
1.2.3系统分析 3
13需求分析阶段成果 5
1.3.1数据流图 5
1.3.2数据字典 6
1.3.3系统功能 7
2. 数据库结构设计 7
2.1概念设计 7
2.1.1分E-R图建立 7
2.1.2全局/整体E-R图 9
2.2逻辑设计 9
2.2.1建立关系模式 9
3. 数据库物理设计 10
4. 数据库实施与测试 12
4.1数据库实施 13
4.2数据库测试 13
1. 新建查询窗口 错误!
未定义书签。
2. 在查询窗口中键入下列SQL语句 13
5. 功能实现 17
5-1登录界面 18
5-2注册界面 18
5-3管理操作模块 19
5-4查询药品信息功能 22
5-5修改药品信息功能 22
5-6S询供货单功能 22
5-7查询购货单功能 22
5-8查询供货单功能 22
5-9查询供购商功能 22
5-10查询供货商功能 22
5-11供货公司功能 24
5-11订购药品界面 24
5-11订购成功返回信息 24
6. 总结 25
7. 附录 25
附录1关系模式说明 25
1.需求分析
1.1引言
数据库在零售药店管理系统中占有极其重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
合理的数据库也有利于程序的实现。
设计数据库系统时应首先充分了解用户的各个方面的需求,包括现有的以及将来可能增加的需求。
用户的需求具体体现在对各种信息的提供、保存、更新和交流,这就要求数据库结构能充分满足各种信息的输出和输入。
1.2需求分析阶段的目标与任务
1.2.1需求分析阶段的目标
(1) 了解目前小型药店药品管理的现状以及SQLServer2000的功能和特点。
(2) 通过实地调查的方式了解药店药品管理的业务流程,并记录和处理相关的数据,与用户的实际要求相符,得到用户的认可。
1.2.2需求分析阶段的任务
(1) 详细调查药店药品管理的业务情况,充分了解原来由人工管理的药店的工作概况。
(2) 明确用户买药人员和药店工作人员的各项需求,在此基础上确定新的药店药品管理系统的功能。
(3) 根据自己的调查分析设计出该药店药品管理系统的业务流程图、各阶层的数据流图和数据字典,并虚心向指导老师请教、征求意见,改正不合理的地方,为以下的工作奠定基础。
1.2.3系统分析
通常系统分析包括处理对象、处理功能要求和安全性完整性要求。
(1)处理对象
药店药品管理系统的处理对象主要包括:
药店药品信息、供货商信息、药品购进信息、购货商信息、药品出售信息、药品存储信息等几个方面,其具体内容如下(详细信息查看数据项):
①药店药品信息(t_drug):
药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价、售药单价等方面,这样可以方便的查询药品的基本信息,了解药品盈利情况(单个药品盈利二售药单价-进药单价)、哪种品牌的药品比较畅销等。
② 供货商商信息(t_gonghuoshang):
供货商名称、供货商编号、公司地点、联系电话、联系网址等,便于进药部门查找药品产地、联系药品推定情况等。
③ 购货信息(t-dbuy):
药品编号、供货商编号、处理时间、药品数量、订退方式,提高了购药人员的工作效率能及时的将药品购进,并能根据药品质量有选择性的从制药商那购进较畅销的药品就。
④ 购货商信息(t_gouhuoshang):
购货商名称、购货商编号、公司地点、联系电话、联系网址等,购货商退药时及时确认其售药信息以便进行药品回退工作。
⑤ 售货信息(t_dorder):
购货商编号、药品编号、药品数量、处理时间、售退方式,节约双方的时间,提高药品出售效率。
⑥ 药品存储信息(Store_Dray):
药品编号、药品数量,便于及时查找药品存放位置,节约售药和存药时间。
(2) 处理功能要求
药品管理系统主要完成几个功能:
① 品购进和药品退定信息查询;
② 购货商信息查询与统计;
③ 药品存储信息查询与更新;
④ 药品销售情况统计和药品被退情况查询;
⑤ 药品剩余数量查询与缺货药品查询及统计;
(3) 安全性和完整性要求。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
完整性要求用于描述处理对象中数据项能否为null,以及一些用户自定义完整性(符合实际要求),详细完整性要求见于系统的逻辑设计阶段。
6
图1.1系统流程图
1.3需求分析阶段成果
1.3.1数据流图
1.3.2数据字典
由于数据流程图表达不够准确、具体,只有当数据流程图中出现的每一个成分都给出定义之后,才能完整、准确的描述一个系统,因此,有必要建立数据字典来对数据流程图中的各个元素做出详细的说明。
数据字典通常包括数据项、数据结构、数据存储和处理过程5个部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
(1)数据项
该系统设计的数据项共有27个,如下表:
表1-1药店药品管理系统数据项
数据项编号
数据项名
存储结构
别名
取值约束
DI-1
d_Dno
char(5)
药品编号
DI-2
d_Dname
char(20)
药品名称
DI-3
d_fenlei
int(8)
药品分类
DI-4
d_Dguige
char(10)
药品规格
DI-5
d_Dpinpai
char(30)
药品品牌
DI-6
d_Dpricel
float
进药单价
大于零
DI-7
d_Dprice2
float
卖药单价
大于零
DI-8
d_Gno
char(5)
供货商编号
DI-9
d_Gname
char(10)
供货商姓名
DI-10
d_Gplace
char(20)
购货商地址
DI-U
d_Gphone
char(11)
供货商电话
DI-12
d_Gemail
char(15)
供货商联系网址
DI-13
d_Gpwd
varchar(8)
供货商密码
DI-14
d_Gno
char(5)
供货商编号
DI-15
d_Gname
char(20)
供货商名称
DI-16
d_Gplace
char(20)
供货商公司地点
DI-17
d_Gphone
char(11)
供货商联系电话
DI-18
d_Gemail
char(15)
供货商联系网址
DI-19
d_pwd
varchar(8)
供货商密码
DI-20
d_Dshuliang
int
药品数量
大于零
DI-21
Supply
char(4)
订退方式
订购、退订
DI-22
Deal
char(4)
售退方式
售出、退回
DI-23
d_bianhao
int(11)
编号
DI-24
d_danwei
char(50)
单位
DI-25
d_leixingming
varchar(20)
分类名
DI-26
d_no
int(8)
管理员号
DI-27
d_pwd
varchar(8)
管理员密码
(2)数据结构
该系统设计的数据结构共有7个,具体见下表:
表1-2数据结构列表
数据结构编号
数据结构名
含义说明
组成
DS-1
t_trug
药品信息
d_Dno d_Dname d_Dfenlei d_Dbrand d_Dpricel
d_Dprice2d_Dshuliang
DS-2
t_tgouhuoshang
购货商信息
d_Gnod_Gnamed_Gplaced_Gphoned_Gemail
DS-3
t_tgonghuoshan
供货商信息
d_Gnod_Gnamed_Gplaced_Gphoned_Gemail
g
DS-4
t_oback
药品订退信息
d_Gnod_Dnod_Timed_Quantityd_Supply
DS-5
Stored
药品存储信息
d_Dnod_Dshuliang
DS-6
t_guanliyuan
管理员信息
d_nod_pwd
DS-7
t_fenleibiao
分类信息
d_bianhaod_leixingming
DS-8
t_danweibiao
单位信息
d_bianhaod_danwei
DS-9
t_dorder
订购信息
d_Gnod_Dnod_Quantityd_Timed_Supply
DS-10
t_dbuy
购买信息
d_Gnod_Dnod_Quantityd_Timed_deal
1.3.3系统功能
2.数据库结构设计
2.1概念设计
2.1.1分E-R图建立
根据以上分析,由第二层数据流图得到分E-R图如下:
图2~1药品存储E-R图
图2-2药品售退E-R图
图2-3订退分E-R图
(注:
为了节省篇幅,图中省去了重复的实体所具有的属性)
2.1.2全局/整体E-R图
图2-4全局E-R图
2.2.1建立关系模式
表3-1实体、联系与关系模式表
实体/联系关系模式
药品药品(药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价、买药单
价)
购货商购货商(购货商编号、购货商名称、公司地点、联系电话、联系网址)
供货商供货商(供货商编号、供货商名称、公司地点、联系电话、联系网址)
“订退” 药品订退:
{药品编号、供货商编号、药品数量、处理时间、订退方式}
“售退” 药品售退:
{药品编号、购货商编号、药品数量、处理时间、售退方式}
管理员 管理员(秘密码)
单位 单位(编号单位名)
分类 分类(编号分类名)
“订购” 药品订购:
{药品编号、供货商编号、药品数量、处理时间}
“售货” 药品售货:
{药品编号、供货商编号、药品数量、处理时间}
3.数据库物理设计
3.1建立索引
3.1.1对供货商名字建立索引:
CREATEINDEXMlndex
ONt_gonghuoshang(d_GnameDESC)
3.1.2对进货药品编号建立索引:
CREATEINDEXLIndex
ONt_dorder(d_DnoASC)
3.1.2对购货商建立索引:
CREATEINDEXPIndex
ONt_gouhuoshang(d_GnameASC)
3.1.2对药品编号建立索引:
CREATEINDEXDIndex
ONt_drug(d_DnoASC)
3.2建立视图
3.2.1创建DM_P视图
createviewDM_P
as
selectd_Dname药品名称,d_Dguige规格,d_Dpinpai品牌,d_Gname供货商名称,d_Gplace供货商地址,d_Gphone联系电话,d_Gemai1联系网址
fromt_drug,t_gonghuosgang,
wheret_drug.d_Dno=t_gonghuosgang.d_Dno
withcheckoption
3.2.2创建DM_M视图
createviewDM_M
as
select
d_Dname,d_Dfenlei,d_Dpinpai,d_Dpinpa,d_Dpricel,d_Dprice2,d_Gname,d_Gplace,d_Gphone,d_Gemail
fromt_drug,t_gonghuosgang,t_oback
wheret_drug.d_Dno=t_oback.d_Dnoandt_gonghuosgang.d_Gno=t_oback.d_Gnowithcheckoption
3.2.3创建PD_M视图
createviewPD_M
as
select
d_Gname,d_Gphone,d_Gplace,d_Dname,d_Dprice2,d_Quantity,d_Timefromt_drug,t_gouhuosgang,t_bback
wheret_drug.d_Dno=t_bback.d_Dnoandt_gouhuosgang.d_Gno=t_bback.d_Gnowithcheckoption
3.3创建触发器
3.3.1OBack_Insert的定义:
createtriggerOBack_Insert
ont_oback
afterinsert
as
updatet_drug
sett_drug.d_Quantity=t_drug.d_Quantity-inserted.d_Quantity
fromt_drug,inserted
wheret_drug.d_Dno=inserted.d_Dno
3.3.2DBuy_Insert的定义:
createtriggerDBuy_Insert
ont_dbuy
afterinsert
as
updatet_drug
sett_drug.d_Quantity=t_drug.d_Quantity-inserted.d_Quantity
fromt_drug,inserted
wheret_drug.d_Dno=inserted.d_Dno
3.3.3BBack_Insert的定义:
createtriggerBBack_Insert
onBBack
afterinsert
as
updatet_drug
sett_drug.d_Quantity=t_drugd_Quantity+inserted.d_Quantityfromt_drug,inserted
wheret_drug.d_Dno=inserted.d_Dno
3.4存储过程定义
3.1.2t_drug_Insert的定义
createproceduret_drug_Insert
@d_Dnochar(10),
@d_Dnamechar(20),
@d_Dfenleichar(8),
@d_Dguigechar(30),
@d_Quantityint(11),@d_Dprice2float,@d_Dprice2floatasinsertintoDrug
values(@d_Dno,@d_Dname,@d_Dfenleis,@d_Dguige,@d_Quantity,@d_Dprice2,@d_Dprice2);
3.4.1t_gouhuoshang_Insert的定义
createproceduregouhuoshang_Insert
@d_Gnochar(10),
@d_Gnamechar(20),
@d_Gplacechar(20),
@d_Gphonechar(11),@d_Gemailchar(15)@d_pwdvarchar(8)
asinsertintot_gouhuoshang
values(@d_Gno,@d_Gname,@d_Gplace,@d_Gphone,@d_Gemail,@d_pwd);
3.4.2gonghuoshang_Insert的定义
createproceduregonghuoshang_Insert
@d_Gnochar(10),
@d_Gnamechar(20),
@d_Gplacechar(20),
@d_Gphonechar(11),@d_Gemailchar(15)@d_pwdvarchar(8)
asinsertintot_gonghuoshang
values(@d_Gno,@d_Gname,@d_Gplace,@d_Gphone,@d_Gemail,@d_pwd);
4.数据库实施与测试
4.1数据库实施
见附录1
4.2数据库测试
4.2.1视图
1.销售信息查询
图4.2.1.1销传信息查询
2.售退信息查询
图42L2传退信息查询
3.订购信息查询
图4.2.13订购信息查询
4.订退信息查询
图4.2.1.4订退信息查询
5.药品信息查询
图4.2.1.5药品信息查询
6.供货商信息查询
图4.2.1.6药品信息查询
7.购货商信息查询
测试代码:
EXECt_drug_Insert,1021',感冒通','1','1','河南天方','3','15','1000'
测试结果:
15
图4.2.2.ItdrugInsert测试
2. tgonghuoshangInsert
测试代码:
EXECgonghuoshang_Insert,0000002T,'烟台荣昌制药',
','13453254345','45325445回qq.com'
测试结果:
南京
图4.2.2.2t_gonghuoshang_Insert测试
3.t_gouhuoshang_Insert
测试代码:
EXECt_gouhuoshang_Insert,1000002T,'大连海王星辰大药房',大连','T,'13998567788','896788@qq.com','00000000'
测试结果:
图4.2.2.3t_gouhuoshang_Insert测试
4.2.3触发器测试
16
1、Insert_OR_Update_Durgl:
添加一条销售单时减少药品表相应的药品记录中
的数量
测试代码:
INSERTINTO销售表VALUES(,10000002','1001',10)测试结果:
执行前
图4.2.3.lInsert_OR_Update_Durgl测试1
执行后
图4.2.3.2lnsert_0R_Update_Durgl测试2
2、Insert_0R_Update_Durg2:
添加一条退订单时增加药品表相应的药品记录中的数量
测试代码:
INSERTINTO订退表VALUES('00000001','1001',20)测试结果:
执行前
图4.23.3Insert_0R_Update_Durg2测试
执行后
图4.2.3.4lnsert_0R_Update_Durg2测试2
5.功能实现
5-1登录
登录界面
编写人:
于澜
5-2注册
5-1注册
注册界面
编写人:
于澜
5-3管理操作模块
图5-3管理操作模块此模块可实现如图所示功能编写人:
范震
5-4查询药品信息功能
图5-4查询药品信息功能
查询药品信息及修改编写人:
范震
5-5药品信息修改功能
图5-5药品信息修改功能药品信息修改界面编写人:
范震
5-6查询供货单功能
图5-6查询供货单功能
查看供货单界面编写人:
于澜
5-7查询购货单功能
图5-7查询购货单功能
查看本公司购货单界面
编写人:
于澜
5-8查询购货商操作
图5-8查询购货商操作查询为本公司购货的供货公司界面
编写人:
范震
5-9查询购货商操作
图5-9查询购货商操作查询在本公司购货的购货公司信息界面编写人:
范震
5-10购货公司功能
图5-10购货公司功能
购货公司功能界面
25
5T1供货公司功能
图5-11供货公司功能
供货公司功能界面,用户可进行上述功能操作
编写人:
范震
5~12订购药品界面
图5-12ij购药品界面
26
订购药品界面
5-L3订购成功后返回信息
图5-13订购成功后返回信息编写人:
于澜
6.总结
此次的设计是一个新的体验、新的挑战,在此过程中不但应用了所学知识,而且还不但学习新的知识、工具,己完成设计的需要,在设计的过程中深深地体会到作为一个学习计算机的人,为了实现一段代码、为了一个设计的实现思想、经常绞尽脑汁来达到设计所要达到的目的,并且在此期间积累了许多宝贵的经验,这都是我们以后走上工作岗位的巨大财富。
经过5天的努力,完成数据库各阶段设计,建立10张基本表、7张视图、3个存储过程,2个触发器,并在SQLserver下建立数据库完成数据导入、并对相关内容进行测试。
这次实习意义重大,通过本次实习将课堂所学的理论知识应用与实践,为以后的设计提供了有力的支持,也打下良好的基础。
7.附录
附录1关系模式说明
1. 创建数据库
createdatabaseDrugStore
2. 创建基本表
2-1药品表
27
28
CREATETABLE't_drug'(
'd_Dno'charQO)NOTNULLdefault''COMMENT'编号',
'd_Dname'char(20)NOTNULLCOMMENT'名称',
'd_Dfenlei'int(8)NOTNULLCOMMENT'分类',
、d_Dguige'