资源描述
青岛工学院
《数据库课程设计》报告书
题 目
超市管理系统
学生姓名
康润珅、魏善宝
指导教师
房正华
系 部
信息工程系
专业班级
计算机科学与技术2011级1班
超市管理系统
一、 小组成员分工
序号
成员
主要任务
所占系统比例
1
康润珅
数据库整体,界面
60%
2
魏善宝
视图,触发器
40%
二、 教师签字
指导教师:
答辩教师:
目 录
1 前言 1
1.1系统开发目的 1
1.2背景说明 1
1.3项目确立 1
1.4应用范围 1
2 需求分析、业务流程和数据字典介绍 2
2.1需求规定 2
2.1.1对功能的规定 2
2.1.2对性能的规定 3
2.1.3输人输出要求 4
2.1.4数据管理能力要求 4
2.1.5故障处理要求 5
2.2业务流程 5
2.3数据字典 9
3 基本表设计及完整性体现 12
3.1商品信息表 12
3.2销售单 12
3.3销售详单 13
3.4货架表 13
3.5商品存放表 13
3.6进货单 14
3.7进货详单 14
4 视图设计和各功能实现 15
4.1商品信息视图 15
4.2小票视图 16
4.3盈利明细视图 17
4.4总盈利额视图 18
4.5库存盘点视图 19
5 存储过程和触发器设计及各功能实现 20
5.1销售详单的触发器 20
5.2进货详单的触发器 20
6 数据库报表设计与实现 21
6.1商品信息报表 21
6.2商品存放报表 22
6.3销售详单报表 22
7 应用系统实现 23
7.1框架主题 23
7.2数据插入界面 24
7.3数据删除界面 26
7.4数据查询界面 27
7.5视图查询界面 29
8实践心得体会 32
1 前言
1.1系统开发目的
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。
1.2背景说明
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
1.3项目确立
针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:销售系统、管理系统,其中这两个子系统又包含其它一些子功能。
1.4应用范围
本系统适应于各种小型的超市。
2 需求分析、业务流程和数据字典介绍
2.1需求规定
2.1.1对功能的规定
超市管理系统需要实现以下功能:
1、商品信息:商品明细、商品种类、包装种类、存放货架等
2、进货:进货单,进货详单。当插入进货详单数据时,触发器完成修改商品表的商品,数量=数量+进货数量。
3、销售收银:销售单,销售详单。当插入销售详单数据时,触发器完成修改商品表的商品,数量=数量-销售数量。
4、统计功能:库存盘点、盈利明细、月盈利额等。
超市管理系统主要实现以下模块:
(1)进货业务
进货管理是企业生产经营活动中及其重要的一个环节,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题。企业现代管理理念中对企业的进货管理提出新的要求;企业进货时对供货商的选择更见慎重, 双方不再是讨价还价的买卖关系,而是一种相互依存的合作伙伴关系,并且还需要认识到企业产品质量要从采购抓起,这就关系到供方的供货、服务质量。下面是进货业务程序的主要内容:
供货商的情况调查: 在实施采购之前,超市首先就要对市场上各大商品供货商进行详细的调查,了解公司的具体情况,评定企业的信誉级别和公司的市场口碑,做到准确无误,采购顺利。
采购计划的编制:超市根据自身的资金条件和销售状况,综合分析市场规律,拟定采购计划表。
实施进货计划: 根据供货商档案及评审结果,选定供货商;生成订货单给选定的供货商;双方就价格、数量、质量等方面洽谈磋商,直至签订合同;跟踪合同执行,安排供货进度和货物运输,做好验收入库工作。
(2)库存管理业务
库存管理是指在经营中为销售和耗用而存储的各种资产。企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、存储费用增加、流动资金周转不利,并且过量的库存会掩盖管理不善的问题。存货不足则影响企业的正常销售活动。库存管理的目标是需求最佳存货数量,使库存的成本总额最小化。其主要业务如下:
产品入库、出库、盘库等日常处理。
科学合理地确定某库存物资的库存控制参数。如:最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作。
汇总统计各类库存数据,反应和监督储备资金占用及采购资金使用情况。
(3)销售业务
销售对一个企业的生存和发展是至关重要的,它不再是传统意义上的“卖东西”,它对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息。此外信息化的高速发展为企业的销售工作提出了新的挑战, 封闭意味着落后,超市要抓住时机,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理,才能使超市在激烈的市场竞争中立于不败之地。
(4)库存业务
库存业务对于一个企业来说是至关重要的的,库存的不足或者过剩都会导致企业不利的发展,所以企业应对自身的库存水平进行控制,力求尽量降低库存数量,提高物流系统的效率,以强化企业的竞争力。
2.1.2对性能的规定
2.1.2.1精度
可以精确查找商品等信息
查找时字母不区分大小写。
2.1.2.2时间特性要求
响应时间:1s以内
局域网≤10s,Internet网≤60s
更新处理时间:3s以内;
数据的转换和传送时间:不得超过10秒;
2.1.2.3灵活性
运行环境的变化:
操作系统:Windows 7/XP、SQL Server 2008
同其他软件的接口的变化:
允许接口的重载与复用
精度和有效实现的变化:
精度在必须调整的条件下,可以上下浮动十个百分点,有效实现则依据现实的测试情况允许稍大范围的变化。
2.1.3输人输出要求
用户根据人事档案数据要求,逐项输入自己的个人信息。软件将进行审核后加到数据库中。当人事档案的要求输出时,软件可以根据用户的要求进行清单式的打印。
输入数据:
查询方式、查询关键字,数据录入。
输出数据:
查询关键字确定的数据库记录的数据,信息录入、删改结果(成功或失败)。
2.1.4数据管理能力要求
配合企业开展人事调配工作,全面实现人事调配工作过程中的对各类信息的查询、添加、删除、修改等功能的人事管理系统。系统的核心是人员调整,人员档案信息,部门信息三者之间的联系,每一个表的修改都将联动的影响其它的表。查询功能也是系统的核心之一,其目的都是为了方便用户使用。
2.1.5故障处理要求
故障处理:
当接收到错误或者不合理的数据时,有一定的错误提醒。
当遇到突发事件时,系统能保存好用户信息,下次使用时能保证信息的完整性。
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也能必须保证据库完好无损。
在系统故障排除后,应能恢复回原来备份的数据库。
定期对存储设备进行维护,以免造成损失。
2.2业务流程
销售单
销售详单单单
进货单
商品信息
进货详单
m m n n
m
商品存放
货架
n
图2-1 E-R图
进货单
进货日期
进货员
日期
单号
图2-2进货单
商品单号
进货详单
商品编号
商品种类
商品名称
商品数量
商品规格
商品售价
商品进价
图2-3进货详单
商品编号
警戒线
商品信息
商品名称
库存数量
商品进价
商品进价
商品规格
商品种类
图2-4商品信息
商品进价
商品数量
销售单号
商品编号
销售详单
商品名称
商品单价
利润
商品规格
图2-5销售详单
销售单
合计利润
销售单号
找零
销售日期
实收金额
应收金额
图2-6销售单
商品存放
货架编号
商品种类
商品名称
商品编号
图2-7商品存放
货架
货架编号
货架种类
图2-8货架表
2.3数据字典
表2-1货架表
字段名
字段类型
长度
主/外键
字段约束
中文解释
备注
ShelfID
Varchar
10
p
Not null
货架号
Shelf kind
Varchar
25
Not null
货架种类
表2-2商品存放表
字段名
字段类型
长度
主/外键
字段约束
中文解释
备注
MerchID
varchar
10
P、F
Not null
商品编码
级联删除
ShelfID
varchar
10
P、F
Not null
货架号
级联删除
MerchName
varchar
56
Not null
商品名称
March kind
varchar
25
商品种类
表2-3进货单
字段名
字段类型
长度
主/外键
字段约束
中文解释
备注
Purchase ID
varchar
10
p
Not null
进货单号
Purchase Date
datetime
Not null
进货日期
Purchase Mem
varchar
10
Not null
进货员
Totul Price
money
Not null
总价
表2-4进货详单
MerchID
varchar
10
P、F
Not null
商品编号
删除时拒绝
PurchaseID
varchar
10
P、F
Not null
进货单号
删除时拒绝
MerchName
varchar
50
l
商品名称
MerchNorm
varchar
8
Not null
商品规格
Merchkind
varchar
25
Not null
商品种类
Purprice
money
Not null
>0
进价
Purchase Num
int
Not null
进货数量
Merch price
money
Not null
>0
商品价格
表2-5商品信息表
字段名
字段类型
长度
主/外键
字段约束
中文解释
备注
MerchID
varchar
10
p
Not null
商品编号
Merch Name
varchar
50
商品名称
Merchprice
money
Not null
>0
商品售价
MerchNorm
varchar
8
Not null
商品规格
Merchkind
varchar
25
商品种类
Merchnum
int
Not null
库存数量
Cautionnum
int
库存警戒数量
Purprise
money
Not null
>0
进价
表2-6销售单
字段号
字段类型
长度
主/外键
字段约束
中文解释
备注
SaleID
varchar
10
p
Not null
销售单号
SaleDate
datetime
Not null
销售日期
PayMony
money
Not null
>0
应付款
RenlMoney
money
Not null
>0
实收款
ForgetMoney
money
Not null
>0
找零
Real--Pay
Totalprofits
money
Not null
>0
合计利润
销售详单利润之和
表2-7销售详单
字段名
字段类型
长度
主/外键
字段约束
中文解释
备注
MerchID
varchar
10
P、F
Not null
商品编号
拒绝删除
Sale ID
varchar
50
P、F
Not null
销售单号
拒绝删除
MerchName
varchar
8
Not null
商品名称
Quantity
int
Not null
购买数量
MerchNorm
varchar
Not null
商品规格
MerchPrice
money
Not null
>0
商品单价
TotalPrice
money
Not null
>0
商品总价
MerchPrice*Quantitu
Porfitt
money
Not null
>0
利润
商品信息表中(售价-单价)*Quantity
3 基本表设计及完整性体现
3.1商品信息表
该表实现商品信息的录入,包括编号、名称、售价、规格、种类、库存、库存警戒量以及进价。具体实现代码如下:
create table 商品信息表(
MerchID varchar(10)not null primary key,
MerchName Varchar(50),
MerchPrice money not null check(MerchPrice>0),
MerchNorm varchar(8)not null,
MerchKind varchar(25),
MerchNum int not null,
CautionNum int,
PurPrice money check(PurPrice>0)
)
Go
3.2销售单
该表实现销售信息的录入,包括销售单号、销售日期、应付款、实付款、找零以及该单的利润。具体实现代码如下:
create table 销售单(
SaleID varchar(10)not null primary key,
SaleDate datetime not null,
PayMoney money not null check(PayMoney>0),
RealMoney money not null check(RealMoney>0),
ForgetMoney money not null check(ForgetMoney>=0),
TotalProfits money not null check(TotalProfits>=0)
)
Go
3.3销售详单
该表实现销售商品详细信息的录入,包括商品编号、销售单号、商品名、数量、规格、单价、自己以及该商品的利润。具体实现代码如下:
create table 销售详单(
MerchID varchar(10) not null references 商品信息表(MerchID)on delete no action,
SaleID varchar(10) not null references 销售单(SaleID)on delete no action,
MerchName varchar(50),
Quantity int not null,
Merchnorm varchar(8)not null,
MerchPrice money not null check(MerchPrice>0),
TotalPrice money not null check(TotalPrice>0),
Porfit money not null check(Porfit>=0),
primary key(MerchID,SaleID)
)
Go
3.4货架表
该表实现货架信息的录入,包括货架号以及货架种类。具体实现代码如下:
create table 货架表(
ShelfID varchar(10)not null primary key,
ShelfKind varchar(25)not null
)
Go
3.5商品存放表
该表实现商品存放信息的录入,包括商品编号、存放货架号、商品名以及商品种类。具体实现代码如下:
create table 商品存放表(
MerchID varchar(10)not null references 商品信息表(MerchID)on delete no action,
ShelfID varchar(10)not null references 货架表(ShelfID)on delete no action,
MerchName varchar(50)not null,
MerchKind varchar(25),
Primary key(MerchID,ShelfID)
)
Go
3.6进货单
该表实现进货信息的录入,包括进货单号、进货日期、进货员以及进货总价。具体实现代码如下:
create table 进货单(
PurchaseID varchar(10)not null primary key,
PurchaseDate datetime not null,
PurchaseMem varchar(10)not null,
TotalPrice money not null check(TotalPrice>0)
)
Go
3.7进货详单
该表实现进货商品详细信息的录入,包括商品编号、进货单号、商品名、规格、种类、进价、数量以及总价。具体实现代码如下:
create table 进货详单(
MerchID varchar(10)not null references 商品信息表(MerchID)on delete no action,
PurchaseID varchar(10)not null references 进货单(PurchaseID)on delete no action,
MerchName varchar(50),
MerchNorm varchar(8)not null,
MerchKind varchar(25),
PurPrice money not null check(PurPrice>0),
PurchaseNum int not null,
MerchPrice money not null check(MerchPrice>0),
primary key(MerchID,PurchaseID)
)
Go
4 视图设计和各功能实现
4.1商品信息视图
该视图实现了商品基本信息的查看,并且屏蔽了进价、库存等信息,利于大多数非核心人员的数据库管理人员查看。具体实现代码如下:
use 超市管理系统
go
create view 商品视图
as
select MerchID 商品编号,MerchName 商品名,MerchPrice 单价,MerchNorm 规格,MerchKind 种类
from 商品信息表
go
4.2小票视图
该视图实现了销售信息的查看,并且屏蔽了进价、利润等信息,利于包括顾客在内的所有人查看。具体实现代码如下:
use 超市管理系统
go
create view 小票
as
select 销售单.SaleID 销售单号,MerchID 商品编号,MerchName 商品名,Merchnorm 规格,MerchPrice 单价,Quantity 数量,Paymoney 应付,RealMoney 实付,RealMoney-PayMoney 找零,MerchPrice*Quantity 总价,SaleDate 销售日期
from 销售单,销售详单
where 销售单.SaleID=销售详单.SaleID
go
4.3盈利明细视图
该视图实现了所有盈利信息的查看,包括每个销售单上的所有商品的盈利,以及总盈利等,利于超市老板查看盈利。具体实现代码如下:
use 超市管理系统
go
create view 盈利明细
as
select SaleID 小票号,销售详单.MerchID 商品编号,销售详单.MerchName 商品名,(销售详单.MerchPrice-PurPrice)*Quantity 该商品盈利
from 销售详单,商品信息表
where 销售详单.MerchID=商品信息表.MerchID
go
4.4总盈利额视图
该视图实现了所有总盈利信息的查看。具体实现代码如下:
use 超市管理系统
go
create view 总盈利额
as
select distinct SUM(销售详单.Porfit) 总盈利
from 销售详单
4.5库存盘点视图
该视图实现了所有库存盘点信息的查看,包括所有商品现有库存数,以及警戒量等,利于盘点库存以方便进货。具体实现代码如下:
use 超市管理系统
go
create view 库存盘点
as
select MerchID 商品编号,MerchName 商品名,MerchNorm 规格,MerchKind 种类,MerchNum 库存,CautionNum 库存警戒量
from 商品信息表
go
5 存储过程和触发器设计及各功能实现
5.1销售详单的触发器
向销售详单插入一条信息,商品信息表中库存根据销售详单内容依次减去相应的数量Sale_Insert。具体实现代码如下:
create trigger Sale_Insert
on 销售详单
for insert as
declare @MerchID varchar(10)
declare @Quantity int
begin
select @MerchID=MerchID
from inserted
select @Quantity=Quantity
from inserted
update 商品信息表
set MerchNum=MerchNum-@Quantity
where MerchID=@MerchID
end
5.2进货详单的触发器
向进货详单插入一条信息,商品信息表中库存根据进货详单内容依次减去相应的数量Purchase_Insert。具体实现代码如下:
create trigger Purchase_Insert
on 进货详单
for insert as
declare @MerchID varchar(10)
declare @PurchaseNum int
begin
select @MerchID=MerchID
from inserted
select @PurchaseNum=PurchaseNum
from inserted
update 商品信息表
set MerchNum=MerchNum+@PurchaseNum
where MerchID=@MerchID
end
6 数据库报表设计与实现
6.1商品信息报表
图6-1 商品信息报表
6.2商品存放报表
图6-2 商品存放报表
6.3销售详单报表
图6-3 销售详单报表
7 应用系统实现
开发环境:Win7
所用软件:SQL Server 2008、Miscrosoft Visual Studio 2010
本软件通过C#语言与数据库的链接实现图形化界面窗口,更加便于用户操作以及管理数据库。让不懂SQL语言的人也能更好的使用、管理以及维护数据库。
7.1框架主题
7.2数据插入界面
商品信息插入界面:
销售单插入界面:
货架表插入界面:
进货单插入界面:
7.3数据删除界面
销售详单删除界面:
商品存放表删除界面:
进货详单删除界面:
7.4数据查询界面
商品信息表查询:
销售详单查询:
进货单查询:
7.5视图查询界面
商品信息视图界面:
小票视图查询界面:
库存盘点视图查询:
盈利明细视图查询:
总盈利额视图查询:
8实践心得体会
在这次项目设计中,我们小组所选择的是设计一个超市管理系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程。虽然学了数据库这么久了,但是我们还是缺少经验。现在我们利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,都不同程度的投入了很高的热情与努力。
在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
在这次课程设计中,我们被分配以小组为单位去完成超市管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,个及所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。这在以后的工作与学习中将会非常重要
展开阅读全文