药品销售系统数据库课程设计doc.docx
《药品销售系统数据库课程设计doc.docx》由会员分享,可在线阅读,更多相关《药品销售系统数据库课程设计doc.docx(34页珍藏版)》请在冰豆网上搜索。
药品销售系统数据库课程设计doc
药品销售系统数据库课程设计
前言
随着计算机技术的发展和普及,各行各业的管理机构需要由计算机处理大量的信息。
在我国药品品种繁多,规模甚大,以往的手工记载、查询操作容易出错且工作效率低,已经不能适应时代发展的要求,而且手工管理要浪费许多人力和物力,从管理的角度来看,对管理者会造成诸多的不便,还有可能疏忽一些细节。
利用计算机进行药品管理,堵塞了药品的流失。
规范了价格管理,避免了人为的物价损失,从而明显地提高了经济效益。
将销售行为纳入规范化、公开化的轨道。
21世纪是信息时代,在这个信息时代里竞争异常激烈,手工管理这种传统的管理方法必然被计算机为基础的信息管理所取代,所以实现药品的信息智能化管理特别重要。
因此,本人此次决定选择药品销售管理系统作为数据库课程设计。
我在分析和设计这个系统时,参考了大量相关资料,程序设计采用了面向对象设计方法,这种成熟、高效的设计方法为系统开发带来了便利。
本设计成功运用了PowerDesigner、SQLServer开发技术,设计出了药品销售系统。
此次设计含有供应商信息,客户信息,药品信息,仓库信息,管理员信息,销售信息,供应信息,供应明细,销售明细,供应商往来账,退货返厂。
本设计实现了对这些信息的查询、插入、修改、删除等操作。
工程概况
2.1项目题目
药品销售系统数据库设计
2.2课程设计开发环境
开发的操作系统是WindowsXP。
硬件、软件要求不高,目前市场上的一般计算机软硬件都能满足系统开发要求。
本次系统设计使用的前台开发工具是PowerDesigner。
后台数据库使用的是SQLserver2000。
2.3项目设计背景及意义
开发药店药品销售管理系统能够提高药品销售管理的工作效率、扩大服务范围、增加药店收入、及时获取信息、减少决策失误、减少库存积压、提升员工的素质。
能够及时提供药品基本信息、库存信息、销售业务信息和药店财务信息。
在此基础上,通过对各种信息的综合分析,以改进药品品种、提高服务质量、满足前来购药顾客的不同要求,使药店管理向高质量、科学化发展。
对提高仓储管理的工作效率和对市场的反应能力,能高效益、低库存、保证服务质量的满足药店药品销售日常管理的需要,使其采用现代化管理手段以适应药店药品批发、零售业的发展。
正文
该药品销售系统设计成功运用了PowerDesigner、SQLServer开发技术,设计出了对药品销售的管理信息。
为了方便用户操作,在设置了系统功能,基本信息管理,查询等功能。
在基本信息管理项的供应商信息、客户信息、药品信息、仓库信息等,可以进行添加修改删除等操作,在销售明细中可以查询销售信息,另外也可以查询供应信息及退货返厂的信息。
3.1设计目的和意义
3.1.1设计目的
通过本次数据库系统概论课程的学习与课程设计的制作,使我熟练掌握了PowerDesigner、SQLServer技术设计的基本方法,并学会了SQLServer查询分析器和企业管理器的使用以及如何进行数据库的备份还原的基本知识,还学会了PowerDesigner的制图方法。
同时通过两周的数据库课程设计的制作我还了解了数据库间的关系模型及SQL语言的特点,从而学会了如何建立基本表、定义、插入、删除与修改数据。
通过该课程设计,使我对课本所学的知识得以巩固,将PowerDesigner、SQLServer开发技术相结合开发药品销售系统,这次设计使我们将理论知识和实践有机的相结合,达到了学以致用的真正目的。
3.1.2设计意义
使用PowerDesigner、SQLServer开发数据库。
要求将程序设计完整,编写出美观的界面、操作简单易懂的数据库程序。
运用所学课程的知识分析解决实际问题,使我们掌握数据库设计的基本设计思想、通用方法和步骤。
同时培养我们调查研究、查阅技术文献、资料、手册的动手能力。
3.2设计目标和总体方案
3.2.1设计目标
药品销售系统的主要任务是对药品销售进行管理,使药店的销售管理方便化、智能化,向高质量、科学化发展。
3.2.2设计总体方案
药品销售系统的主要功能包括一下几个方面:
(1)供应商信息管理:
对药品销售系统中的药品供应商进行管理,方便业务联系。
(2)药品信息管理:
对销售的药品进行管理,能查询药品的各项信息,还可以对药品价格调整,药品信息修改。
(3)仓库信息管理:
对存储的药品进行管理,可以清楚的了解药品的存储情况。
(4)销售信息管理:
对药品的销售情况进行管理,可以清楚的查询药品的销售额。
(5)客户信息管理:
对交易客户进行管理,可以查询、录入、修改客户信息。
(6)管理员信息管理:
对药品销售的员工进行管理,包括对员工的基本信息(如管理员的姓名、年龄、联系电话等)进行检索、录入和修改。
3.3设计方法和内容
3.3.1需求分析
开发者首先要了解用户的需求,然后严格地定义该系统的需求规格说明书,这就是先要进行需求分析。
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。
这个步骤是对理解需求的升华,直接关系到该系统的质量。
药店的信息化实施是很紧迫的。
依赖于系统的主要业务有:
进药单登记与保存,库存盘点,药品信息整理与修改,销售药单整理统计,销售额统计等。
经过开发者同客户的需求分析后,确定药品销售系统的功能模块包括:
1)供应商信息管理
2)药品信息管理
3)仓库信息管理
4)销售信息管理
5)客户信息管理
6)管理员信息管理
根据需求分析,所设计系统的相关数据流程如下:
1、基础数据录入:
包括对供应商信息的录入,药品信息的录入,销售信息的录入。
2、数据查询:
对进药信息、售药信息、药品基本信息等的查询。
3、数据分析:
对药品销售情况的统计,即对一段时间内销售额情况的统计与图形分析。
3.3.2软硬件配置
可以根据用户量的大小选择不同的操作系统。
当然,一般情况下,用户对微软Windows界面比较熟悉,因此,建议客户端都使用Windows2000或者WindowsXP操作系统。
3.3.3设计过程
在创建表之前,本人首先绘制出了设计流程图,如下图:
此数据库包含一下表:
客户信息表(Customer)、分配表(Distribution)、药品信息表(Drugs)、管理员信息表(Manager)、退货返厂表(ReturnFanchang)、销售明细表(SaleDetail)、销售表(Salestable)、供应商往来帐(Suppliercurrentaccount)、供应商信息表(Suppliers)、供应信息表(Supply)、供应明细表(SupplyDetail)、仓库信息表(Warehouse)。
药品销售系统设计E-R图:
在Powerdesigner中完成了药品销售系统的数据库设计,设计图如下:
导出的表:
下面介绍这些表的结构:
(1)客户信息表(Customer)
(2)分配表(Distribution)
(3)药品信息表(Drugs)
(4)管理员信息表(Manager)
(5)退货返厂信息表(ReturnFanchang)
(6)销售明细表(SaleDetail)
(7)销售信息表(Salestable)
(8)供应商往来帐(Suppliercurrentaccount)
(9)供应商信息表(Suppliers)
(10)供应信息表(Supply)
(11)供应明细表(SupplyDetail)
(12)仓库信息表(Warehouse)
在Powerdesigner中设计好后,可以生成脚本文件:
(1)创建客户信息表(Customer)的脚本文件如下:
createtableCustomer
(
IDchar(8)notnull,
"Fulltitle"char(30),
Abbreviationchar(10),
Addressvarchar(30),
"Respectivearea"varchar(20),
Telephonevarchar(15),
"Contactperson"varchar(20),
"Bankaccountnumber"varchar(18),
"Taxpayerregistration"varchar(20),
constraintPK_CUSTOMERprimarykey(ID)
);
(2)创建分配表(Distribution)的脚本文件如下:
createtableDistribution
(
War_IDchar(8),
IDchar(8),
Quantityint
);
(3)创建药品信息表(Drugs)的脚本文件如下:
createtableDrugs
(
IDchar(8)notnull,
Namevarchar(20),
"Unitprice"money,
Specificationsvarchar(20),
Originvarchar(20),
Packingchar(15),
Quantityint,
Durabilitychar(10),
"Authorizeddocumentnumber"char(15),
constraintPK_DRUGSprimarykey(ID)
);
(4)创建管理员信息表(Manager)的脚本文件如下:
createtableManager
(
IDchar(8)notnull,
Namevarchar(20),
Ageint,
Sexchar
(2),
telbigint,
adresschar(20),
constraintPK_MANAGERprimarykey(ID)
);
(5)创建退货返厂信息表(ReturnFanchang)的脚本文件如下:
createtable"ReturnFanchang"
(
IDchar(8)notnull,
"ReturnDate"char(20),
"Returnedgoodsquantity"int,
"Unitprice"moeny,
constraint"PK_RETURNFANCHANG"primarykey(ID)
);
(6)创建销售明细表(SaleDetail)的脚本文件如下:
createtableSaleDetail
(
IDintnotnull,
Dru_IDchar(8),
"Sellsthemoneyshop"varchar(20),
"Salesvolume"varchar(20)notnull,
"Unitprice"moneynotnull,
Specificationvarchar(20),
constraintPK_SALEDETAILprimarykey(ID)
);
(7)创建销售信息表(Salestable)的脚本文件如下:
createtable"Salestable"
(
"Sellsthemoneyshop"varchar(20)notnull,
IDint,
"Time"DateTime,
"Hastheamount"money,
constraint"PK_SALESTABLE"primarykey("Sellsthemoneyshop")
);
(8)创建供应商往来帐(Suppliercurrentaccount)的脚本文件如下:
createtable"Suppliercurrentaccount"
(
"Accountserialnumber"char(8)notnull,
IDchar(8),
"Time"varchar(15),
"Billingmethod"varchar(10),
"Settlementamount"money,
constraint"PK_SUPPLIERCURRENTACCOUNT"primarykey("Accountserialnumber")
);
(9)创建供应商信息表(Suppliers)的脚本文件如下:
createtableSuppliers
(
IDchar(8)notnull,
"Fulltitle"varchar(20),
Abbreviationvarchar(10),
Telephonevarchar(15),
Addressvarchar(20),
"Respectivearea"varchar(10),
"Bankaccountnumber"char(20),
"Taxpayerregistration"varchar(20),
constraintPK_SUPPLIERSprimarykey(ID)
);
(10)创建供应信息表(Supply)的脚本文件如下:
createtableSupply
(
IDchar(8)notnull,
"Supplytime"char(20),
"Hastheamount"money,
constraintPK_SUPPLYprimarykey(ID)
);
(11)创建供应明细表(SupplyDetail)的脚本文件如下:
createtableSupplyDetail
(
IDchar(8)notnull,
Dru_IDchar(8),
Supplyfloatnotnull,
"Unitprice"moneynotnull,
Specificationsvarchar(20),
constraintPK_SUPPLYDETAILprimarykey(ID)
);
(12)创建仓库信息表(Warehouse)的脚本文件如下:
createtableWarehouse
(
IDchar(8)notnull,
Namevarchar(20),
Administratorchar(15),
Categorychar(15),
Areafloat,
constraintPK_WAREHOUSEprimarykey(ID)
);
3.4设计创新和关键技术
3.4.1PowerDesigner设计
启动PowerDesigner,在工具栏中选择了Table工具,建立了Table表,他们分别是客户信息表(Customer)、分配表(Distribution)、药品信息表(Drugs)、管理员信息表(Manager)、退货返厂表(ReturnFanchang)、销售明细表(SaleDetail)、销售表(Salestable)、供应商往来帐(Suppliercurrentaccount)、供应商信息表(Suppliers)、供应信息表(Supply)、供应明细表(SupplyDetail)、仓库信息表(Warehouse)。
在各个表中输入相应的信息,研究各个表之间存在的关系,确定主键辅键,调试并生成代码。
3.4.2SQLServer设计
启动SQLServer查询分析器,运行代码并生成表。
进入企业管理器,生成PowerDesigner中建的关系图,新建一个数据库,点击右键,在所有任务中选择导入数据,按提示操作最后生成表,然后备份数据库。
3.4.3关键技术的应用
程序运用了PowerDesigner、SQLServer2000软件开发技术。
在PowerDesigner中建了12个关系图,运行后生成代码,在SQLServer查询分析器里调试,生成了12个表,利用SQLServer的企业管理器,新建数据库,导入数据,然后备份数据。
3.5调试及性能分析
本设计在开始时错误很多,主要是在需求分析方面没有理解清楚,通过指导老师和同学的帮助,程序设计思路变清晰了,经过多次的修改,发展到能运行的程度,它从开始单一的形式发展到了现在的形式多样而操作简单的程度。
程序做出了对供应商信息、药品信息、仓库信息、销售信息、客户信息、管理员信息的管理,在此可以对基础数据录入,包括对供应商信息的录入,药品信息的录入,销售信息的录入。
可以对数据进行查询,例如对进药信息、售药信息、药品基本信息等的查询。
还可以进行数据分析,如对药品销售情况的统计,即对一段时间内销售额情况的统计与图形分析。
以下是插入数据后的表:
(1)客户信息表(Customer)
(2)药品信息表(Drugs)
(3)管理员信息表(Manager)
(4)退货返厂信息表(ReturnFanchang)
(6)销售明细表(SaleDetail)
(7)销售信息表(Salestable)
(8)供应商往来帐(Suppliercurrentaccount)
(9)供应商信息表(Suppliers)
(10)供应信息表(Supply)
(11)供应明细表(SupplyDetail)
(12)仓库信息表(Warehouse)
3.6结果分析
在设计中使用了PowerDesigner制作关系图,形象的突出了系统之间存在的内在关系,使用SQLServer成功的建立和备份了数据库,使设计者节约了时间,提高了设计的效率,最终成功的完成了该设计欲要达到的真正目的。
在此次数据库课程设计中,我遇到了好多问题难以解决,在建立关系的时候,由于没有清楚的理解需求分析,关系建反了。
还有我的数据库表格已经建成了,但在生成代码时出现错误,系统提示是主键和外键设置不当,我仔细检查了PowerDesigner中的框图,还是没有发现错误,然后请教了老师,老师给我仔细分析了各个表之间的一对一,一对多等关系,在指导老师的帮助下,该问题最终得以解决。
致谢
为期两周的课程设计结束了,此次课程设计中本人借助了上网查资料和图书来完成,在整个课程设计的过程中我遇到了很多问题,通过指导老师和同学们的帮助,进一步改进和完善了该系统的设计,我利用PowerDesigner制图,用SQLServer2000建数据库,完成了此次的数据库设计。
在这次数据库课程设计中,我进一步学习了PowerDesigner数据库开发技术,不仅仅用到了SQLServer2000,还用到了PowerDesigner开发技术,以及与之相关的计算机知识。
在这里要感谢学校学院领导和老师们给我们实际操作的机会和为创造了良好的学习条件。
在本次课程设计中,指导老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。
无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助。
在系统开发过程中陈立平老师给予我们很大的帮助,帮助解决了不少的难点,使得系统能够及时开发完成,还有许多同学同样给与了我不少的帮助,衷心的感谢陈立平老师和同学们的精心指导和帮助。
实践是巩固所学知识最好的方法。
这次的系统设计使我学到了很多知识和编程技巧。
也使我自己的水平提升到了一个新的台阶。
再次感谢给予我帮助的老师和同学们。
参考文献
[1]王鹏.数据库技术及其应用.第1版,北京:
人民邮电出版社,2001年2月.
[2]萨师煊,王珊.数据库系统概论.第一版,北京:
高等教育出版社,1983.
[3]邱玉辉主编.数据库实用技术.重庆西南师范大学出版社,2000.
[4]胡铮.数据库管理.第1版,北京:
华夏出版社,2006年1月.
[5]李代平.中文SQLServer2000数据库系统管理.第1版,北京:
冶金工业出版社,2002年6月.
[6]夏邦贵,郭胜.SQLServer数据库开发入门与范例解析.第一版,北京:
机械工业出版社:
第50页
[7]蔡翠平.数据库技术-SQL.第1版,北京:
清华大学出版社,2002年1月.
[8]C.J.Date.数据库系统导论.第一版,北京:
机械工业出版社,2000.
[9]王珊,陈红.数据库系统原理教程.第一版,北京:
清华大学出版社,2005.
[10]丁宝康,董健全.数据库实用教程.第二版,北京:
清华大学出版社,2005.
[11]张莉,王强,赵文,董莉.SQLServer数据库原理及应用教程.第二版,北京:
清华大学出版社,2004.
[12]耿冲.SQLServer2000数据库管理.第二版,北京:
机械工业出版社,2001.
[13]章立民.SQLServer2000Transact_SQL程序设计.第二版,北京:
中国铁道出版社,2000.
[14]朱克勤.数据库系统性能优化方法.第一版,北京:
中国铁道出版社,2004.
[15]宋世斌,李存华.SQLServer中存储过程技术的研究与应用.第二版,北京:
电脑知识与技术学院,2007.
[16]王洪香.基于SQLServer数据库完整性约束的几点探讨.第二版,北京:
清华大学出版社,2006.
[18]王新龙.存储过程应用研究.第一版,北京:
中国铁道出版社,2006.
[19]宋大伟,马凤娟,安庆森.SQLServer中如何在日志文件丢失时恢复数据库.第二版,北京:
教育学院,2005.
[20]梁宾,胡天云.SQLServer中数据库表结构的动态修改.第一版,浙江:
万里学院,2002.
[21]王奇成.Sybase数据库的存储过程性能优化.第二版,北京:
铁路计算机应用,2005.
[22]张义德,于西俭.基于SQLServer的存储过程技术研究.第二版,北京:
航空计算技术,2001.
[23]王洪香.基于SQLServer数据库完整性约束的几点探讨.第二版,北京:
办公自动化,2006.
[24]耿文兰.SQLServer数据库管理与开发.第1版.北京:
电子工业出版社,2003年10月.
[25]刘大玮主编.QLServer数据库项目案例导航.京清华大学出版社,2002:
第33页-35页
[26]刘赛锦.Transact-SQL实例大全.第1版.北京:
国防工业出版社,2002年1月:
第7页
[27]牛勇.SQLServer编程篇.第1版.北京:
电子工业出版社,2005年1月:
第31页-74页
[28]丁宝康.数据库原理.第1版.北京:
北京经济科学出版社,2004年1月:
第51页-68页
[29]姜力.高群.SQLServer数据库设计与管理.第1版.北京:
北京大学出版社,2006年8月:
第49页-92页
[30]邱玉辉.数据库实用技术.第1版.重庆:
西南师范大学出版社,2000年12月:
第25页
附录A程序代码
/*==============================================================*/