1、 山西大学计算机和信息技术学院数据库系统课程设计论文题 目:小型超市管理系统数据库设计组 长 王建亮 专 业 软件工程 班 级 大二 讲课老师 /6/19 小型超市管理系统学生姓名:王建亮(242054), 王勇和(242060), 温辉(242063),闫宁(242067),许鹏(242066) 目录第一章系统概述111系统开发背景112系统开发意义1第二章 系统需求分析221 系统功效要求222 系统分析概述2221零售前台(POS)管理系统2本系统必需含有以下功效:2222后台管理系统2本系统必需含有以下功效:223系统层次划分324 系统程序步骤图42.4.1系统数据步骤图符号解释42
2、.4.2顶层数据步骤图52.4.3第一层数据步骤图52.4.4第二层数据步骤图6第三章 系统总体设计731 系统总体设计目标732 系统概念设计8321 概念模型(E-R图)8322关系模式13323 关系模式规范化说明13324 系统数据库表结构14第四章 数据库实施阶段174.1建立数据库、数据表、视图、索引174.1.1 建立数据库174.1.2 建立数据表184.1.3 创建视图214.1.4 创建索引22结束语23第一章 系统概述11 系统开发背景二十一世纪,超市竞争也进入到了一个全新领域,竞争已不再是规模竞争,而是技术竞争、管理竞争、人才竞争。技术提升和管理升级是超市业竞争关键。零
3、售领域现在呈多元发展趋势,多个业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。怎样在猛烈竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求目标。所以,我们很有必需制订一套合理、有效,规范和实用超市管理系统,对超市日常业务进行集中统一管理。其次,IT产业和Internet取得了飞速发展,计算机应用已渗透到了各个领域,引发信息管理革命,实现了信息自动化处理,提升了处理立即性和正确性。 针对超市特点,为了帮助超市处理现在面临问题,提升小型超市竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它部分子功效。12 系统开发意义超市管理
4、作为计算机应用一个分支,有着手工管理无法比拟优点。该系统三大益处有:(1)大大提升超市运作效率;(2)经过全方面信息采集和处理,辅助提升超市决议水平;(3)使用本系统,能够快速提升超市管理水平,为降低经营成本, 提升效益,增强超市扩张力, 提供有效技术保障。所以,开发一套能够为消费者及超市工作人员提提供方便超市管理系统,将是很必需,也是十分立即。第二章 系统需求分析21 系统功效要求针对超市特点,为了帮助超市处理现在面临问题,提升小型超市竞争力,我们将开发一个小型超市管理系统。本系统包含以下功效:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它部分子功效。22 系统分析概述221零
5、售前台(POS)管理系统本系统必需含有以下功效:(1)商品录入:依据超巿业务特点制订相关功效,能够经过输入唯一编号、扫描条形码、商品名称等来实现正确或模糊商品扫描录入。该扫描录入方法能够充足确保多种电脑操作水平层次人员均能正确快速地进行商品扫描录入。(2)收银业务:经过扫描条形码或直接输入商品名称(对于同类多件商品采取一次录入加数量方法)自动计算此次交易总金额。在用户付款后,自动计算找零,同时打印交易清单(包含交易流水账号、每类商品商品名、数量、该类商品总金额、交易时间、负责此次收银职员号)。假如用户是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实施95折优惠,并将所购物
6、品总金额累计到该会员总消费金额中。 会员卡使用期限为十二个月,满十二个月未续卡者,该会员卡将被注销。(3)退货处理:用户持有销售发票到收银台找收银员退货,若没有对应销售发票不给予退货。经过扫描销售发票计算此次退货处理退货额,并打印出退货发票给用户,系统统计好退货信息。(4)安全性:OS登陆、退出、换班和操作锁定等权限验证保护;断电自动保护最大程度预防意外及恶意非法操作。(5)独立作业:有断网收银即在网络服务器断开或网络不通情况下,收银机仍能正常作业。222后台管理系统本系统必需含有以下功效:(1)进货管理: 依据销售情况及库存情况,自动制订进货计划(亦可手工制订修改),能够避免盲目进货造成商品
7、积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货和入库统计及金额。(2)销售管理: 商品正常销售、促销和限量、限期及严禁销售控制。 综合查询多种销售明细统计、各地收银员收银统计和交结账情况等。 按多个方法统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。(3)库存管理: 综合查询库存明细统计。 库存状态自动告警提醒。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。(4)人员管理: 职员、会员、供货商、厂商等基础信息登记管理。 职员操作权限管理。 用户销售权限管理。23系统层次划分经过对小型超市管理系统及其功效方面分析,结构出超市
8、管理系统总体结构图以下:中小型超市销售管理系统人员管理库存管理进货管理销售管理收银业务后台管理零售前台管理退货处理商品录入图1 超市管理总体结构图因为本系统为管理系统,只是超市管理系统一部分,所以只实现了收银业务、退货处理和销售管理部分功效。对这三个处理模块深入细化得到以下分结构图: 退货处理输出退货单退费额计算图1-2 退货处理结构图图1-1 收银业务结构图库存量管理缺货警告销售管理货架补货图1-3 销售处理结构图24 系统程序步骤图数据步骤图是一个能全方面地描述信息系统逻辑模型关键工具,它能够用少数多个符综合地反应出信息在系统中流动、处理和存放情况。依据上面业务步骤图描述,从系统科学性、管
9、理合理性、实际运行可行性角度出发,自顶向下对系统进行分解,导出了超市销售管理系统顶层数据步骤图、第一层数据步骤图和第二层数据步骤图。2.4.1系统数据步骤图符号解释 图2-1 外部实体 图2-2 处理过程 图2-3 数据流 图2-4 数据存放2.4.2顶层数据步骤图S1商品信息表P0销售业务处理E1收银员E2用户E3管理员交易单警告信息处理信息商品信息商品信息条形码商品编号交易单图3 顶层数据步骤图上图是小型超市管理系统顶层数据步骤图。由业务步骤图确定系统开发外部实体即系统数据起源和去处,从而确定了整个系统外部实体和数据流。在顶层数据步骤图中,把超市销售管理系统作为一个处理步骤,和实体间传输信
10、息,简单表示系统各部分功效。2.4.3第一层数据步骤图商品交易表商品信息表P3销售处理P1收银业务E2用户购物发票会员信息交易信息S3条形码商品编号E1收银员P2退货处理销售信息退货信息会员信息表S2退货发票商品信息E3管理员警告信息处理信息条形码商品编号P0 业务处理S1购物发票图3-1 第一层数据步骤图确定系统关键处理功效后,能够将系统分为收银业务、退货处理和销售处理三个模块。再确定各个输入和输出数据流和和之相关数据结构,从而得到小型超市管理系统第一层数据步骤图,如上图所表示。2.4.4第二层数据步骤图 再将第一层数据步骤图分解细化可得到第二层步骤图,以下图所表示:P1.2给会员优惠会员信
11、息表E2用户P1.1交易额计算P3.1商品库存量增减销售信息购物信息会员信息一般购物信息会员购物信息购物发票商品信息表条形码商品编号E1收银员条形码商品编号商品信息S1S2P1 收银业务P1.3输出交易清单商品交易表S3商品库存增减信息入库信息表S4图3-1-1 收银业务数据步骤图P3后台处理E2用户购物发票商品交易表流水账号商品信息退费额计算输出退货单退货信息商品交易表退货信息退货商品S3S3P2.2P2.1P2 退货处理图3-1-2 退货处理数据步骤图图3-1-3 销售处理数据步骤图警告信息入库信息表E3管理员P3.2缺货警告P3.1商品库存量增减P2退货处理退货信息P1收银业务购物信息商
12、品库存增减信息库存信息P3.3货架补货进货信息P3 销售处理S4进货单表S5进货信息缺货信息第三章 系统总体设计31 系统总体设计目标小型超市管理系统是超市馆管理工作中不可缺乏部分,它内容对于超市管理者和使用者来说全部至关关键,所以超市管理系统应该能够为管理者或消费者提供充足信息和快捷数据处理手段。对超市前台收银管理,后台销售管理、库存管理、财务管理和人员管理这些日常业务需要,高效性经过系统实用,能够改变旧超市管理模式,使对消费者和工作人员管理、查询愈加方便有效。对销售信息进行简单统计分析,便于总结货物采购和消费者需求。伴随科学技术不停提升,计算机科学日渐成熟,其强大功效已为大家深刻认识,它已
13、进入人类社会各个领域并发挥着越来越关键作用。作为计算机应用一部分,使用计算机对超市信息进行管理,含有着手工管理所无法比拟优点.比如:检索快速、查找方便、易修改、可靠性高、存放量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提升超市管理效率,也是超市科学化、正规化管理,和世界接轨关键条件。所以,开发这么一套管理软件成为很有必需事情。使之减轻管理人员负担,充足发挥电脑作用。32 系统概念设计 321 概念模型(E-R图)(1)E-R图卡内余额累计金额会员会员卡号会员姓名注册日期会员E-R图促销起始日期商品售价商品类别促销价格商品编号商品数量商品商品备注商品名称告警量供货
14、商号库存量商品进价生产厂商促销截止日期 商品E-R图供货商号供货商地址供货商名称供货商电话供货商供货商E-R图仓库地址仓库名称仓库编号仓库仓库E-R图 退货数量退货金额商品编号退货日期交易流水号退货信息表 退货信息表E-R图取得职员销售单打印商品会员销售商品n1mmn1时间数量 收银业务E-R图打印时间打印购物发票营业员11m退货信息表 退货处理E-R图管理 商品职员销售 销售管理E-R图打印退货信息表收银员 退货处理E-R图会员m购置日期流水账号购置销售金额供货编号 销售数量销售日期供货日期供货数量n销售供货供货商商品nnmn打印1 m库存仓库n收银员退货信息表1库存量(2)系统ER图说明1
15、) 商店中用户销售多个商品。多个商品由同一个用户销售2) 商店中全部用户能够购置多个商品,每种商品可由不一样用户购置;3) 每个用户能够购置多个商品,不一样商品可由不一样用户购置;4) 每个供货商能够供给多个不一样商品,每种商品可由多个供给商供给。 322关系模式(1)商品信息表(商品编号、商品名称、商品条形码、商品类别、商品售价、商品进价、促销价格、促销起始日期、促销截止日期、库存量、告警量、计划库存量、生产厂商、供货商编号)(2)会员表(会员卡号、会员姓名、累积金额、卡内余额、会员密码、注册日期、有效日期)(3)商品交易表(交易流水号、计数号、交易日期、收银员号(职员编号)、商品编号、商品
16、名称、交易数量、售价、小计、会员卡号)(4)入库信息表(入库编号、商品编号、商品名称、入库量、总额、供货商名称、入库日期、进货员编号(5)供货商表(供货商号、供货商名称、供货商地址、供货商电话) (6)进货单表(进货单编号、进货商品编号、进货商品名称、进货量、进价、总额、供货商名称、进货单生成日期、进货员姓名)(7)职员信息表(职员编号、工作类型、职员姓名、性别、年纪、身份证号、职员工资、职员电话、居住地址、备注信息)(8)退货信息表(交易流水号、商品编号、退货数量、退货金额、退货日期)(9)仓库表(仓库编号,仓库名称,仓库地址)323 关系模式规范化说明 (1)商品信息表主属性是商品编号,其
17、它非主属性完全依靠于主码。商品信息表建立是为了对商品进行管理。其中,除了基础商品信息外,如商品编号,名称,价格,存货数量外,还增加了条形码,便于对商品快速录入(2)会员表主属性是会员卡号,其它非主属性完全依靠于主码。而且不存在传输依靠关系,所以该用户表符合第三范式。会员表建立是为了对会员进行管理和依据会员情况进行打折活动。(3)商品交易表主属性是交易流水号,其它非主属性完全依靠于主码。商品交易表是对超市所出售商品统计,分析出各个商品销售情况,并可生成销售统计图,从而有针对性进行商品进购。(4)入库信息表主属性是入库编号,其它非主属性完全依靠于主码。该表是入库商品信息进行统计。(5)供货商表主属
18、性是供货商号,其它非主属性完全依靠于主码。关键是为了对供货商管理。(6)进货单表主属性是进货单编号,其它非主属性完全依靠于主码。进货单表是经过商品信息表来统计需要进货信息。(7)职员信息表主属性是职员编号,其它非主属性完全依靠于主码。是对职员进行管理。(8)退货信息表是为了对用户所退回商品信息统计,方便愈加好进行商品管理和提升对用户服务。 (9)仓库表主属性是仓库编号,其它非主属性完全依靠于主码。关键是对仓库信息管理。324 系统数据库表结构商品信息表列名字段类型长度主/外键是否为空商品编号Varchar10主键Not null商品名称Varchar50Not null商品条形码Varchar
19、50Not null商品类别Varchar25Not null商品售价Money4Not null商品进价Money4Not null促销价格Money4促销起始日期Datetime8促销截止日期Datetime8库存量IntNot null告警量IntNot null计划库存量IntNot null生产厂商Varchar50供货商号Varchar10外键Not null 会员表列名字段类型长度主/外键是否为空会员卡号Varchar20主键Not null会员姓名Varchar10Not null累积金额Money4Not null卡内余额Money4Not null会员密码Varchar20
20、Not null注册日期Datetime8Not null截止日期Datetime8Not null 商品交易表列名字段类型长度主/外键是否为空交易流水号Varchar50主键Not null计数号IntNot null交易日期Datetime8Not null收银员号Varchar10外键Not null商品编号Varchar10外键Not null商品名称Varchar50Not null交易数量IntNot null售价Money4Not null小计Money4Not null会员卡号Varchar20外键入库信息表列名字段类型长度主/外键是否为空入库编号Varchar10主键Not
21、null商品编号Varchar10外键Not null商品名称Varchar50Not null入库量IntNot null总额Money8Not null供货商名称varchar50Not null入库日期Datetime8Not null进货员编号Varchar10外键Not null供货商表列名字段类型长度主/外键是否为空供货商号Varchar10主键Not null供货商名称Varchar50Not null供货商地址Varchar70供货商电话Varchar25进货单表列名字段类型长度主/外键是否为空进货单编号varchar10主键Not null商品编号Varchar10外键Not
22、 null商品名称Varchar50Not null进货量intNot null进价money4Not null总额money8Not null供货商名称varchar50Not null进货单生成日期datetime8Not null进货员姓名varchar10Not null职员信息表列名字段类型长度主/外键是否为空职员编号Varchar10主键Not null工作类型Varchar25Not null职员姓名varchar50Not null性别varchar2Not null年纪varchar2身份证号varchar50Not null职员工资Money50Not null职员电话va
23、rchar25Not null居住地址varchar70备注信息varchar200退货信息表列名字段类型长度主/外键是否为空交易流水号varchar50外键Not null商品编号Varchar10外键Not null退货数量intNot null退货金额money4Not null退货日期datetime8Not null仓库表列名字段类型长度主/外键是否为空仓库编号varchar10主键Not null仓库名称Varchar50Not null仓库地址Varchar70Not null第四章 数据库实施阶段4.1建立数据库、数据表、视图、索引4.1.1 建立数据库 create data
24、base 小型超市管理系统4.1.2 建立数据表 (1)商品基础表建立create table 商品信息(商品编号 varchar(10) primary key,商品名称 varchar(50) not null,商品条形码 varchar(50) not null,商品类别 varchar(25) not null,商品售价 money not null,商品进价 money not null,促销价格 money,促销起始日期 datetime,促销截止日期 datetime,库存量 int not null,告警量 int not null,计划库存量 int not null,生产厂
25、商 varchar(50) ,供货商号 varchar(10) not null,foreign key(供货商号)references 供货商表(供货商号); (2)会员表建立 create table 会员表(会员卡号 varchar(20) primary key,会员姓名 varchar(10) not null,累积金额 money not null,卡内余额 money not null,会员密码 varchar(20) not null,注册日期 datetime not null,截止日期 datetime not null);(3)商品交易表建立 create table 商
26、品交易表(交易流水号 varchar(50) primary key,计数号 int not null,交易日期 datetime not null,收银员号 varchar(10) not null,商品编号 varchar(10) not null,商品名称 varchar(50) not null,交易数量 int not null,售价 money not null,小计 money not null,会员卡号 varchar(20) not null,foreign key(收银员号) references 职员信息表(职员编号),foreign key(商品编号) referenc
27、es 商品信息 (商品编号),foreign key(会员卡号) references 会员表 (会员卡号);(4)入库信息表建立 create table 入库信息表(入库编号 varchar(10) primary key,商品编号 varchar(10) not null,商品名称 varchar(50) not null,入库量 int not null,总额 money not null,供货商名称 varchar(50) not null,入库日期 datetime not null,进货员编号 varchar(10) not null,foreign key(进货员编号) ref
28、erences 职员信息表(职员编号); (5)供货商表建立create table 供货商表(供货商号 varchar(10)primary key,供货商名称 varchar(50) not null,供货商地址 varchar(70) not null,供货商电话 varchar(25) not null );(6)进货单表建立 create table 进货单表(进货单编号 varchar(10) primary key,商品编号 varchar(10) not null,商品名称 varchar(50) not null,进货量 int not null,进价 money not n
29、ull,总额 money not null,供货商名称 varchar(50) not null,进货单生成日期 datetime not null,进货员姓名 varchar(10) not null,foreign key(商品编号)references 商品信息(商品编号),foreign key(进货员姓名)references 职员信息表(职员编号);(7)职员信息表建立create table 职员信息表(职员编号 varchar(10) primary key,工作类型 varchar(25) not null,职员姓名 varchar(50) not null,性别 varch
30、ar(2) check(性别 in (男,女),年纪 varchar(2) not null,身份证号 varchar(50) not null,职员工资 money not null,职员电话 varchar(25) not null,居住地址 varchar(70) not null,备注信息 varchar(200)not null); (8)退货信息表建立 create table 退货信息表(交易流水号 varchar(50) not null,商品编号 varchar(10) not null,退货数量 int not null,退货金额 money not null,退货日期 d
31、atetime not null,foreign key(交易流水号)references 商品交易表(交易流水号),foreign key(商品编号)references 商品信息(商品编号);(9)仓库表建立 create table 仓库表(仓库编号 varchar(10) primary key,仓库名称 varchar(50) not null,仓库地址 varchar(70) not null,);4.1.3 创建视图(1) 创建用于查询交易情况视图create view 交易情况asselect 交易日期,收银员号,会员卡号,小计from 商品交易表 (2) 创建用于查询进货计划
32、create view 查询进货计划asselect 进货单表.商品名称,商品条形码,进货量,进货单生成日期,供货商名称,进货员姓名from 商品信息,进货单表where 商品信息.商品编号=进货单表.商品编号(3) 创建用于查询销售明细统计create view 销售明细统计asselect 商品交易表.商品名称,商品条形码,商品售价, 交易数量, 交易日期,收银员号,小计from 商品信息,商品交易表,职员信息表where 商品信息.商品编号=商品交易表.商品编号 and 商品交易表.收银员号=职员信息表.职员编号(4) 创建用于查询入库情况create view 入库情况asselect
33、 入库信息表.商品名称, 商品条形码,供货商名称,入库量,总额,入库日期from 商品信息,入库信息表,职员信息表where 商品信息.商品编号=入库信息表.商品编号 and 入库信息表.进货员编号=职员信息表.职员编号4.1.4 创建索引(1) 在商品交易表上建立一个以交易流水号、交易日期为索引项非聚集索引create nonclustered index 交易 on 商品交易表(交易流水号, 交易日期);(2) 在商品信息表上建立一个以商品编号为索引项非聚集索引create nonclustered index IX_商品信息 on 商品信息(商品编号);(3) 在入库信息表上建立一个以入
34、库编号、入库日期、商品编号为索引项非聚集索引create nonclustered index 入库信息 on 入库信息表(入库编号, 入库日期, 商品编号);结束语经过此次数据库课程设计,真正达成了学和用结合,增强了对数据库方面应用了解,对自己以后参与开发数据库系统积累了不少经验,在试验过程中,从建立数据开始,对数据库设计理念及思想上有更高认识,从需求分析,到概念设计和逻辑设计,E-R图表示,数据字典创建,知道了不少相关数据库开发过程中知识,在试验中建表,及其关系模式,关系代数建立及了解,将SQL语言查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言灵活性,其中包含,插入、删除、修改、查询,牵涉表和表之间联络,主键和外主键定义,约束项设置,使逻辑更严密。在学习过程中,我也上网查了不少资料,也看了部分她人设计小型超市信息系统设计汇报,学以致用,自我创新,独立完成了这份自己汇报,从中从学到用,从用又到学,不停修改,系统更新。即使不能达成完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限,我以后还会在这个领域不停进行探索,掌握更多知识。