数据结构课设.docx
《数据结构课设.docx》由会员分享,可在线阅读,更多相关《数据结构课设.docx(39页珍藏版)》请在冰豆网上搜索。
数据结构课设
经济管理学院管理系
数据系统概论课程设计
小型超市管理系统
组员:
冯程程陈军明
石闯李生辉
任义邵鹏
2010年7月14日
目录
第1章绪论
1.1前言
第2章需求分析
2.1系统开发功能
2.2系统功能模块设计
2.3数据流图
第3章数据库设计
3.1数据字典
3.1.1数据项
3.1.2数据结构
3.1.3数据流
3.1.4数据存储
3.1.5数据库表
3.2概念结构设计
3.2.1系统E/R图
3.2.2关系模型
第4章物理设计文档
4.1SQL的创建语句
4.2SQL的实现
第5章小结
第1章绪论
1.1前言
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。
技术的提升和管理的升级是超市业的竞争核心。
零售领域目前呈多元发展趋势,多种业态:
超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。
如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
第2章需求分析
2.1系统开发功能
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
2.2系统功能模块设计
图1系统功能模块
1.商品录入模块:
该模块要求能快速录入商品,因此必须支持条形码扫描。
2.收银业务模块:
该模块能计算交易总额,打印交易清单,并根据会员卡打折。
3.进货管理模块:
该模块可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。
4.销售管理模块:
该模块可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。
5.库存管理模块:
该模块提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。
6.人员管理模块:
该模块提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。
2.3数据流图
图2超市管理流程图
第3章数据库设计
创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。
为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。
3.1数据字典
3.1.1数据项
数据项:
商品编号
含义说明:
每一种商品唯一标识
别名:
MerchID
类型:
int
长度:
4
允许空:
否
数据项:
商品名称
含义说明:
标识一个商品的名称
别名:
MerchName
类型:
Varchar
长度:
50
允许空:
否
数据项:
价格
含义说明:
标识一种商品的价格
别名:
MerchPrice
类型:
Money
长度:
4
允许空:
否
数据项:
库存数量
含义说明:
标识一种商品的库存数量
别名:
MerchNum
类型:
int
长度:
4
允许空:
否
数据项:
库存报警数量
含义说明:
标识一种商品的库存报警数量
别名:
CautionNum
类型:
int
长度:
4
允许空:
否
数据项:
计划进货数
含义说明:
标识一种商品的计划进货数
别名:
PlanNum
类型:
int
长度:
4
允许空:
可
数据项:
条形码
含义说明:
标识一种商品的条形码
别名:
BarCode
类型:
Varchar
长度:
50
允许空:
否
数据项:
促销价格
含义说明:
标识一种商品的促销价格
别名:
SalesProPrice
类型:
Money
长度:
4
允许空:
可
数据项:
促销起日期
含义说明:
标识一种商品的促销起日期
别名:
SalesProDateS
类型:
Datetime
长度:
8
允许空:
可
数据项:
促销止日期
含义说明:
标识一种商品的促销止日期
别名:
SalesProDateE
类型:
Datetime
长度:
8
允许空:
可
数据项:
允许打折
含义说明:
标识一种商品的允许打折
别名:
AllowAbate
类型:
int
长度:
4
允许空:
否
数据项:
允许销售
含义说明:
标识一种商品是否允许销售
别名:
AllowSale
类型:
int
长度:
4
允许空:
否
数据项:
厂商编号
含义说明:
唯一标识一个厂商的编号
别名:
FactoryID
类型:
Varchar
长度:
10
允许空:
否
数据项:
供货商编号
含义说明:
标识一种商品的供货商编号
别名:
ProvideID
类型:
Varchar
长度:
10
允许空:
否
数据项:
用户编号
含义说明:
唯一标识一个用户的用户编号
别名:
UserID
类型:
Varchar
长度:
10
允许空:
否
数据项:
用户名称
含义说明:
标识一个用户的用户名称
别名:
UserName
类型:
Varchar
长度:
25
允许空:
否
数据项:
用户密码
含义说明:
标识一个用户的用户密码
别名:
UserPW
类型:
Varchar
长度:
10
允许空:
否
数据项:
用户类型
含义说明:
标识一种用户的用户类型
别名:
UserStyle
类型:
Varchar
长度:
10
允许空:
否
数据项:
会员编号
含义说明:
唯一标识一个会员的会员编号
别名:
MemberID
类型:
Varchar
长度:
10
允许空:
否
数据项:
会员卡号
含义说明:
唯一标识一个会员的会员卡号
别名:
MemberCard
类型:
Varchar
长度:
20
允许空:
否
数据项:
累积消费金额
含义说明:
标识一个会员的消费金额
别名:
TotalCost
类型:
Money
长度:
4
允许空:
否
数据项:
注册日期
含义说明:
标识一个会员的注册日期
别名:
RegDate
类型:
Datetime
长度:
8
允许空:
否
数据项:
销售编号
含义说明:
唯一标识销售商品的销售编号
别名:
SaleID
类型:
Varchar
长度:
10
允许空:
否
数据项:
商品编号
含义说明:
标识一次商品销售的商品编号
别名:
MerChID
类型:
Varchar
长度:
10
允许空:
否
数据项:
销售日期
含义说明:
标识一次商品销售的销售日期
别名:
SaleDate
类型:
Datetime
长度:
8
允许空:
否
数据项:
销售数量
含义说明:
标识一次商品销售的销售数量
别名:
SaleNum
类型:
int
长度:
4
允许空:
否
数据项:
销售单额
含义说明:
标识一次商品销售的销售单额
别名:
SalePrice
类型:
Money
长度:
4
允许空:
否
数据项:
交易编号
含义说明:
唯一标识一次交易的交易编号
别名:
DealingID
类型:
Varchar
长度:
10
允许空:
否
数据项:
交易金额
含义说明:
标识一次交易的交易金额
别名:
DealingPrice
类型:
Money
长度:
4
允许空:
否
数据项:
交易日期
含义说明:
标识一次交易的交易日期
别名:
DealingDate
类型:
Datetime
长度:
4
允许空:
否
数据项:
会员卡号
含义说明:
标识一次交易的会员卡号
别名:
MemberID
类型:
Varchar
长度:
10
允许空:
允许
数据项:
用户名称
含义说明:
标识一次交易的用户名称
别名:
UserName
类型:
Varchar
长度:
10
允许空:
否
数据项:
入库编号
含义说明:
唯一标识一批商品入库的入库编号
别名:
StockID
类型:
Varchar
长度:
10
允许空:
否
数据项:
入库商品编号
含义说明:
标识入库商品编号
别名:
MerchID
类型:
Varchar
长度:
10
允许空:
否
数据项:
入库数量
含义说明:
标识一次入库商品的入库数量
别名:
MerchNum
类型:
int
长度:
4
允许空:
否
数据项:
单额
含义说明:
标识一次入库商品的单额
别名:
MerchPrice
类型:
Money
长度:
4
允许空:
否
数据项:
总额
含义说明:
标识一次入库商品的总额
别名:
TotalPrice
类型:
Money
长度:
4
允许空:
否
数据项:
入库日期
含义说明:
标识一次商品入库的入库日期
别名:
StockDate
类型:
Datetime
长度:
8
允许空:
否
数据项:
计划进货日期
含义说明:
标识一次计划进货的日期
别名:
PlanDate
类型:
Datetime
长度:
8
允许空:
否
数据项:
入库状态
含义说明:
标识一次商品入库后的状态
别名:
StockState
类型:
Varchar
长度:
10
允许空:
否
数据项:
厂商编号
含义说明:
唯一标识厂商的厂商编号
别名:
FactoryID
类型:
varchar
长度:
10
允许空:
否
数据项:
厂商名称
含义说明:
标识厂商的名称
别名:
FactoryName
类型:
Varchar
长度:
50
允许空:
否
数据项:
厂商地址
含义说明:
标识厂商的地址
别名:
FactoryAddress
类型:
Varchar
长度:
250
允许空:
否
数据项:
厂商电话
含义说明:
标识厂商的电话
别名:
FactoryPhone
类型:
Varchar
长度:
25
允许空:
否
3.1.2数据结构
本系统涉及7个数据结构分别为:
商品信息表、用户表、会员表、销售表、交易表、进货入库表、厂商表,以下对其进行具体说明。
a)数据结构:
商品信息表
含义说明:
是超市管理系统的主体数据结构,定义了一个超市所需要的最基本的信息。
组成:
商品编号(主键),商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号(外键),供货商编号(外键)
b)数据结构:
用户表
含义说明:
定义超市系统用户的基本信息。
组成:
用户编号(主键),用户名称,用户密码,用户类型
c)数据结构:
会员表
含义说明:
集中定义了该超市的会员信息及消费情况。
组成:
会员编号(主键),会员卡号,累积消费金额,注册日期
d)数据结构:
销售表
含义说明:
定义了该超市的销售情况及相关信息。
组成:
销售编号(主键),商品编号(外键),销售数量,销售金额,销售日期
e)数据结构:
交易表
含义说明:
定义在该超市进行交易的信息,其中包括一般用户的和会员
的交易情况。
组成:
交易编号(主键),用户名称(外键),交易金额,会员卡号,交易日期
f)数据结构:
进货入库表
含义说明:
集中定义超市商品进货入库信息。
组成:
入库编号(主键),入库商品编号(外键),入库数量,单额,总额,入库日期,计划进货日期,入库状态
g)数据结构:
厂商表
含义说明:
定义为超市提供商品的各厂商的情况。
组成:
厂商编号(主键),厂商名称,厂商地址,厂商电话
3.1.3数据流
数据流表示数据的流向。
在数据字典中所定义的数据流有两类:
一是从外部实体输入到系统中的数据流,二是从系统输出到外部实体的数据流。
一般在数据字典中只需定义系统的输入和输出的数据流。
数据流定义内容可以包括数据流名称、说明、数据流的来源、数据流的组成、数据流的去向、数据流的平均流通量、高峰期时的流通量。
以“商品销售”为例数据流定义如下表所示。
表1数据流定义表
数据流名称
商品销售
说明
超市给会员销售商品过程中销售的信息
数据流来源
会员
数据流去向
处理功能“销售管理”
组成
销售编号
销售数量
销售金额
表1(续)数据流定义表
销售日期
数据流的流通量
每天销售商品给1500个会员(举例)
高峰时期流通量
上午9:
00到11:
00下午2:
00到4:
001300个会员
3.1.4数据存储
数据存储是指在系统中应该保存的数据结构以及具体的数据内容,实际上它是信息系统的资源,用户要从系统中获取的全部数据都来自于数据存储。
数据存储内容有以下几项:
数据存储名称、说明、输入数据流、输出数据流、数据存储的组成、数据量以及存取方式。
以“用户信息”为例数据存储定义表如下所示:
表2数据存储定义表
数据存储名称
用户信息
简述
登录超市系统的各个使用者的信息
输入数据流
用户信息,汇总的用户的用户信息
输出数据流
用户权限信息
组成
用户编号(数据元素)
用户名称(数据元素)
用户密码(数据元素)
用户类型(数据元素)
数据量
每年100个
存取方式
随机存储
3.1.5数据库表
表3数据库表索引
表名
中文名
MerchInfo
商品信息表
Yonghu
用户表
Menber
会员表
Sale
销售表
Dealing
交易表
Stock
进货入库表
Factory
厂商表
表4商品信息表(MerchInfo)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MerchID
Int
4
P
Notnull
商品编号
MerchName
Varchar
50
Notnull
商品名称
表4(续)商品信息表(MerchInfo)
MerchPrice
Money
4
Notnull
价格
MerchNum
Int
4
Notnull
库存数量
CautionNum
Int
4
Notnull
库存报警数量
PlanNum
Int
4
null
计划进货数
BarCode
Varchar
50
Notnull
条形码
SalesProPrice
Money
4
null
促销价格
SalesProDateS
Datetime
8
null
促销起日期
SalesProDateE
Datetime
8
null
促销止日期
AllowAbate
Int
4
Notnull
允许打折
AllowSale
Int
4
Notnull
允许销售
FactoryID
Varchar
10
F
Notnull
厂商编号
表5用户表(Yonghu)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
UserID
varchar
10
P
Notnull
用户编号
UserName
Varchar
25
Notnull
用户名称
UserPW
Varchar
10
Notnull
用户密码
UserStyle
Varchar
10
Notnull
用户类型
表6会员表(Menber)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MemberID
Varchar
10
P
Notnull
会员编号
MemberCard
Varchar
20
Notnull
会员卡号
TotalCost
Money
4
Notnull
累积消费金额
RegDate
Datetime
8
Notnull
注册日期
表7销售表(Sale)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SaleID
Varchar
10
P
Notnull
销售编号
MerChID
Varchar
10
F
Notnull
商品编号
SaleDate
Datetime
8
Notnull
销售日期
SaleNum
Int
4
Notnull
销售数量
SalePrice
Money
4
Notnull
销售单额
表8交易表(Dealing)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
DealingID
Varchar
10
P
Notnull
交易编号
DealingPrice
Money
4
Notnull
交易金额
DealingDate
Datetime
4
Notnull
交易日期
MemberID
Varchar
10
Notnull
会员卡号
UserName
Varchar
10
F
Notnull
用户名称
表9入库纪录表(Stock)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
StockID
Varchar
10
P
Notnull
入库编号
MerchID
Varchar
10
F
Notnull
入库商品编号
MerchNum
Int
4
Notnull
入库数量
MerchPrice
Money
4
Notnull
单额
TotalPrice
Money
4
Notnull
总额
StockDate
Datetime
8
Notnull
入库日期
PlanDate
Datetime
8
Notnull
计划进货日期
StockState
Varchar
10
Notnull
入库状态
表10厂商表(Factory)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
FactoryID
Varchar
10
P
Notnull
厂商编号
FactoryName
Varchar
50
Notnull
厂商名称
FactoryAddress
Varchar
250
Notnull
厂商地址
FactoryPhone
Varchar
25
Notnull
厂商电话
3.2概念结构设计
3.2.1E/R图
本系统在需求分析的基础上设计出能够满足用户需求的各种实体。
根据上面的分析所得的实体有:
商品信息实体,用户实体,会员实体,销售实体,交易实体,入库记录实体,厂商实体。
整个系统的E-R图如下:
图3
系统ER图说明:
1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3)每个厂商可以供应多种不同商品,每种商品可由多个厂商供应
3.2.2关系模型
关系的规范化
关系模式化理论是研究如何将一个不十分合理的关系模型转化为一个最佳的数据关系模型理论,它是围绕范式而建立的。
关系规范化的三个范式原则如下:
(1)第一范式:
在一个关系中消除重复字段,且各字段都是不可分的基本数据项;
(2)第二范式:
若关系模型属于第一范式,且所有非主属性都完全依赖关
键字段;
(3)第三范式:
若关系模型属于第二范式,且关系中所有非主属性都直接依赖关键字段。
以下是我们设计专门与商品有关的信息
表11基本信息一览表
商品信息情况
入库情况
销售情况
商品
编号
商品
名称
价
格
库存
数量
条形码
入库
编号
入库
日期
入库
状态
销售
编号
销售
日期
销售
数量
0001
Merch1
25
200
1000001
1001
2010-7-1
良好
111
2010-8-20
20
0002
Merch2
35
280
1000002
1002
2010-7-2
优秀
222
2010-8-25
40
0003
Merch3
45
90
1000003
1003
2010-7-3
良好
333
2010-8-26
25
0004
Merch4
55
200
1000004
1004
2010-7-4
优秀
444
2010-8-22
30
由于关系规范化是基本思想是逐步消除数据以来关系中不合适的部分,使现实世界反映同一实体型中的数据达到有效的分离。
因此,为了方便、有效地使用这些信息资源,遵循关系规范化原则,可以将表11分成三个独立的数据表:
表12、表13、表14,使每一个数据表都具有独立性,同时又依赖共同拥有的关键字段“商品编号”,使这些数据表之间保持一定的关联关系,并且保证3个数据表中的数据能完全体现表1中所包含的全部数据信息。
(1)商品基本情况表,收入了商品的基本情况
表12商品信息一览表
商
品
编
号
商品
名称
价格
库存数量
库存
报警
数量
计划
进货
数量
条形
码
促销价格
促销
起时
日期
促销
止时
日期
允许打折
允许销售
厂商
编号
0001
Merch1
25
200
100
20
1000001
10
2010-7-10
2010-8-10
0
1
1111111111
0002
Merch2
35
280
40
20
1000002
20
2010-7-15
2010-8-15
0
1
2222222222
0003
Merch3
45
90
10
20
1000003
25
2010-8-10
2010-9-10
0
1
3333333333
0004
Merch4
55
200
20
20
1000004
30
2010-8-1
2010-8-1
0
1
4444444444
(2)商品入库情况,如表13。
表13入库信息一览表
入库
编号
入库
商品
编号
入库
数量
单
额
总
额
入库
日期
计划
入库
日期
入库
状态
1001
1
200
25
5000
2010-7-1
2010-7-1
良好
1002
2
280
35
9800
2010-7-2
2010-7-2
优秀
1003
3
90
45
4050
2010-7-3
2010-7-3
良好
1004
4
200
55
11000
2010-7-4
2010-7-4
优秀
(3)商品销售情况,如表14。
如表14销售信息一览表
销售编号
商品编号
销售日期
销售数量
销售单额
111
1
2010-8-20
20
30
222
2
2010-8-25
40
50
333
3
2010-8-26
25
60
444
4
2010-8-