sql server数据库课程设计论文.docx
宁夏大学物理电气信息学院综合性实验实验报告课程名称 数据库应用实验学期2011 至 2012 学年 第 二 学期学生所在系物理电气信息学院电气系年 级 09级专业班级电子信息工程(1)班学生姓名 学号任课教师 实验成绩 任课教师制2012年6月10日实验题目小型超市商品进销存管理系统一、实验目的1、掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和 实施。2、关系型数据库管理系统SQL语言编辑能力,并能独立完成一般小系统的结构设计、 调试运行等工作。3、提高学生实践使用SQL语言的能力,把所学知识运用到具体对象,并能求出解决方 案的能力。二、实验环境本次实验主要选用数据库软件设计语言SQL Server 2008版本进行该系统设计。三、实验内容1、需求分析本软件对超市的采购、销售、仓库、资金、帐务等实际运作流程均实现了动态的计算管 理,使得超市经营者能够迅速的掌控该超市的实际运作状况、合理做出超市的战略决策。软 件提供的商品入库流水账、商品销售流水账、商品台账、会计账及各种报表在提高超市工作 效率、减少人为的差错、最大限度堵塞漏洞的基础上很好的减轻了采购、销售、仓库、财务 等环节工作人员的劳动强度,全面体现了现代小中型企业管理理论所倡导的工作高效、环境 轻松的氛围。并且本系统的开发,为超市的工作效率带来了一个质的飞跃,为此主要表现有 以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高企业的工作效率;第四,本系统可以使敏感文档更加安全,等等。本产品的开发所需的设备在现有条件下,只需要少量的投入资金就可以实现。因此在经 济上是可行的。2、数据库设计(1) 系统要求实现:基本资料、进货管理、销售管理、库存管理、财务管理、自动编制 记帐凭证等管理功能。系统总设计图如下所示:第2页共12页图1小型超市进销存总体设计管理系统通过上图,可以发现对于具体表的设计要求满足以下几个条件:1、实现商品类型、供应商信息的管理2、实现客户信息、商品信息的管理3、实现商品入库管理4、实现查询商品的基本信息5、创建触发器,实现商品入库和销售时自动修改库存6、创建视图统计某段时间内各种商品的入库数量和销售数量(2) 顶层销售系统界面:/<A+j售卜条形码信息切士、廿* 业务清单管理员4商品录入信息+理系统*j员h# 图2顶层销售信息管理界面商品销售时各分支之间关系:注员信息表哨法甲统计表图3商品销售时数据库模块具体功能补充说明前面总体设计图具体介绍:1、基本信息:用于建立系统正常运行所必需的基础资料,如:本超市、员工(操作员)、 计量单位、往来单位(供货商、客户)、分店、商品大类、商品类别等资料。正式使用本软 件前,必须先进行基础信息设置,然后才能顺利的开展工作。超市基本信息:超市基本信息的输入和修改。"POS分机档案登记:分级信息的输入、修改和删除。商品分类:商品分类信息的输入、修改、删除。商品档案:商品档案信息的输入、修改、删除和库存的增减。供应商档案:供应商信息的输入、修改、删除。价格自动生成设置:进货价、零售价、会员价、业务提成的整体调整。商品分类统计:分类信息的统计报表。商品档案统计:商品档案信息的统计报表。供应商档案统计:供应商信息的统计报表。超市分机统计:分机信息的统计报表。2、进货管理:用于登记入库商品的名称、单价、数量及入库日期、供货商、经办人、 存放分店等资料。期初库存也在此输入。进货开单:进货开单、商品的添加、进货价的调整等。进货退货:进货退回。进货单汇总:进货单统计报表。退货单汇总:退货单统计报表。所有进货商品汇总:所有进货商品的统计报表。所有退货商品汇总:所有退回商品的统计报表。所有无退货进货商品汇总:所有无退货进货的统计报表。月度结算:本月内的所有进货汇总。3、销售管理:用于登记销售商品的名称、单价、数量及销售日期、客户、业务员、销 售分店等资料。销售开单:销售开单、商品的添加、零售价的调整等。销售退货:销售退回。销售单汇总:销售单统计报表。退货单汇总:退货单统计报表。所有销售商品汇总:所有销售商品的统计报表。所有退货商品汇总:所有退回商品的统计报表。所有无退货销售商品汇总:所有无退货销售的统计报表。月度结算:本月内的所有销售汇总。4、库存管理:用于查询商品适(当)时的库存情况。库存过多、过少商品报警的查询。非进货入库:其他入库。非进货出库:其他出库。库存查询:库存统计报表。非进货入库单统计:其他入库单统计报表。非进货出库单统计:其他出库单统计报表。非进货入库商品统计:其他入库商品统计报表。非进货出库商品统计:其他出库商品统计报表。所有过少报警商品统计:所有库存过少的报警统计。所有过多报警商品统计:所有库存过多的报警统计。月度结算(非进货出库广:本月内的所有出库汇总。月度结算(非进货入库广:本月内的所有入库汇总。5、财务管理:用于根据已确认的原始单据(入库单、销售单、收款单、付款单等)自 动编制记帐凭证。总盘盈查询:盘赢利商品销售。总盘亏查询:盘吃亏商品销售。总盘点:所有盘点。6、数据库管理:数据库备份、恢复、期初建账等。数据备份:数据库备份。数据恢复:数据库恢复。数据清理:数据清理。期初建账:建账。月初结算建账:建账。(3) 实体属性图:1、基本信息属性:.图4超市基本信息实体属性图2、供应商基本信息属性:图5供应商基本信息属性图3、分机信息实体属性图:分机蓿总图6分机信息属性图4、管理员实体属性图:图7 管理员实体属性图5、商品分类实体属性:图8商品分类实体属性图6、进货单实体属性图:图9进货单实体属性图(4) 主要进销存数据表的建立:销售表: 1lint商品名nvarchar(50)曰期date销售价格float日消售里intfloatQE LL-PCSQLEXPR.1fHt - d b-o.sa I e 超.运用一下语句进行插入数据:insert into sale(商品编号,商品名,日期,销售价格,日销售量,净赚) values('9073','顶牛','2012-06-13','1.0','35','0.4')进货表:QELL-PCSQLEXPKE.-modityDELL-PO列名数据类型允许Null -int园商品名nvardiar50)国进货侑float国诳货曰期datE园进狗里int国经销商nvarchar(50)国保质期dnar(lO)0insert into commodity(商品编号,商品名,进货价,进货日期,进货量,经销商,保质期) values('9073','顶牛','0.6','2012-01-14','100','厦门','半年')存货表:DELL-PCXSQLE元许Null值>ELL-PC照LEXPFL.理系毓-d bo. stock列名数据类型nchar10)商品名nchar(lO)经销商ndiarflO)现存黄里nchar(lO)存货曰期nchar(lO)insert into stock(商品编号,商品名,经销商,现存货量,存货日期)values('6001','海飞丝','北京','8','2012-04-23')select *from saleselect *from commodityselect *from stock查询结果:结果|园a消息IT$J晶曰朋曰诵m生岳瞒1;BM 1:匚甬L心2D1Z-O&-123 53Z.52国一1:件土2D12D&-1223. S13.560323&MJ?2C12-OG-12JJ3.E1-4 54EKJ7B65海飞丝2012-0&-1 123.B54L65SKJ73顶斗135丽品娘号进炎仍建短曰期经皓尚f呆岐期1:907 BG5 ;W.22012X)5-120j -4-Ui IZSOD1布中廿21.52-DKl海飞丝210.32=012-01 -141Wran*GO42勾F呈W.-3W叵门斗6032色呻事20.32:012-01 -14W点I I690730_6Z01201 -141O00荷晶号尚晶客坝存睛屋柞娥口期1907-3I'il-,l旧i 12012 01-1&QS12旧门-14私W咛1412012-01-143O7-BS5勾F呈.r=jx?O1?4)1-2356001-II K&2012-04-235、创建视图(1)日销量查询:向导建立DELL-PCSQLLXPR.J1 - dbo.View_l DELL-PCSQLEXPR.,Sd - dbo.stock DELL-PC执1 Exprl行结祐些计格果商品名碰存贺至进货倚Ej13.223.6豆-样5*淀"於e21.5eooi23.532.53210.3603225.913.5"A419.3604223-.S海隐14.5320.323-.SL3.5时300.69073.L.苗350.4日销量查询(建立视图后运行产生SQL语句):SELECT dbo.sale.商品名 AS Expr1, dbo.stock.现存货量,modity. 进货价,modity.商品编号,dbo.sale .销售价格,dbo.stock.商品名, dbo.sale.日销售量,dbo.sale.净赚FROM modity INNER JOIN dbo.sale ON modity.商品编号= dbo.sale.商品编号 INNER JOIN dbo.stock ON dbo.sale.商品编号 = dbo.stock.商品编号(2)日销量+具体日期汹 螺 蜿 有诡 德涌 闻 面 祯 睡晚 前 铀Ei观152905*f三5N2<6-iZ1ML-H32L5通!15士325M246-122I12W1320.1勰Z1Bi -:asHHt-HM2-B123UiLH1配6MUB三迫:45M1MH4M246-122JML-143.亍二|15HEM1L4M246-12皿L4+307M12U1HZ1ML-HSELECT dbo.sale.商品名 AS Expr1, dbo.stock.现存货量,modity. 进货价,modity.商品编号,dbo.sale .销售价格,dbo.stock.商品名, dbo.sale. 日 销售量,dbo.sale.净赚,modity.进货日期,dbo.sale. 日期,dbo.stock.存货日期FROM modity INNER JOIN dbo.sale ON modity.商品编号= dbo.sale.商品编号 INNER JOIN dbo.stock ON dbo.sale.商品编号 = dbo.stock.商品编号6、建立索引(1)向导建立索引/键:(2)SQL语句建立:use超市进销存管理系统create unique index IX_sale_id on sale(商品编号 asc)7、建立触发(1)创建DML触发(After触发是在家记录变更后才被激活执行的,而且所创建的触发器都是临 时的): 创建触发:create trigger text on saleafter insert asbeginselect *from insertedEnd验证:use超市进销存管理系统select *from inserted 触发建立后:USE超市进销存管理系统GO/* Object: Trigger dbo.text Script Date: 06/18/2012 08:24:28 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.text on dbo.saleafter insert asbeginselect *from insertedEnd创建DDL触发(利用DDL触发可以让用户不能修改或删除非常重要的数据表):create trigger ddl_test on all serverfor drop_table, alter_tableasprint'您不能对数据进行操作rollback;验证:drop table sale四、实验结果及分析在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。 另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。 因为对超市管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网 络在超市管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程中由于硬件的 限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、 界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本超市管理系 统是一套在日常超市管理中必不可少的管理软件,通过开发这个系统,我掌握了开发项目的 过程,了解了项目开发的基本知识,巩固了我对sql的学习,但在这次设计中的最大收获并 不是掌握这门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮 助的精神。通过这次课程设计,我不仅巩固了数据库课程中所学的各种关于Sql的知识和技巧,更 重要的是我学会和实践了如何使用所学知识设计可行的,符合要求的没有冗余的数据库表。 这个是课程学习中比较缺乏的经验。此外还提高了自己使用sql server的能力。从数据库 的设计和实施中我巩固了,如何创建数据库和表,如何创建视图,如何设置主键。另外,由 于使用NAT网络进行数据库的连接,我还特别学到了如何配置网络数据库,如何查看数据库 的端口监听状态。