数据库专题训练剖析.docx
《数据库专题训练剖析.docx》由会员分享,可在线阅读,更多相关《数据库专题训练剖析.docx(33页珍藏版)》请在冰豆网上搜索。
![数据库专题训练剖析.docx](https://file1.bdocx.com/fileroot1/2022-12/8/d9784633-0150-42cf-80f5-533c2f7b335b/d9784633-0150-42cf-80f5-533c2f7b335b1.gif)
数据库专题训练剖析
专题训练
科目:
数据库专题训练
题目:
专业:
指导教师:
学生姓名:
班级学号:
年月日
1需求分析
1.1项目概述
随着超市的出现,为实现超市管理的系统化、规范化和自动化,超市管理系统应运而生.它依靠现代化的计算机信息处理技术来管理超市,这能够快速反映出商品的进销存状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应决策,加快超市的系统建立的技术基础;为超市提供方便,快捷的结账体系,准确,高效的库存和财务管理系统等;让顾客在超市购物更加快捷方便,让超市的管理和运行工作更加完善,方便。
1.2功能需求
1.2.1信息要求
该系统由商品信息管理模块,员工信息管理模块,供应商信息管理模块,仓库信息管理模块等可以完成商品的进销存和查询,更改等的基本操作。
并根据客户的要求完善系统的功能需求。
系统功能有:
(1)商品信息的管理包括商品基本信息的新建、修改和删除,商品的编号、商品名称、商品规格等
(2)供货商信息管理:
包括供货商信息的新建、修改和删除和供应商的名称、供应商代号、供应商地址等。
(3)员工信息管理:
系统管理员的添加、删除和修改密码和员工姓名、性别、职称、工号等。
(4)仓库信息管理:
仓库号、库存商品号、商品数量等
1.2.2处理要求
(1)针对超市进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:
商品按类管理,所以需要有一商品类型信息。
如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。
需要记录供应商品信息。
在涉及商品数量的地方,需要知道商品的库存地方。
商品销售信息单中要包含登记商品销售数量、单价等信息。
在进货信息中要包含商品供应商等信息。
商品报损要有报损原因。
进货、销售、报损操作要有相应信息管理员。
只有管理员登录之后才可以使用系统。
默认的管理员不可以删除。
进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。
当进行进货、销售和报损操作后,能相应更新库存。
(2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:
商品类型信息,包括数据项有:
商品信息,包括的数据项有:
商品编号、商品名称、商品的的生产日期、库存量等。
商供应商信息,包括供应商号、供应商名称、联系电话等。
进货信息,包括进货商品号、数量、规格、单价等。
销售信息,包括销售商品、数量、单价等。
报损信息,包括报损商品、数量、原因、登记时间等。
员工信息,包括员工号、姓名、职称等
1.2.3系统要求
(1)精度价钱精确到分,时间精确到秒,响应时间在0.5秒内。
数据录入精确,计算准确,同时与后台库存管理系统的数据保持一致性即可。
(2)时间特性要求录入并更新数据的时间正常情况下少于2秒,与库存管理系统保持同步更新的时间越低越好,实现商品的销售和记录的高度统一数据传送时间尽量缩短.
(3)灵活性对于该系统,最大的问题在于当停电的时候如何解决销售和库存记录的同步性。
其一:
在停电销售未记录入数据库时,先由人工记录,然后等电来的时候再人工手动录入未存数据
其二:
脱机处理,即当停电的时候,收银台能够正常工作,但后台库存管理系统失效,则由前台销售系统暂时代行记录任务,等库存管理系统恢复工作后,再向库存导入销售数据,实现更新(针对大规模,多个消费服务点的超市平台)
可扩展性
用JAVA进行实现,进而有良好的可扩展性,程序使用大量重载和多态,留有接口。
对以后扩展留下丰富空间。
安全性
OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。
易用性
针对销售员,执行简单,一切都是自动,提示。
针对普通查询用户使用智能、便捷的方法操作系统;针对系统管理员,只要对其进行简单的培训操作,就能解决在操作超市管理系统实际中所遇到的问题。
对于技术人员来说,有良好的扩展性和维护性。
总体来说本系统是一个面向各个领域用户的简单的软件。
输入信息错误或不满足条件时会给出错误提示信息,使各个管理员操作的十分简单。
可维护性
系统组成简单,各个模块间的独立性很高,易于维护。
1.3数据流图
以下是超市管理系统的业务流程的分析
(1)超市管理系统业务流程图的符号解释
业务处理单位/个人清单/报表信息流程
(2)超市管理系统进货业务流程图为
图1—1为某超市进销存管理系统的进货业务流程图
(3)超市管理系统销售业务流程图
图1—2为某超市进销存管理系统的销售业务流程图
根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运行的可行性角度出发,自顶向下对系统进行分解,导出了超市销售管理系统的顶层数据流程图、第二层数据流程图和第三层数据流程图。
(1)某超市管理系统数据流程图符号解释
1、外部实体2、处理3、数据流4、数据存储
(2)某超市管理系统顶层数据流程图
图1—3为某超市管理系统顶层数据流程图
上图是超市管理系统的顶层数据流程图。
由业务流程图确定系统开发的外部实体即系统数据的来源与去处,从而确定了整个系统的外部实体和数据流,在顶层数据流程图中,把超市管理系统作为一个处理环节,与实体间传递信息,简单的表达系统的各部分功能。
(3)第一层数据流程图
图为1—4为超市进销存管理系统第一层数据流图
确定系统的主要处理功能,可以将系统分为进货管理、库存管理、销售管理等几部分。
再确定各个输入和输出的数据流的以及与之相关的数据结构,为各个数据流、报表命名
并编码,从而得到超市销售进销存系统的第一层数据流程图,如图上图所示
(4)第二层数据流程图
再将第一层数据流程图分解就可得到第二层流程图。
其中某些数据项处理可分解为多个处理过程。
在本系统中有销售模块、进货管理。
每一部分都可以分解为第二层流程图。
具体的分解情
图1—5为为
1.4数据字典
数据项如表一
数据项编号
数据项名称
简述
类型及宽度
取值范围
I1
TID
标识商品的代号
Char(8)
I2
Tname
某商品的名称
Char(14)
I3
TPrice
某商品的价值
Int
I4
Tproducedate
某商品生产的时间
Char(6)
I5
TKeepdate
某商品的保存时间
Char
(2)
I6
TWeight
某商品的重量
Char(8)
I7
TProducename
某商品的生产公司
Char(14)
I8
TNorms
某商品长宽
Char(6)
I9
SName
某商品的公司名称
Char(12)
I10
SAddress
某商品生产的地方
Char(16)
I11
SCodename
某供应商的产品代号
Char(8)
I12
SFax
与供应商的传真联系方式
Char(11)
I13
STele
联系供应商的电话方式
Char(11)
I14
SDate
定货单位要求的供货日期
Char(12)
I15
SOrder
发出订单的单据号
Char(8)
I16
YID
标识公司员工的代码
Char(6)
I17
Yname
公司员工的姓名
Char(6)
I18
YSex
公司员工的性别
Char
(1)
I19
YAge
公司员工的年龄
Char
(2)
I20
YZhichen
公司的员工的职位名称
Char(6)
I21
KNO
存储商品的库存号
char
(2)
I22
KNum
某种商品当前的库存量
Char(4)
I23
KHnum
商品的库存上限
Char
I24
KDnum
商品的库存下限
Char
I25
KPnum
盘盈盘亏数量
Int
I26
KPerson
与定货发生联系的供应商负债人
Char(8)
数据结构如表二
DS08-01:
用户订单的数据结构
DS08-02:
订货单标识
I1:
定货单编号
DS08-03:
用户情况
DS08-04:
配件情况
I2:
日期
I3:
用户代码
I10:
配件代码
I4:
用户名称
I11:
配件名称
I5:
用户地址
I12:
配件规格
I6:
用户姓名
I13:
订货数量
I7:
电话
I8:
用户银行
I9:
帐号
数据流编码如表三
数据流编号
数据流名称
简述
数据流来源
数据流去向
数据流组成
数据流量
高峰流量
F1
订货单
公司向供应商订购商品的订货单
验收货品模块
供应商
商品编码+商品名称+单位+数量+单价+交货日期+定单号
550000份/月
950000份/月
F2
发货单
供应商发出的收货单
供应商
验收货品模块
商品编码+商品名称+单位+数量+单价+订单号+供应商
550000份/月
950000份/月
F3
不合格单
采购部验货不合格单
验收货品模块
退货模块
商品编码+商品名称+单位+数量+单价+说明原因
100份/月
500份/月
F4
退货单
库管员开出的退货单
退货模块
供应商
商品编码+商品名称+单位+数量+单价+退货说明
100份/月
500份/月
F5
合格单
采购部验货合格单
验收货品模块
进库模块
商品编码+商品名称+单位+数量+单价+合格说明
550000份/月
950000份/月
F6
入库单
库管员开出的入库单
进库模块
库存台帐
商品编码+商品名称+单位+数量+单价+供应商
550000份/月
9500000份/月
外部实体编码如表四
外部实体编号
外部实体名称
简述
外部实体组成
输入的数据流
输出的数据流
E1
供应商
提供商品的直接厂家
供应商编码+单位全称+简称+地址+联系人+电话+帐号
订货单
发货单
E2
顾客
购买商品的顾客
编码+姓名+地址+电话+邮编
销售单
顾客订单
E3
仓库
存放仓库的地方
单位全称+地址+电话
实物清单
报损单
处理逻辑如表五
处理逻辑编号
处理逻辑名称
简述
输入的数据流
处理
输出的数据流
处理频率
P1.1
验收货品
采购部对来货进行检验
F2收货单,来源于供应商发出的采购收货单据
根据收货单验货,确定供应商提供货品的数据、质量等是否合格
F1订货单,向工业商店订货:
F3不合格单,向供应商退货:
F5合格单,入库
1500次/月
P1.2
进货
采购的合格货品入库
F5货物合格单,来源于库管员
根据入库单桨采购货品入库,登记库存和流水账
S2库存台帐、S1流水帐,每次入库都要有详细登记
2000次/月
P1.3
退货
办理退货手续
F3不合格单,来源于货物验收人员
根据不合格单办理退货,并登记流水账
S1流水账,F4退货单将货物退还给供应商
100次/月
P2.1
销售货物
队顾客购物情况进行开单
F7顾客订单,来源于顾客的购物请求:
库存台帐以供查询
根据数据流顾客订单,导购员进行为顾客选货物,消费记账等
F8销售单,给顾客一份;F9出库单;同时根据出库单登记库存台帐及流水账
5000次/天
P2.2
确定退货单
对顾客请求的退货单进行退货确认
F10顾客退单,来源于顾客的要求
根据数据流顾客退单,主管就顾客提出原因进行退货确认
F11确认后的顾客退货单,经销售主管批准后,为顾客办理退货
100次/天
P2.3
退货
根据已确认的退单进行退货
F11已确认的顾客退单,来源于销售主管已批准的退货单
根据批准退货单,允许顾客退货,并修改相关的库存记录
F11库存台帐及流水账,修改库存台帐及流水账
100次/天
数据存取如表六
数据存取编号
数据存储名称
简述
数据存储组成
相关联的处理
S1
库存台帐
商品入库、出库及退货后修改当前库存量
商品编码+商品名称+单位+当前库存+商品下限+商品上限
P1.2、P1.3
S2
流水账
入库、出库及退货的流水账记录
类型+开单日期+单号+商品编号+商品名陈+单位+数量+单价
P1.2
2概念结构设计
2.1局部ER图设计
2.1.1分E-R图建立
根据第二层数据流程图得到三个分E-R图
图2—1为某超市进货的E—R图
图2—2为超市销售的E—R图
图2—3为超市存储E—R图
2.2整体ER图设计
2.1.2系统ER图
3逻辑结构设计
3.1逻辑设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E—R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
从理论上讲,设计逻辑结构应该选择最适合于相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。
但实际情况往往是已给定了某种DBMS,设计人员没有选择的余地。
设计逻辑结构时一般要分3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
3.1.1建立关系模式
有一个超市管理系统数据库,包括T、S、Y、K、TY、SK、TSYK个关系模式:
T(TID,Tname,TPrice,Tproducedate,TKeepdate,TWeight,TNorms,TProducename);
S(SCodename,SName,SAddress,SFax,Stele,SDate,SOrder);
Y(YID,YName,YSex,YAge,YZhichen);
K(KNo,KNum,KHnum,KDnum,KPnum,KPerson);
KT(KNo,TID,QTY)
TY(TID,YID,QTY);
SK(SNo,KNo,CQTY);
TSYK(TID,SName,YID,KNo,WQTY)
1.商品信息表T由商品编号(TID)、商品名称(Tname)、商品单价(TPrice)、生产日期(Tproducedate)、保质期(TKeepdate)、商品重量(TWeight)、商品规格(TNorms)组成;
2.供应商信息表S由供应商名称(SName)、供应商地址(SAddress)、供应商帐号(SCodename)、供应商传真(SFax)、供应商电话(Stele)、交货日期(SDate)、订单号(SOrder);
3.员工信息表Y由员工编号(YID)、员工姓名(YName)、员工的性别(YSex)、员工的年龄(YAge)、员工的职称(YZhichen);
4.库存信息表K由库存号(KNo)现有库存(KNum)、最高库存(KHnum)、最低库存(KDnum)、盈亏数量(KPnum)、联系人(KPerson)组成;
5.KT表是由存储商品的库存号(KNO),标识商品的代号(TID),某商品的数量(QTY)组成;
6.YT由标识公司员工的代码(YID),标识商品的代号(TID),销售的商品数量(CQTY)组成;
7.ST供应商商品表由某供应商的产品代号(SCodename),标识商品的代号(TID),
8.TSYK供应商商品员工仓库表由商品编号(TID)、供应商名称(SName)、库存号(KNo)、员工编号(YID)实际的商品数量(WQTY)组成;
3.1.2关系模式规范化处理
根据F,分析每一个关系模式是否满足3NF,对不满足3NF的关系模式要进行规范化处理。
3.1.3用户子模式建立
对不同级别的用户定义不同的view,如下图
用户对象
视图描述
作用
管理员
购买商品(商品编号,商品名称,商品价格)
用于顾客和管理者对购买商品情况的查询
管理员
供应商(供应商编号,名称,地址,电话,交货日期)
用于管理者对所有供应商信息的查询
管理员
存放(仓库号,商品现存量,商品最高数量,商品最低量)
用于管理员查询商品的简要的信息
管理员
员工(员工姓名,年龄,职称)
用于管理员查询员工的基本信息
表1为视图表
4物理结构设计
建立索引如下表:
表2为索引表
所在表名
索引名称
索引类型
所在表的属性
供应商
SupInfo
唯一
Pid
商品信息表
teleTwo
聚簇
Tprice
仓库信息
Storetele
聚簇
InTime+OutTime
员工信息
ADBuyInfo
聚簇
BuyDate+BuyNum
建立存储过程如表:
表4.2为储存过程表
存储过程名
作用
Telefind
查询商品基本信息
Sum_money
统计商品销售情况
CteleInfo
顾客查询商品信息
Spp
查询供应商信息
Up_TeleInfo
更新商品信息表
5数据库的实施
5.1创建数据库
商品信息表(Goods_Info)用于存储商品的信息。
表中各字段功能定义如下表所示
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
GoodsID
int
4
P
Notnull
商品编号
GoodsName
Varchar
50
Notnull
商品名称
GoodsPrice
Money
4
Notnull
价格
GoodsNum
Int
4
Notnull
库存数量
CautionNum
Int
4
Notnull
库存报警数量
PlanNum
Int
4
null
计划进货数
BarCode
Varchar
50
Notnull
条形码
SalesProPrice
Money
4
Notnull
促销价格
SalesProDateS
Datetime
8
Notnull
促销起日期
SalesProDateE
Datetime
8
Notnull
促销止日期
AllowAbate
Int
4
Notnull
允许打折
AllowSale
Int
4
Notnull
允许销售
FactoryID
Varchar
10
F
Notnull
厂商编号
ProvideID
Varchar
10
F
Notnull
供货商编号
用户表(User)用于存储用户的基本登录信息。
表中各字段功能定义如下表所示。
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
UserID
varchar
10
P
Notnull
用户编号
UserName
Varchar
25
Notnull
用户名称
UserPW
Varchar
50
Notnull
用户密码
UserStyle
Int
4
Notnull
用户类型
会员表(Menber)用于储存会员的各种信息,表中各字段功能定义如下表所示。
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MemberID
Varchar
10
P
Notnull
会员编号
MemberCard
Varchar
20
Notnull
会员卡号
MemberCost
Money
4
Notnull
会员卡余额
RegDate
Datetime
8
Notnull
注册日期
销售表(Sale)用于存储销售信息。
表中各字段功能定义如下表所示。
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SaleID
Varchar
10
P
Notnull
销售编号
MerChID
Varchar
10
F
Notnull
商品编号
SaleDate
Datetime
8
Notnull
销售日期
SaleNum
Int
4
Notnull
销售数量
SalePrice
Money
4
Notnull
销售单额
交易表(Dealing)用于储存交易信息。
表中各字段功能定义如下表所示。
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
DealingID
Varchar
10
P
Notnull
交易编号
DealingPrice
Money
4
Notnull
交易金额
DealingDate
Money
4
Notnull
交易日期
MemberID
Varchar
10
Notnull
会员卡号
UserName
Varchar
10
F
Notnull
用户名称
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
ProvideID
varchar
10
P
Notnull
供货商编号
入库纪录表(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
Datetime
入库日期
PlanDate
Datetime
8
Datetime
计划进货日期
StockState
Int
4
Notnull
入库状态
供货商表(Provide)用于存储供货商的信息。
表中各字段功能定义如下表所示。
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
ProvideID
varchar
10
P
Notnull
供货商编号
ProvideName
Varchar
50
Notnull
供货商名称
ProvideAddress
Varchar
250
Notnull
供货商地址
ProvidePhone
Varchar
25
Notnull
供货商电话
5.2数据载入
5.2.1基本表的查询测试如下
5.2.1视图的测试如下
5.2.3触发器的测试如图
图1.3为商品