数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
![数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-1/9/c2c37d6d-9a3e-4bf4-8944-c0040f6a9c43/c2c37d6d-9a3e-4bf4-8944-c0040f6a9c431.gif)
数据库课程设计报告
洛阳理工学院
课程设计报告
课程名称数据库课程设计
设计题目药店管理系统
专业计算机科学与技术
班级
学号
姓名
完成日期2016.12.30
课程设计任务书
设计题目:
药店管理系统
设计内容与要求:
设计内容:
设计实现药店管理系统。
能够实现药品库存管理、销售信息管理和
查询功能:
库存管理:
包括药品入库、出库管理,药品库存报警,药品有效期管理(过期
报警)。
销售管理:
根据实际销售自动生成销售单据。
如果是会员,则药品价格按95
折计算。
查询及统计功能:
对指定时间段内的出/入库进行查询/统计,对药品有效期进
行查询/统计,对药品过期进行查询/统计,对指定时间段内的药品销售进行查询/
统计以及利润查询/统计等。
能帮顾客查询药品信息,能按品名、生产厂家、药品
类别、存货量进行查询。
设计要求:
1.完成数据库概念结构设计、逻辑结构设计、物理结构设计;
2.创建数据库,完成表、存储过程、触发器等数据库对象设计;
3.用JAVA语言,完成信息系统的部分程序界面设计与调试运行。
指导教师:
2016年12月24日
课程设计评语
成绩:
指导教师:
_______________
2017年1月3日
洛阳理工学院课程设计报告
1概述.....................................................................................................................................1
1.1本设计的背景和意义.....................................................................................................1
1.2采用的数据开发工具及应用开发工具...........................................................................1
2需求分析..............................................................................................................................1
2.1功能需求.......................................................................................................................1
2.2数据需求.......................................................................................................................1
3概念结构设计......................................................................................................................2
4逻辑结构设计......................................................................................................................2
4.1建立关系模式................................................................................................................3
4.2关系模式规范化处理.....................................................................................................3
5物理结构设计......................................................................................................................3
5.1建立数据库...................................................................................................................3
5.2数据表创建...................................................................................................................3
5.2存储过程创建................................................................................................................6
5.3数据触发器创建..........................................................................................................11
6JAVA对数据库系统的实现...............................................................................................12
6.1登录界面及系统主界面...............................................................................................12
6.2库存管理.....................................................................................................................13
6.3销售管理.....................................................................................................................14
6.4信息查询.....................................................................................................................15
7设计总结............................................................................................................................17
附录......................................................................................................................................18
I
洛阳理工学院课程设计报告
II
洛阳理工学院课程设计报告
1概述
1.1本设计的背景和意义
了解到部分药店因为规模较小没有专业的药店管理系统,本设计能够适应于
规模较小的药店。
通过运用数据库库技术,不仅可以使药店的管理更加方便,并
且还能提高数据的正确性。
该药店管理系统以进货、存储、销售为主要业务,分
别实现其他具体功能。
1.2采用的数据开发工具及应用开发工具
本设计采用的数据开发工具为SQLServer2008,应用开发工具为Eclipse
2需求分析
2.1功能需求
药店管理系统能够实现药品库存、销售信息管理和查询功能,根据实际销售
自动生成销售单据。
能帮顾客查询药品信息,能按品名、生产厂家、药品类别、
存货量进行查询。
2.2数据需求
经过对学校附近的药店的调研以及在网上查找的资料,药店药品管理系统的
处理对象主要包括:
药品信息、供应商信息、顾客信息、药品销售信息、药品存
储信息等几个方面。
根据市场需求需要的数据组成如下需要的数据有操作员、会
员、药品、订单、厂家、进货单这些实体的组成数据有,操作人员需要包括:
账
号、密码、姓名、联系电话、邮箱、地址;会员表:
账号、姓名、年龄、联系电
话、邮箱、地址;药品信息中含有:
药品ID、药品名、类别、生产日期、有效期、
进价、售价、生产厂家;订单详情中含有的有:
订单编号、药品名、购买数量、
售价、购买人员、销售日期;厂家信息包括:
厂家编号、厂家名、电话、地址;进
药表、药品ID、操作员、进药日期、进药数量
1
洛阳理工学院课程设计报告
3概念结构设计
将需求分析阶段得到的用户需求抽象为信息结构即概念模型的过程就是
概念结构设计,它是整个数据库设计的关键,它通过对用户需求进行综合、
归纳、抽象,形成一个独立于具体DBMS的概念模型。
根据需求分析,在该系统中存在以下实体集:
药品信息实体集、顾客信
息实体集、厂家信息实体集、销售信息实体集等等。
根据需求做出的E-R图如下图2-1
姓名密码
有效期生产期
电话
ID
账号
售价
邮箱
地址
进价N
管理操作员
仓库
1
数量
1
1
编号
批次
存储
处理品名
电话
N
姓名
地址数量
NN
1
厂家生产
N
药品
参照
订单
售价
买家N
N
日期编号
提交
会员
厂名
1
ID
编号
账号
名称
类别
年龄
邮箱
姓名
电话
总体E-R图2-3-1
2
洛阳理工学院课程设计报告
4逻辑结构设计
4.1建立关系模式
操作人员(账号、密码、姓名、联系电话、邮箱、地址)
会员(账号、姓名、年龄、联系电话、邮箱、地址)
药品(药品ID、药品名称、类别、生产厂家编号)
仓库(批次ID、药品ID、药品名、类别、生产日期、有效期、进价、售价、
生产厂家)
订单详情(订单编号、药品名、购买数量、售价、购买人员、销售日期、操
作员姓名)
厂家(厂家编号、厂家名、电话、地址)
进药(药品ID、操作员姓名、进药日期、进药数量)
4.2关系模式规范化处理
根据函数依赖关系,分析得每一个关系模式均满足3NF。
5物理结构设计
5.1建立数据库
物理设计时为逻辑数据模型选取一个最合适应用环境的物理结构(包括存储
结构和存取方法),数据库的物理结构通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
由于本次课程设计的数据库数据量不大,再加上数据库实施软件会自动建立
一些索引,所以这里没有必要特别建立索引。
需要创建一个数据库文件,命名为DrugControl
创建数据库语句为createdatabaseDrugControl
5.2数据表创建
(1)创建Drug表,如图5-1
createtableDrug(--品名
Dnovarchar(10)primarykey,--药品编号
Dnamevarchar(20)notnull,--药品名
3
洛阳理工学院课程设计报告
Dclassvarchar(20),--药品类别
Snamevarchar(20)--生产厂家
)
图5-1
(2)创建供应商Suppliter表如图5-2
createtableSupplier(--供应商
Snovarchar(10)primarykey,
Snamevarchar(20)notnull,
Sphonechar(11),
Semailvarchar(20),
Saddressvarchar(50))
图5-2
(3)创建管理员表Opert如图5-3
createtableOpert(--管理员
Mnovarchar(10)primarykey,
Mpasswvarchar(20),
Mnamevarchar(20)notnull
Mphonechar(11),
Memailvarchar(20),
Maddressvarchar(50)
)
图5-3
(4)创建会员表Customer如图5-4
createtableCustomer(--会员
Cnovarchar(10)primarykey,
Cnamevarchar(20)notnull,
Cageintcheck(Cage>0orCageisnull),
Cphonechar(11),
Cemailvarchar(20),
Caddressvarchar(50)
)
4
洛阳理工学院课程设计报告
图5-4
(5)创建库存表Dugstore如图5-5
createtableDrugstore(--库存
Lnovarchar(10)primarykey,--入库编号
Dnovarchar(10),--药品编号
Dnamevarchar(20)notnull,--药品名
Dclassvarchar(20),--药品类别
Pquantityint,--药品数量
Idatedate,--入库时间
out_datedate,
Dbiddfloat,
Dpricefloat,
Snamevarchar(20),--厂家名
Mnamevarchar(20),--操作员姓名
foreignkey(Dno)referencesDrug(Dno),
)
图5-5
(6)创建出售表Sale如图5-6
createtableSale(--出售
Slnovarchar(10),
Dnovarchar(10),
Cnovarchar(10),
Ddpricefloat,
Mquantityint,--销售数量
Amoneyfloat,
Idatedate,--销售日期
foreignkey(Dno)referencesDrug(Dno),
)
图5-6
(7)创建缺货单A如图5-7
createtableAbsence(--缺货单
Lnovarchar(10)primarykey,
Dnovarchar(10),
Pquantityint,
Pdadedate,
5
洛阳理工学院课程设计报告
Astatevarchar(10),
foreignkey(Dno)referencesDrug(Dno)
)
图5-7
(8)数据视图创建
根据需求仅需要创建一个视图就可以完成所需要的功能,需要创建的视图为“即将过期的药
品”如图5-8
createview即将过期药品单(Lno,Dname,Dclass,Pquantity,lessdate)
as
selectLno,Dname,Dclass,Pquantity,DATEDIFF(day,GETDATE(),out_date)
fromDrugstore
图5-8
5.2存储过程创建
(1)创建增加会员存储过程
*增加会员*/
createprocedure增加会员
@Cnamevarchar(20),
@Cageint,
@Cphonechar(11),
@Ccemailvarchar(20),
@Caddressvarchar(50)
as
declare@iint,@nvarchar(10)
select@i=max(cast(substring(Cno,2,len(Cno)-1)asint))+1from
Customer--获取最大值+1
select@n=substring('C0000',1,5-len(@i))+cast(@iasvarchar(5))--转
换成编号
insertintoCustomer
values(@n,@Cname,@Cage,@Cphone,@Ccemail,@Caddress)
验证存储过程如图5-9
exec增加会员'没','12','111111','1@','理工'
图5-9
6
洛阳理工学院课程设计报告
(2)创建增加操作人员存储过程
/*增加操作人员*/
createprocedure增加操作员
@Mpasswvarchar(20),
@Mnamevarchar(20),
@Mmphonechar(11),
@Mmemailvarchar(20),
@Mmaddressvarchar(50)
as
declare@iint,@nvarchar(10)
select@i=max(cast(substring(Mno,2,len(Mno)-1)asint))+1fromOpert
--获取最大值+1
select@n=substring('C0000',1,5-len(@i))+cast(@iasvarchar(5))--转
换成编号
insertintoOpert
values(@n,@Mpassw,@Mname,@Mmphone,@Mmemail,@Mmaddress)
验证存储过程如图5-10
exec增加操作员'1','感冒','11111111','111111@','洛阳理工'
图5-10
(3)创建增加品名存储过程
/*增加品名*/
createprocedure增加品名
@Dnamevarchar(20),
@Dclassvarchar(20),
@Snamevarchar(20)
as
declare@iint,@nvarchar(10)
select@i=max(cast(substring(Dno,2,len(Dno)-1)asint))+1fromDrug--
获取最大值+1
select@n=substring('D0000',1,5-len(@i))+cast(@iasvarchar(5))--转
换成编号
insertintoDrugvalues(@n,@Dname,@Dclass,@Sname)
7
洛阳理工学院课程设计报告
验证存储过程如图5-11
exec增加品名'感冒灵颗粒','感冒用药类','蜀川'
图5-11
(4)创建增加入库存储过程
/*增加入库*/
createprocedure增加药品
@Ddnovarchar(10),--入库编号
@Dnamevarchar(20),
@Dclassvarchar(20),
@Pquantityint,
@Snamevarchar(20),
@Out_datedate,
@Dbiddfloat,
@Dpricefloat,
@Mnamevarchar(20)
as
declare@iint,@nvarchar(10)
select@i=max(cast(substring(Lno,2,len(Lno)-1)asint))+1from
Drugstore--获取最大值+1
select@n=substring('D0000',1,5-len(@i))+cast(@iasvarchar(5))--转
换成编号
insertintoDrugstore
values(@n,@Ddno,@Dname,@Dclass,@Pquantity,GETDATE(),@Out_date,@Dbi
dd,@Dprice,@Sname,@Mname)
验证存储过程如图5-12
exec增加药品
'D0002','感冒灵颗粒','感冒用药类',5,'蜀川','2017-11-11','1','2','ll'
图5-12
8
洛阳理工学院课程设计报告
(5)创建增加供应商存储过程
/*增加供应商*/
createprocedure增加供应商
@Snamevarchar(20),
@Sphonechar(12),
@Saddressvarchar(50),
@Semailvarchar(20)
as
declare@iint,@nvarchar(10)
select@i=max(cast(substring(Sno,2,len(Sno)-1)asint))+1from
Su