完整word版超市商品库存管理系统1.docx

上传人:b****7 文档编号:15697466 上传时间:2023-07-06 格式:DOCX 页数:26 大小:181.37KB
下载 相关 举报
完整word版超市商品库存管理系统1.docx_第1页
第1页 / 共26页
完整word版超市商品库存管理系统1.docx_第2页
第2页 / 共26页
完整word版超市商品库存管理系统1.docx_第3页
第3页 / 共26页
完整word版超市商品库存管理系统1.docx_第4页
第4页 / 共26页
完整word版超市商品库存管理系统1.docx_第5页
第5页 / 共26页
完整word版超市商品库存管理系统1.docx_第6页
第6页 / 共26页
完整word版超市商品库存管理系统1.docx_第7页
第7页 / 共26页
完整word版超市商品库存管理系统1.docx_第8页
第8页 / 共26页
完整word版超市商品库存管理系统1.docx_第9页
第9页 / 共26页
完整word版超市商品库存管理系统1.docx_第10页
第10页 / 共26页
完整word版超市商品库存管理系统1.docx_第11页
第11页 / 共26页
完整word版超市商品库存管理系统1.docx_第12页
第12页 / 共26页
完整word版超市商品库存管理系统1.docx_第13页
第13页 / 共26页
完整word版超市商品库存管理系统1.docx_第14页
第14页 / 共26页
完整word版超市商品库存管理系统1.docx_第15页
第15页 / 共26页
完整word版超市商品库存管理系统1.docx_第16页
第16页 / 共26页
完整word版超市商品库存管理系统1.docx_第17页
第17页 / 共26页
完整word版超市商品库存管理系统1.docx_第18页
第18页 / 共26页
完整word版超市商品库存管理系统1.docx_第19页
第19页 / 共26页
完整word版超市商品库存管理系统1.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

完整word版超市商品库存管理系统1.docx

《完整word版超市商品库存管理系统1.docx》由会员分享,可在线阅读,更多相关《完整word版超市商品库存管理系统1.docx(26页珍藏版)》请在冰点文库上搜索。

完整word版超市商品库存管理系统1.docx

完整word版超市商品库存管理系统1

信息工程学院

《数据库原理与应用》课程设计论文

题目:

超市商品库存理系统数据库设计

 

学号:

09108087

专业班级:

计算机083

姓名:

毛维静

指导老师:

邹青

完成日期:

2010年1月22日

3.数据流图

(1)顶层数据流程图

图3顶层数据流图

(2)一层数据流程图

图5一层数据流图

(3)二层数据流程图分别如下(分供货、库存管理、和查询):

图6二层数据流图—供货

图7二层数据流图—库存管理

图8二层数据流图—查询、报损

4.数据字典

a)数据项:

系统涉及的数据项有37项

1.数据项

表1

数据项编号

数据项

数据项含义

数据结构

别名

A1-1

ID

出入库的唯一标识

Char(30)

票号

A1-2

商品名称

唯一标识商品

Char(30)

 

A1-3

规格

商品的属性

Char(20)

 

A1-4

助记码

备注

Char(50)

 

A1-5

默认价格

商品的单价

Char(20)

 

A1-6

供应商

提供商品的厂家

Char(30)

 

A1-7

管理员名

唯一的标识操作员的姓名

Char(12)

 

A1-8

管理员密码

管理员登陆系统的密码

Char(10)

 

A1-9

管理员级别

管理员的级别,级别越高,管理员功能越多

Smallint

 

A1-10

姓名

唯一标识管理员

Char(12)

管理员名

A1-11

供应商编号

唯一标识供应商

Char(30)

 

A1-12

供应商名

标识供应商

Char(30)

 

A1-15

电话

供应商电话

Char(12)

 

A1-16

地址

供应商地址

Char(30)

 

A1-17

网址

供应商厂家主页网站

Char(30)

 

A1-18

邮箱

供应商邮箱

Char(30)

 

A1-19

入库单号

入库的标识

Char(20)

 

A1-20

应付金额

应付给供应商的金额

Char(20)

 

A1-21

实付金额

实际给的金额

Char(20)

 

A1-22

入库时间

商品入库的时间

Datetime

 

A1-23

商品编号

唯一标识商品

Char(30)

 

A1-24

默认价格

一种商品的单个价格

Char(12)

 

A1-25

数量

入库商品的数量

Char(10)

 

A1-26

仓库名

储存商品的仓库的名称

Char(20)

 

A1-27

出库单编号

商品出库标识

Char(20)

 

A1-28

盘点人编号

商品出库盘点人的标识

Char(12)

管理员名

A1-29

盘点人

商品出库的经手人

Char(20)

 

A1-30

时间

盘点时间

Datetime

 

A1-31

等级

备注

Char(30)

 

A1-32

库存数量

商品在仓库中的库存数量

Char(20)

 

A1-33

库存上限

仓库最多可进的容量

Char(12)

 

A1-34

库存下限

仓库至少要求的容量

Char(12)

 

2.2概念设计

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能够更好的、更准确的用某一DBMS实现这些需求。

2.2.1概念设计阶段的目标

根据系统的具体情况,将需求分析的结果转化为概念模型,选择中层数据流图中作为设计分E-R图的出发点,再通过合并以及消除冲突和不必要的冗余,从而得到总的E-R图。

2.2.2E-R图的设计

图9供货分E—R图

图10商品入库分E—R图

图11商品出库分E—R图

合并各分E—R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E—R

图,再消除不必要冗余,得到如下总E—R图:

图12总E—R图

E-R图向关系模型的转换

实体型转换为关系模式。

实体的属性就是关系的属性,实体的码就是关系的码。

对于实体间的联系则有以下不同的情况:

一个m:

n联系转换为一个关系模式。

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

一个1:

n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:

1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

三个或三个以上实体间的一个多元联系可以转换为一个关系模式。

与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。

由于读者类别与读者、馆室与图书的联系方式是1:

n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的维护联系也是1:

n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:

m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:

n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:

表2管理员基本信息表

列名

数据类型

可否为空

说明

Ano

char(8)

管理员编号

Aname

char(12)

 否

管理员名

Password

char(12)

 否

密码

Level

smallint

 否

级别

表3商品信息表

列名

数据类型

可否为空

说明

Gno

Char(8)

商品编号

Pno

char(8)

供应商编号

Gname

Char(50)

商品名称

Spec

Char(20)

允许

规格

Shortname

Char(10)

允许

助记

Defalutprice

Char(8)

默认价格

Status

Char(8)

允许

等级

表4供应关系表

列名

数据类型

可否为空

说明

Gno

char(8)

商品编号

Sno

char(8)

供应商编号

QTY

int

允许

供应数量

表5供应商信息表

列名

数据类型

可否为空

说明

Pno

Char(8)

供应商编号

Pname

Char(30)

供应上姓名

Phone

Char(12)

允许

电话

Addr

Char(30)

允许

地址

Web

Char(30)

允许

网址

Email

Char(30)

允许

邮箱

表6仓库基本信息表

列名

数据类型

可否为空

说明

Gno

Char(8)

 否

商品编号

Ano

char(8)

 否

管理员编号

Sname

Char(20)

 允许

仓库名

Amount

int

 允许

库存量

Upperlimit

Char(12)

 否

库存上限

Lowerlimit

Char(12)

 否

库存下限

表7库存信息表

列名

数据类型

可否为空

说明

Gno

char(8)

商品编号

Ano

char(8)

管理员编号

Pno

char(8)

供应商编号

Numbers

int

允许

货物数量

Money

Char(20)

允许

付款金额

Intime

Datetime

允许

入库时间

表8子模式的建立

编号

用户子模式(View)

作用(共性:

方便各类商品的查询)

V-1

Food_info

便于查询食品类商品信息

V-2

Household_info

便于查询家居用品类商品信息

V-3

Dress_info

便于查询服饰类商品信息

V-4

Skincare_info

便于查询护肤品类商品信息

V_5

S_Storageinfo

便于查询各仓库商品库存量信息

2.模型优化

关系模式Provider、Storage、Administrator、Supply、Invtory等不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是商品关系模式(Goods表)仓库信息表(Storage表)中存在着一些不应该有的数据冗余,现将模型优化,其结果如下:

Goods(Gno,Pno,Gname,Spec,shortname,Defalutprice,Meno).

Storage(Gno,Ano,Sname,Upperlimit,Lowerlimit)

3.数据处理

描述超市商品库存管理系统的总体功能(如下图)。

总体功能分为四大功能模块:

(1)入库管理。

(2)库存管理。

(3)查询管理

系统功能模块图如下:

图12系统功能模块图

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

为了一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计,这也就是物理设计阶段的目标。

物理设计目标任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,不同的数据库产品所提供的物理环境、存取方法和存储结构有很大差别,能供设计人员使用的设计变量、参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能给出一般的设计内容和原则。

希望得到设计优化的物理数据库结构,使得数据库上运行的各种事务响应时间小、存储空间利用率高、事务吞吐率大。

为此,首先对要运行的事务进行详细分析,获得选择物理数据库设计所需要的参数。

其次,要充分了解所用的RDBMS的内部特征,特别是系统提供的存取方法和存储结构。

在物理设计阶段主要的任务包括:

(1)为关系模式选择存取方法

(2)设计关系、索引等数据库文件的物理结构

存取方法的选择有索引存取方法的选择、聚簇存取方法的选择以及HASH存取方法的选择。

确定数据库的存储结构主要是确定数据的存放位置与确定系统配置。

数据存储方面

由于基本表Goods,Provider的主码Gno,Pno经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,因此在两个属性上建立唯一性索引。

建立数据库

1)建立数据库

createdatabase超市库存管理系统;

2)建立表

共有4张基本表,包括供应商信息表Provider、商品信息表Goods、管理员信息表Administrator和仓库信息表Storage,详细数据定义见附录1

3)建立视图

为了方便管理员的查询共建立了4个视图,在系统中需要通过密码来进行验证,进入后进行不同权限的查询。

视图分别是Food_info,Household_info,Dress_info,Skincare_info,S_Storageinfo分别进行超市内食品、家居用品、服饰类、护肤用品等四类不同商品的查询及各仓库商品库存量信息查询。

详细定义见附录2

4)建立触发器

为了方便管理员对超市商品进行等级分类,建立触发器S3,根据商品价格的不同当插入新的商品时按照其价格,系统自动将其分为低廉价格,中等价格,较贵商品,珍品等四个等级,同时也方便管理员对商品的库存处理。

详细定义见附录3.

5)建立存储过程

每个业务都通过存储过程来实现,共有7个存储过程,详细定义见附录3.

数据入库

数据库三分在技术,七分在数据,所以基础数据非常重要。

数据可以检验数据库的正确性和性能,依此来进行数据库的调试工作,主要步骤如下:

1)向各个表中录入数据,同时要注意完整性约束和逻辑上要成立

2)向建立好的数据库中导入数据,先导入基本表,然后导入关系表,成功证明导入后的数据表可以打开,导入失败要检验是否符合完整性和逻辑要求

调试与运行阶段的目标

调试时候要逐步调试,先检查基本表和视图,然后检查存储过程和触发器以检验业务能否正常完成,出现问题做好记录,填到设计的错误表中。

1)检查基本表和视图,详细内容见附录4

2)检查存储过程,具体过程见附录5

收获与体会

在进行课程设计的一周里。

我从做课程设计的过程中感触颇多。

在这过程中使我对超市商品库存管理系统有了深入的了解。

在做课程设计的时候不断学习数据库,通过实践使我巩固了在这之前所学到理论知识。

也为我以后步入工作的岗位做了很好的铺垫。

本次课程设计是我们自己出题,充分锻炼了我们发现问题、分析问题、解决问题的能力。

其间老师还给我们补充了一些Word的排版知识,尽管开学的时候我们进行过这方面的培训,但是我们对这方面的知识还是太匮乏了。

我以后会抽出课余时间多加强这方面的训练。

以前只是记书本上关于数据库系统的相关功能,以及不同数据库系统功能之间的的对比,但这些大部分只是处在死记的基础上,没有切身实地的感触,这次实习有让我再次对SQLSERVER2000相关功能有了更深一层的理解,比如:

触发器和存储过程。

通过本次实习,我觉得最重要的是要和老师、同学之间多交流,这样会使自己的数据库系统更加的完善。

最后,要特别感谢这次实习的辅导老师,他们总是耐心的为同学们答疑解惑。

存在问题与建议

1)由于时间特别仓促,所以需求分析阶段做的不是很好,对于超市的库存管理业务还不是特别了解,这就为后面的设计带来了一定的困难。

2)由于实习时间短,所以该系统治只实现了部分功能,还有待扩展,我会继续对其进行完善,使其满足用户的更多需求。

参考文献

[1]萨师煊王珊,数据库系统概论(第四版),北京:

高教出版社,2006

[2]李书琴杨丽丽,数据库原理与应用实习指导书,信息工程学院信息系统系,2009

[3]郑人杰殷人昆陶永雷,实用软件工程(第二版),北京:

清华大学出版社,1997

[4]微软公司SQL-Server2000联机丛

附录1模式定义语句

供应商信息表

createtableProvider

(Pnochar(8)primarykey,

Pnamechar(30),

Phonechar(12),

Addrchar(30),

Webchar(30),

Emailchar(30)

商品信息表

createtableGoods

(Gnochar(8)primarykey,

Pnochar(8),

Gnamechar(50),

Specchar(20),

Defalutpricechar(8),

Statuschar(8)

供应关系信息表

createtableSupply

(Pnochar(8),

Gnochar(8),

QTYint

primarykey(Pno,Gno),

foreignkey(Gno)referencesGoods(Gno),

foreignkey(Pno)referencesProvider(Pno)

仓库管理员信息表

createtableAdministrator

(Anochar(8)primarykey,

Anamechar(12),

APasswordchar(12),

ALevelsmallint

仓库信息表

createtableStorage

(Gnochar(8),

Anochar(8),

Snamechar(20),

Amountint,

Upperlimitchar(12),

Lowerlimitchar(12)

primarykey(Gno,Ano),

foreignkey(Gno)referencesGoods(Gno),

foreignkey(Ano)referencesProvider(Pno)

库存信息表

createtableInventory

(Gnochar(8),

Anochar(8),

Pnochar(8),

Numbersint,

Moneychar(20),

IntimeDatetime

primarykey(Gno,Ano,Pno),

foreignkey(Gno)referencesGoods(Gno),

foreignkey(Ano)referencesAdministrator(Ano),

foreignkey(Pno)referencesProvider(Pno)

附录2子模式定义语句

createviewFood_info

as

selectGoods.Gno,Gname,Provider.Pno,Defalutprice,Storage.Sname

fromGoods,Provider,Storage

whereGoods.Gno>=101andGoods.Gno<=110andGoods.Pno=Provider.PnoandGoods.Gno=Storage.Gno

select*

fromFood_info

createviewHousehold_info

as

selectGoods.Gno,Gname,Provider.Pno,Defalutprice,Storage.Sname

fromGoods,Provider,Storage

whereGoods.Gno>=201andGoods.Gno<=209andGoods.Pno=Provider.PnoandGoods.Gno=Storage.Gno

select*

fromHousehold_info

createviewDress_info

as

selectGoods.Gno,Gname,Provider.Pno,Defalutprice,Storage.Sname

fromGoods,Provider,Storage

whereGoods.Gno>=301andGoods.Gno<=306andGoods.Pno=Provider.PnoandGoods.Gno=Storage.Gno

select*

fromDress_info

createviewSkincare_info

as

selectGoods.Gno,Gname,Provider.Pno,Defalutprice,Storage.Sname

fromGoods,Provider,Storage

whereGoods.Gno>=401andGoods.Gno<=405andGoods.Pno=Provider.Pnoand.Gno=Storage.Gno

select*

fromSkincare_info

createviewS_Storageinfo(Invtory.Sname,Amount)

as

selectInvtory.Sname,sum(Numbers)Amount

fromInvtory

groupbySname

selectAmount

fromS_Storageinfo

whereAno='A_1'

selectAmount

fromS_Storageinfo

whereAno='A_2

selectAmount

fromS_Storageinfo

whereAno='A_3'

selectAmount

fromS_Storageinfo

whereAno='A_4'

附录3触发器及存储过程语句

SETQUOTED_IDENTIFIERON

GO

SETANSI_NULLSON

GO

createtriggerS3onGoods

afterinsert,update

as

declare@Defalutpricefloat

select@Defalutprice=Defalutprice

frominserted

if@Defalutprice>=0and@Defalutprice<=10

updateGoods

setStatus='低廉价格'

fromGoods,inserted

whereGoods.Gno=inserted.Gno

if@Defalutprice>=11and@Defalutprice<=100

updateGoods

setStatus='中等价格'

fromGoods,inserted

whereGoods.Gno=inserted.Gno

if@Defalutprice>=101and@Defalutprice<=900

updateGoods

setStatus='较贵商品'

fromGoods,inserted

whereGoods.Gno=inserted.Gno

if@Defalutprice>=901

updateGoods

setStatus='珍品'

fromGoods,inserted

whereGoods.Gno=inserted.Gno

begin

print'商品等级'

rollback

end

GO

SETQUOTED_IDENTIFIEROFF

GO

SETANSI_NULLSON

GO

createtriggertri_fullStorage

onStorage

forInsert

as

declare@Upperlimitint

select@Upperlimit=Upperlimit

frominserted

if@Upperlimit<'2吨'and@Upperlimit<'0.5吨'

updateStorage

setAmount='未满'

whereroom.Rno=Inserted.Rno

if@Upperlimit<'2吨'

begin

print'该仓库满'

rollback

end

createprocedureproc_Gpc

@2jhchar(8)

as

selectdistinctGno,Gname,DefalutpricefromGoods

wherePno=@2jh

orderbyGno

createprocedureproc_Ps

@3jhchar(8)

as

selectdistinctSname,Upperlimit,Low

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2