数据库超市商品库存管理系统课程设计报告.docx

上传人:b****3 文档编号:27258598 上传时间:2023-06-28 格式:DOCX 页数:20 大小:311.90KB
下载 相关 举报
数据库超市商品库存管理系统课程设计报告.docx_第1页
第1页 / 共20页
数据库超市商品库存管理系统课程设计报告.docx_第2页
第2页 / 共20页
数据库超市商品库存管理系统课程设计报告.docx_第3页
第3页 / 共20页
数据库超市商品库存管理系统课程设计报告.docx_第4页
第4页 / 共20页
数据库超市商品库存管理系统课程设计报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据库超市商品库存管理系统课程设计报告.docx

《数据库超市商品库存管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库超市商品库存管理系统课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。

数据库超市商品库存管理系统课程设计报告.docx

数据库超市商品库存管理系统课程设计报告

课程设计报告

 

课程设计题目:

超市商品库存管理系统

 

学号:

姓名:

专业:

软件工程

班级:

指导教师:

2012年12月12日

课程设计分工

1)根据题目写出需求分析(功能描述)

2)画出全局E-R图

3)将E-R图转换为关系模式

4)在SQLServer中创建数据库及数据表,至少4个数据表,定义约束

5)输入数据,至少创建2个视图,数据涉及多个表

6)至少创建3个存储过程,实现3种表的数据操作,如查询、添加、删除或更新

7)创建2个登录、数据库用户,并分配不同的权限

8)为数据库做完全备份

9)要为修改或删除创建一个触发器

每人独立完成一个题目,不能雷同

成果:

报告,程序,数据库文件,备份文件

报告中要有详细的需求分析,课程设计任务、内容,实现代码,结论,心得。

1.课程设计的目的和意义

《数据库原理及应用课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。

通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。

2.设计要求:

通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。

熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。

集中安排1周进行课程设计,以小组为单位,一般4~5人为一组。

教师讲解数据库的设计方法以及布置题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告,建议用PowerDesigner建立概念模型、物理模型,在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,最后生成创建数据库的脚本,提出物理设计的文档。

要求如下:

1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。

2、既要虚心接受老师的指导,又要充分发挥主观能动性。

结合课题,独立思考,努力钻研,勤于实践,勇于创新。

3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。

4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。

5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。

6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。

3.课程设计选题的原则

课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过本实践性教学环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。

具体选题见附录。

4.课程设计的一般步骤

课程设计大体分五个阶段:

1、选题与搜集资料:

根据分组,选择课题,在小组内进行分工,进行系统调查,搜集资料。

2、分析与设计:

根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。

3、程序设计:

运用掌握的语言,编写程序,实现所设计的模块功能。

4、调试与测试:

自行调试程序,成员交叉测试程序,并记录测试情况。

5、验收与评分:

指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。

5数据库需求分析

5.1数据流程图

商品

5.2数据字典

数据项

数据项

数据项含义

数据结构

Pno

供应商编号

唯一标识供应商

Char(8)

Pname

名称

供应商的名称

Char(30)

Phone

电话

供应商的电话

Char(12)

Addr

地址

供应商所在地

Char(30)

Gno

商品编号

唯一标识商品

Char(8)

Gname

商品名称

商品的名称

Char(50)

Gpice

规格

商品的属性

Char(20)

QTY

数量

供应商提供商品的数量

Int

Sname

仓库名称

唯一标识仓库

Char(20)

Spac

仓库地址

仓库所在的地点

Char(20)

AD

账号

管理仓库员的账号

Char(10)

Numder

存储货物数量

商品存储的数量

int

6概念设计

6.1E-R图设计

地址

 

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

供应商(供应商号,电话,地址,供应商品,)

供应关系(商品名,供应商名,供应数量)

商品(商品号,商品名,商品规格,默认价格)

储存关系(商品号,商品名,供应商号,数量)

仓库(仓库名,仓库地点,管理员)

6.3基本信息表

1供应商基本信息表

列名

数据类型

是否为空

说明

Pno

Char(8)

不允许

供应商编号

Pname

Char(30)

允许

供应商名称

Phone

Char(12)

允许

供应商电话

Addr

Char(30)

允许

供应商地址

2商品基本信息表

列名

数据类型

是否为空

说明

Gno

Char(8)

不允许

商品编号

Gname

Char(50)

允许

商品名称

Defau

Char(20)

允许

商品规格

Gpice

int

允许

默认价格

3仓库基本信息表

列名

数据类型

是否为空

说明

Sname

Char(20)

不允许

仓库名称

Space

Char(20)

允许

仓库地址

AD

Char(10)

允许

仓库管理员

4供应关系基本信息表

列名

数据类型

是否为空

说明

Pno

Char(8)

不允许

供应商编号

Gno

Char(8)

不允许

商品编号

QTY

Int

允许

供应数量

5存储关系基本信息表

列名

数据类型

是否为空

说明

Pno

Char(8)

不允许

供应商编号

Gno

Char(20)

不允许

商品编号

Sname

Char(80

不允许

仓库名称

Numbers

Int

允许

存储数量

7功能描述

1,记录入库商品的名称厂家等信息。

2,查询商品的种类,名称等信息

3,记录商品的储存地点以及库存储存的商品

4,查询商品的库存地址厂家等信息

5,查询商品信息。

6,查询供应商信息。

7,添加新商品

8,添加新供应商。

9,添加新库存地址

10,删除商品同时删除它的厂家及库存地址等,。

11,删除供应商同时删除它提供的商品及相关信息。

12,建立账号和访问权限。

8模式定义语句

--------创建和插入表-------

createtableProvider

(Pnochar(8)primarykey,

Pnamechar(30),

Phonechar(12),

Addrchar(30),

insertintoProvider(Pno,Pname,Phone,Addr)

values('A1','中华开心食品集团','','南昌')

insertintoProvider(Pno,Pname,Phone,Addr)

values('A2','盼盼食品有限公司','','福建')

insertintoProvider(Pno,Pname,Phone,Addr)

values('A3','恒德利服装有限公司','3','深圳')

insertintoProvider(Pno,Pname,Phone,Addr)

values('A4','天津喜临门家具公司','','天津')

select*fromProvider

createtableGoods

(Gnochar(8)primarykey,

Gnamechar(50),

Defauchar(20),

Gpiceint,

insertintoGoods(Gno,Gname,Defau,Gpice)

values('101','爽一爽冰红茶','瓶',5)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('102','双贝壳面包','袋',10)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('103','雅莱姿正装','套',300)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('104','好梦来丝被','箱',100)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('105','三鲜拉面','袋',2)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('106','正德皮靴','双',300)

insertintoGoods(Gno,Gname,Defau,Gpice)

values('107','红门床柜','个',400)

select*fromGoods

createtableSupply

(Pnochar(8),

Gnochar(8),

QTYint

primarykey(Pno,Gno),

foreignkey(Gno)referencesGoods(Gno),

foreignkey(Pno)referencesProvider(Pno)

insertintoSupply(Pno,Gno,QTY)

values('A1','101',370)

insertintoSupply(Pno,Gno,QTY)

values('A2','102',150)

insertintoSupply(Pno,Gno,QTY)

values('A3','103',40)

insertintoSupply(Pno,Gno,QTY)

values('A1','105',120)

insertintoSupply(Pno,Gno,QTY)

values('A3','106',20)

insertintoSupply(Pno,Gno,QTY)

values('A4','107',10)

insertintoSupply(Pno,Gno,QTY)

values('A4','104',10)

select*fromSupply

createtableStorage

Snamechar(20)primarykey,

Spacchar(20),

ADchar(10),

insertintoStorage(Sname,Spac,AD)

values('东仓库','东郊巷22号','aa')

insertintoStorage(Sname,Spac,AD)

values('西仓库','市民路','bb')

select*fromStorage

createtableInventory

(Gnochar(8),

Snamechar(20),

Pnochar(8),

Numbersint,

primarykey(Gno,Sname,Pno),

foreignkey(Gno)referencesGoods(Gno),

foreignkey(Sname)referencesStorage(Sname),

foreignkey(Pno)referencesProvider(Pno)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('101','A1','东仓库',110)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('102','A2','东仓库',120)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('103','A3','西仓库',130)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('104','A4','西仓库',140)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('105','A1','西仓库',50)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('106','A3','西仓库',150)

insertintoInventory(Gno,Pno,Sname,Numbers)

values('107','A4','西仓库',50)

select*fromInventory

-----------创建视图-------

createviewA_info

as

selectGoods.Gno,Goods.Gname,Provider.Pname,Defau,Gpice,Supply.QTY

fromProvider,Goods,Supply

whereSupply.Pno=Provider.PnoandSupply.Gno=Goods.Gno

select*fromA_info

createviewB_info

as

selectGoods.Gname,Inventory.Numbers,Supply.QTY,Storage.Sname

fromGoods,Supply,Inventory,Storage

whereGoods.Gno=Supply.GnoandSupply.Gno=Inventory.GnoandStorage.Sname=Inventory.Sname

select*fromB_info

--------------存储过程-------

createprocedureGc--查询

@Gnochar(8)

as

select*

fromGoods

whereGno=@Gno

createprocedurePc

@Pnochar(8)

as

select*

fromProvider

wherePno=@Pno

createprocedureSec

@ADchar(10)

as

select*

fromStorage

whereAD=@AD

execGc@Gno='104'

execPc@Pno='A2'

execSec@AD='aa'

createprocedurePin---添加数据

@Pnochar(8),

@Pnamechar(30),

@Phonechar(12),

@Addrchar(30))

as

insertintoProvidervalues(@Pno,@Pname,@Phone,@Addr)

createprocedureGin

(@Gnochar(8),

@Gnamechar(50),

@Defauchar(20),

@Gpiceint)

as

insertintoGoodsvalues(@Gno,@Gname,@Defau,@Gpice)

createprocedureSi

(@Snamechar(20),

@Specchar(20),

@ADchar(10))

as

insertintoStoragevalues(@Sname,@Spec,@AD)

execpin@Pno='A5',@Pname='东方红烟业',@Phone='',@Addr='广东'

execSi@Sname='南仓库',@Spec='福明路',@AD='cc'

execGin@Gno='108',@Gname='阿斯玛',@defau='包',@Gpice=10

select*fromProvider

select*fromGoods

select*fromStorage

createprocedurePd---删除

@Pnochar(8)

as

delete

fromProvider

wherePno=@Pno

alterprocedureGd

@Gnochar(8)

as

delete

fromGoods

whereGno=@Gno

createprocedureSd

@Snamechar(20)

as

delete

fromStorage

whereSname=@Sname

execPd@Pno='A5'

execGd@Gno='105'

execSd@Sname='南仓库'

select*fromProvider

select*fromsupply

select*fromStorage

-------触发器

createtriggerP_delete-----删除供应商同时删除它提供的商品及相关信息。

onProvider

fordelete

as

delete

fromSupply

wherePno=(selectPnofromdeleted)

delete

fromInventory

wherePno=(selectPnofromdeleted)

execsp_depends'p_delete'

createtriggerG_delete-------删除商品同时删除它的厂家及库存地址等,。

onGoods

fordelete

as

delete

fromsupply

whereGno=(selectGnofromdeleted)

delete

fromInventory

whereGno=(selectGnofromdeleted)

execsp_depends'G_delete'

droptriggerS_delete

select*fromProvider

select*fromGoods

select*fromSupply

select*fromInventory

execPd@Pno='A2'

execGd@Gno='101'

---------------登陆账号

execsp_addlogin'aa','111','发帖人体',NULL

execsp_adduser'aa','a1'

grantselect,update,insertonProvidertoa1

grantselect,update,insertonGoodstoa1

execsp_addlogin'bb','222','发帖人体',NULL

execsp_adduser'bb','b1'

grantselect,update,insert,deleteonProvidertob1

grantselect,update,insert,deleteonGoodstob1

---------------

9.数据操作验证

9.1基本信息表查询

9.11供应商表基本信息查询

9.12商品表基本信息查询

 

9.13仓库表基本信息查询

9.14供应关系表基本信息查询

9.15存储关系表基本信息表查询

 

9.2视图

9.21视图A_info

9.22视图B_info

9.3存储过程

9.31查询

9.32添加

 

9.33删除

9.4触发器

 

10.收获与体会

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

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

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

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

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

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

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

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

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

触发器和存储过程。

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

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

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1