1、数据库开发与实现超市管理系统概述青岛工学院报告书题 目超市管理系统学生姓名康润珅、魏善宝指导教师房正华系 部信息工程系专业班级计算机科学与技术 级1班超市管理系统一、 小组成员分工序号成员主要任务所占系统比例1康润珅数据库整体,界面60%2魏善宝视图,触发器40%二、 教师签字指导教师: 答辩教师: 目 录1 前言11.1系统开发目的11.2背景说明11.3项目确立11.4应用范围12 需求分析、业务流程和数据字典介绍221需求规定22.1.1对功能的规定22.1.2对性能的规定32.1.3输人输出要求42.1.4数据管理能力要求42.1.5故障处理要求52.2业务流程52.3数据字典93 基
2、本表设计及完整性体现123.1商品信息表123.2销售单123.3销售详单133.4货架表133.5商品存放表133.6进货单143.7进货详单144 视图设计和各功能实现154.1商品信息视图154.2小票视图164.3盈利明细视图174.4总盈利额视图184.5库存盘点视图195 存储过程和触发器设计及各功能实现205.1销售详单的触发器205.2进货详单的触发器206 数据库报表设计与实现216.1商品信息报表216.2商品存放报表226.3销售详单报表227 应用系统实现237.1框架主题237.2数据插入界面247.3数据删除界面267.4数据查询界面277.5视图查询界面298实践
3、心得体会321 前言1.1系统开发目的(1)大大提高超市的运作效率;(2)经过全面的信息采集和处理,辅助提高超市的决策水平;(3)使用本系统,能够迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。1.2背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域当前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。1.3项目确立
4、针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:销售系统、管理系统,其中这两个子系统又包含其它一些子功能。1.4应用范围本系统适应于各种小型的超市。2 需求分析、业务流程和数据字典介绍21需求规定2.1.1对功能的规定超市管理系统需要实现以下功能:1、商品信息:商品明细、商品种类、包装种类、存放货架等2、进货:进货单,进货详单。当插入进货详单数据时,触发器完成修改商品表的商品,数量=数量+进货数量。3、销售收银:销售单,销售详单。当插入销售详单数据时,触发器完成修改商品表的商品,数量=数量-销售数量。4、统计功能:库存盘点、盈利明细、月盈利额等。超市管
5、理系统主要实现以下模块:(1)进货业务进货管理是企业生产经营活动中及其重要的一个环节,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题。企业现代管理理念中对企业的进货管理提出新的要求;企业进货时对供货商的选择更见慎重, 双方不再是讨价还价的买卖关系,而是一种相互依存的合作伙伴关系,而且还需要认识到企业产品质量要从采购抓起,这就关系到供方的供货、服务质量。下面是进货业务程序的主要内容:供货商的情况调查: 在实施采购之前,超市首先就要对市场上各大商品供货商进行详细的调查,了解公司的具体情况,评定企业的信誉级别和公司的市场口碑,做到准确无误,采购顺利。采购计划的编制
6、:超市根据自身的资金条件和销售状况,综合分析市场规律,拟定采购计划表。实施进货计划: 根据供货商档案及评审结果,选定供货商;生成订货单给选定的供货商;双方就价格、数量、质量等方面洽谈磋商,直至签订合同;跟踪合同执行,安排供货进度和货物运输,做好验收入库工作。(2)库存管理业务库存管理是指在经营中为销售和耗用而存储的各种资产。企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、存储费用增加、流动资金周转不利,而且过量的库存会掩盖管理不善的问题。存货不足则影响企业的正常销售活动。库存管理的目标是需求最佳存货数量,使库存的成本总额最小化。其主要业务如下:产品入库、出库、盘库等日常处理。科学合
7、理地确定某库存物资的库存控制参数。如:最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作。汇总统计各类库存数据,反应和监督储备资金占用及采购资金使用情况。(3)销售业务销售对一个企业的生存和发展是至关重要的,它不再是传统意义上的”卖东西”,它对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息。另外信息化的高速发展为企业的销售工作提出了新的挑战, 封闭意味着落后,超市要抓住时机,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理,才能使超市在激烈的市场竞争中立于不败之地。(4)库存业务库存业务对于一个企业来说是至关重要的的,库存的不
8、足或者过剩都会导致企业不利的发展,因此企业应对自身的库存水平进行控制,力求尽量降低库存数量,提高物流系统的效率,以强化企业的竞争力。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 同其它软件的接口的变化:允许接口的重载与复用精度和有效实现的变化:精度在必须调整的条件下,能够上下浮动十个百分点,有效实现则依据现实的测试情况允
9、许稍大范围的变化。2.1.3输人输出要求用户根据人事档案数据要求,逐项输入自己的个人信息。软件将进行审核后加到数据库中。当人事档案的要求输出时,软件能够根据用户的要求进行清单式的打印。输入数据: 查询方式、查询关键字,数据录入。输出数据:查询关键字确定的数据库记录的数据,信息录入、删改结果(成功或失败)。2.1.4数据管理能力要求配合企业开展人事调配工作,全面实现人事调配工作过程中的对各类信息的查询、添加、删除、修改等功能的人事管理系统。系统的核心是人员调整,人员档案信息,部门信息三者之间的联系,每一个表的修改都将联动的影响其它的表。查询功能也是系统的核心之一,其目的都是为了方便用户使用。2.
10、1.5故障处理要求故障处理:当接收到错误或者不合理的数据时,有一定的错误提醒。当遇到突发事件时,系统能保存好用户信息,下次使用时能保证信息的完整性。正常使用时不应出错,若运行时遇到不可恢复的系统错误,也能必须保证据库完好无损。在系统故障排除后,应能恢复回原来备份的数据库。定期对存储设备进行维护,以免造成损失。2.2业务流程销售单销售详单单单进货单商品信息进货详单 m m n n m 商品存放货架 n 图2-1 E-R图进货单 进货日期进货员日期单号图2-2进货单商品单号进货详单商品编号商品种类商品名称商品数量商品规格商品售价商品进价图2-3进货详单商品编号警戒线商品信息商品名称库存数量商品进价
11、商品进价商品规格商品种类图2-4商品信息商品进价商品数量销售单号商品编号销售详单商品名称商品单价利润商品规格图2-5销售详单销售单合计利润销售单号找零销售日期实收金额应收金额图2-6销售单商品存放货架编号商品种类商品名称商品编号 图2-7商品存放货架货架编号货架种类图2-8货架表2.3数据字典表2-1货架表字段名字段类型长度主/外键字段约束中文解释备注ShelfIDVarchar10 pNot null 货架号Shelf kindVarchar25Not null货架种类 表2-2商品存放表字段名字段类型长度主/外键字段约束中文解释备注MerchIDvarchar10P、FNot null商品
12、编码级联删除ShelfIDvarchar10P、FNot null货架号级联删除MerchNamevarchar56Not null商品名称March kindvarchar25商品种类表2-3进货单字段名字段类型长度主/外键字段约束中文解释备注Purchase IDvarchar10pNot null进货单号Purchase DatedatetimeNot null进货日期Purchase Mem varchar10Not null进货员Totul PricemoneyNot null总价表2-4进货详单MerchIDvarchar10P、FNot null商品编号删除时拒绝Purchase
13、IDvarchar10P、FNot null进货单号删除时拒绝MerchNamevarchar50l商品名称MerchNormvarchar8Not null商品规格Merchkindvarchar25Not null商品种类PurpricemoneyNot null0进价Purchase NumintNot null进货数量Merch pricemoneyNot null0商品价格表2-5商品信息表字段名字段类型长度主/外键字段约束中文解释备注MerchIDvarchar10pNot null商品编号Merch Name varchar50商品名称MerchpricemoneyNot nul
14、l0商品售价MerchNormvarchar8Not null商品规格Merchkindvarchar25商品种类MerchnumintNot null库存数量Cautionnumint库存警戒数量PurprisemoneyNot null0进价表2-6销售单字段号字段类型长度主/外键字段约束中文解释备注SaleIDvarchar10pNot null销售单号SaleDatedatetimeNot null销售日期PayMonymoneyNot null0应付款RenlMoneymoneyNot null0实收款ForgetMoneymoneyNot null0找零Real-PayTotalp
15、rofitsmoneyNot null0合计利润销售详单利润之和表2-7销售详单字段名字段类型长度主/外键字段约束中文解释备注MerchIDvarchar10P、FNot null商品编号拒绝删除Sale IDvarchar50P、FNot null销售单号拒绝删除MerchNamevarchar8Not null商品名称QuantityintNot null购买数量MerchNormvarcharNot null商品规格MerchPricemoneyNot null0商品单价TotalPricemoneyNot null0商品总价MerchPrice*QuantituPorfittmoney
16、Not null0利润商品信息表中(售价-单价)*Quantity3 基本表设计及完整性体现3.1商品信息表该表实现商品信息的录入,包括编号、名称、售价、规格、种类、库存、库存警戒量以及进价。具体实现代码如下:create table 商品信息表(MerchID varchar(10)not null primary key,MerchName Varchar(50),MerchPrice money not null check(MerchPrice0),MerchNorm varchar(8)not null,MerchKind varchar(25),MerchNum int not n
17、ull,CautionNum int,PurPrice money check(PurPrice0)Go3.2销售单该表实现销售信息的录入,包括销售单号、销售日期、应付款、实付款、找零以及该单的利润。具体实现代码如下:create table 销售单(SaleID varchar(10)not null primary key,SaleDate datetime not null,PayMoney money not null check(PayMoney0),RealMoney money not null check(RealMoney0),ForgetMoney money not nu
18、ll check(ForgetMoney=0),TotalProfits money not null check(TotalProfits=0)Go3.3销售详单该表实现销售商品详细信息的录入,包括商品编号、销售单号、商品名、数量、规格、单价、自己以及该商品的利润。具体实现代码如下:create table 销售详单(MerchID varchar(10) not null references 商品信息表(MerchID)on delete no action,SaleID varchar(10) not null references 销售单(SaleID)on delete no ac
19、tion,MerchName varchar(50),Quantity int not null,Merchnorm varchar(8)not null,MerchPrice money not null check(MerchPrice0),TotalPrice money not null check(TotalPrice0),Porfit money not null check(Porfit=0),primary key(MerchID,SaleID)Go3.4货架表该表实现货架信息的录入,包括货架号以及货架种类。具体实现代码如下:create table 货架表(ShelfID v
20、archar(10)not null primary key,ShelfKind varchar(25)not null)Go3.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
21、)not null,MerchKind varchar(25),Primary key(MerchID,ShelfID)Go3.6进货单该表实现进货信息的录入,包括进货单号、进货日期、进货员以及进货总价。具体实现代码如下:create table 进货单(PurchaseID varchar(10)not null primary key,PurchaseDate datetime not null,PurchaseMem varchar(10)not null,TotalPrice money not null check(TotalPrice0)Go3.7进货详单该表实现进货商品详细信息的
22、录入,包括商品编号、进货单号、商品名、规格、种类、进价、数量以及总价。具体实现代码如下: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
23、not null check(PurPrice0),PurchaseNum int not null,MerchPrice money not null check(MerchPrice0),primary key(MerchID,PurchaseID)Go4 视图设计和各功能实现4.1商品信息视图该视图实现了商品基本信息的查看,而且屏蔽了进价、库存等信息,利于大多数非核心人员的数据库管理人员查看。具体实现代码如下:use 超市管理系统gocreate view 商品视图asselect MerchID 商品编号,MerchName 商品名,MerchPrice 单价,MerchNorm 规格
24、,MerchKind 种类from 商品信息表go4.2小票视图该视图实现了销售信息的查看,而且屏蔽了进价、利润等信息,利于包括顾客在内的所有人查看。具体实现代码如下: use 超市管理系统gocreate view 小票asselect 销售单.SaleID 销售单号,MerchID 商品编号,MerchName 商品名,Merchnorm 规格,MerchPrice 单价,Quantity 数量,Paymoney 应付,RealMoney 实付,RealMoney-PayMoney 找零,MerchPrice*Quantity 总价,SaleDate 销售日期from 销售单,销售详单wh
25、ere 销售单.SaleID=销售详单.SaleIDgo4.3盈利明细视图该视图实现了所有盈利信息的查看,包括每个销售单上的所有商品的盈利,以及总盈利等,利于超市老板查看盈利。具体实现代码如下:use 超市管理系统gocreate view 盈利明细as select SaleID 小票号,销售详单.MerchID 商品编号,销售详单.MerchName 商品名,(销售详单.MerchPrice-PurPrice)*Quantity 该商品盈利from 销售详单,商品信息表where 销售详单.MerchID=商品信息表.MerchIDgo4.4总盈利额视图该视图实现了所有总盈利信息的查看。具
26、体实现代码如下:use 超市管理系统gocreate view 总盈利额asselect distinct SUM(销售详单.Porfit) 总盈利from 销售详单4.5库存盘点视图该视图实现了所有库存盘点信息的查看,包括所有商品现有库存数,以及警戒量等,利于盘点库存以方便进货。具体实现代码如下:use 超市管理系统gocreate view 库存盘点asselect MerchID 商品编号,MerchName 商品名,MerchNorm 规格,MerchKind 种类,MerchNum 库存,CautionNum 库存警戒量from 商品信息表go5 存储过程和触发器设计及各功能实现5.
27、1销售详单的触发器向销售详单插入一条信息,商品信息表中库存根据销售详单内容依次减去相应的数量Sale_Insert。具体实现代码如下:create trigger Sale_Inserton 销售详单for insert asdeclare MerchID varchar(10)declare Quantity intbeginselect MerchID=MerchIDfrom insertedselect Quantity=Quantityfrom insertedupdate 商品信息表set MerchNum=MerchNum-Quantitywhere MerchID=MerchID
28、end5.2进货详单的触发器向进货详单插入一条信息,商品信息表中库存根据进货详单内容依次减去相应的数量Purchase_Insert。具体实现代码如下:create trigger Purchase_Inserton 进货详单for insert as declare MerchID varchar(10)declare PurchaseNum intbeginselect MerchID=MerchIDfrom insertedselect PurchaseNum=PurchaseNumfrom insertedupdate 商品信息表set MerchNum=MerchNum+Purcha
29、seNumwhere MerchID=MerchIDend6 数据库报表设计与实现6.1商品信息报表图6-1 商品信息报表6.2商品存放报表图6-2 商品存放报表6.3销售详单报表图6-3 销售详单报表7 应用系统实现开发环境:Win7所用软件:SQL Server 、Miscrosoft Visual Studio 本软件经过C#语言与数据库的链接实现图形化界面窗口,更加便于用户操作以及管理数据库。让不懂SQL语言的人也能更好的使用、管理以及维护数据库。7.1框架主题 7.2数据插入界面商品信息插入界面:销售单插入界面: 货架表插入界面:进货单插入界面:7.3数据删除界面销售详单删除界面:商
30、品存放表删除界面:进货详单删除界面:7.4数据查询界面商品信息表查询:销售详单查询:进货单查询:7.5视图查询界面商品信息视图界面:小票视图查询界面:库存盘点视图查询:盈利明细视图查询:总盈利额视图查询:8实践心得体会 在这次项目设计中,我们小组所选择的是设计一个超市管理系统,这对我们来说是一次尝试与创新的过程,也能够说是一个挑战的过程。虽然学了数据库这么久了,可是我们还是缺少经验。现在我们利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,因此大家都很兴奋,都不同程度的投入了很高的热情与努力。在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,
31、对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,因此在设计中手法比较生硬,主与次也没能很好把握住,这些方面经过这次我们都要加强了解。在这次课程设计中,我们被分配以小组为单位去完成超市管理系统的设计与制作,因此小组内的分工和相互协调很重要,大家能够在分工中扬长避短,个及所长,这样能够很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,能够说是不足之处,且迫切的需要思考和改进,这一点必须指明。这在以后的工作与学习中将会非常重要