数据库课程设计超市管理系统.docx
《数据库课程设计超市管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计超市管理系统.docx(10页珍藏版)》请在冰点文库上搜索。
数据库课程设计超市管理系统
数据库课程设计--超市管理系统
课程设计说明书
课程设计名称:
数据库
课程设计题目:
超市管理系统
学院名称:
信息工程学院
专业:
计算机科学与技术班级:
110451
学号:
11045109姓名:
吴锦明
评分:
教师:
蔡虹张英
2013年1月8日
1、需求分析
针对超市的运营模式,分别有两个核心功能需要实现,销售功能,采购功能。
另外,应该实现销售记录查询,采购记录查询,商品信息查询、添加、删除和修改等功能。
二、系统功能分析
(一)具备基本功能如下
(1)实现商品信息、厂商信息的添加、删除、修改和查询等功能
(2)实现商品采购后其数量自动增加、售出后其数量自动减少相应数量等功能
(3)实现查询某种商品的情况明细
(4)实现统计查询某本商品的总销售数量等功能
(5)实现某种商品少于某个设定值提醒进货的功能
(6)实现某种商品的过了保质期后提醒下架的功能
(二)系统功能模块图
三、系统结构设计
(一)概念结构设计(ER图)
(2)逻辑结构设计
厂商
字段名
类型
允许空
c号
char(5)
c名
char(20)
√
c地址
char(20)
√
c电话
char(12)
√
c手机
char(11)
√
c邮箱
char(20)
√
厂商(c号,c名,c地址,c电话,c手机,c邮箱)
商品
字段名
类型
允许空
s号
char(5)
s名
char(20)
√
s数量
int
√
s保质期
datetime
√
s报警量
int
√
s报警期
int
√
商品(s号,s名,s数量,s保质期,s报警量,s报警期)
顾客
字段名
类型
允许空
g号
char(5)
顾客(g号)
进货
字段名
类型
允许空
c编号
char(5)
s号
char(5)
j单价
float
√
j数量
int
√
j日期
datetime
√
进货(c编号,s号,j单价,j数量,j日期)
销售
字段名
类型
允许空
c编号
char(5)
s号
char(5)
x单价
float
√
x数量
int
√
x日期
datetime
√
销售(c编号,s号,x单价,x数量,x日期)
(三)数据库关系图
四、数据库对象的设计及实现
1.进货---存储过程
UseSMS
Go
Createprocjh--输入厂商编号,商品编号、名称、数量、进价、保质期、报警量、报警期、进货日期:
(@cnochar(5),@snochar(5),@snachar(20),@slint,@jjfloat,@bzqdatetime,@bjlint,@bjqint,@rqdatetime)
As
Insertinto商品
Values(@sno,@sna,@sl,@bzq,@bjl,@bjq)
Insertinto进货
Values(@cno,@sno,@jj,@sl,@rq)
Go
select*from商品
select*from进货
execjh'00005','00039','kele',200,3.4,'2013.7.6',50,5,'2012.10.5'
select*from商品
select*from进货
2.出售---存储过程
UseSMS
Go
Createproccs--Ptint‘输入商品编号、价格、数量、日期:
’
(@snochar(5),@jgfloat,@s1int,@rqdatetime)
As
if(@s1>(selects数量from商品wheres号=@sno))
begin
Begintransaction
selects数量from商品wheres号=@sno
raiserror('货物不足!
',1,7)
rollbacktran--回滚,撤销操作
end
else
begin
update商品
Sets数量=s数量-@s1
where@sno=s号
ifexists(select*from销售where@sno=s号)
begin
update销售
setx数量=x数量+@s1
End
else
begin
Insertinto销售
values('00001',@sno,@jg,@s1,@rq)
end
End
select*from商品
select*from销售
execcs'00039',4.8,50,'2012.12.16'
select*from商品
select*from销售
3.最低库量存报警---触发器
useSMS
go
createtrigger[dbo].[zdslbj]
On[dbo].[商品]
forupdate
As
begin
declare@sint;
declare@sbint;
select@s=s数量,@sb=s报警量fromdeleted
if(@s<=@sb)
begin
Select*from商品wheres数量<=s报警量
print'需要进货了!
!
!
'
end
End
4.保质期临近报警----触发器
useSMS
go
createtrigger[dbo].[bzqbj]
On[dbo].[商品]
forupdate,insert,delete
As
begin
if(exists(select*from商品wheres保质期-getdate()
begin
Select*from商品wheres保质期-getdate()
print'商品保质期临近,请妥善处理!
!
!
'
end
end
触发器执行:
update商品sets名='啤酒'wheres号='00033';
触发器
结果
消息
Createtrigger[dbo].[zdslbj]
(最低库量存报警)
需要进货了!
!
!
createtrigger[dbo].[bzqbj]
(保质期临近报警)
商品保质期临近,请妥善处理!
!
!
五、实验小结
在此次课程设计中,更多地体会到从不会到会的那种成就感是此次课设的最大收获。
因为这使我更加相信班主任的那句“不要怕,很多东西并不难,只要踏进一只脚就变得简单了”。
从第一天不知如何下手,慢慢有点感觉,之后工作明确,剩下的就不那么难了。
只要到了心有成竹的那个点,一切就将在不久后完成。
不知道怎么实现这个功能,说明我们已经走到次功能的门前,敲一敲门就完成了。
另一方面,由于时间比较紧迫,在很多方面还是做得比较简单化,不够贴近现实。
但总的来说,这么短的时间内学到的比上一学期课下来学到的还多,这也许就是课设的真正作用所在;学以致用,用到了就会了解的更深。
参考文献
1.王珊、萨师煊《数据库系统概论》(第四版)高等教育出版社2006年5月第四版
2.钱雪忠、罗海驰、陈国俊《数据库原理及技术课程设计》清华大学出版社2009年
2月第二版
3.张浦生《数据库应用技术》机械工业出版社2008年1月第一版
4.桂思强《数据库基础与实践》清华大学出版社2007年7月第一版