仓库管理系统.docx
《仓库管理系统.docx》由会员分享,可在线阅读,更多相关《仓库管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
![仓库管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/7/3189875e-3eb7-4681-9fda-b048f8f84aae/3189875e-3eb7-4681-9fda-b048f8f84aae1.gif)
仓库管理系统
河南城建学院
《数据库原理》课程设计报告
课程名称:
《数据库原理》课程设计
设计题目:
仓库管理系统
指导教师:
苏靖枫陈秋红
班级:
0844121
学号:
084412120
学生姓名:
党荣凯
同组人员:
张世斌褚前程
成绩:
评语:
计算机科学与工程学院
2014年6月13日
目录
第1章概述2
1.1选题的背景与意义2
1.2相关技术分析3
第2章系统功能设计4
2.1系统总体结构设计图5
2.2系统功能模块5
第3章数据库设计6
3.1需求分析7
3.2数据库概念结构设计9
3.3数据库逻辑结构设计12
第4章数据库实施阶段15
4.1代码部分:
16
4.2安全性和完整性设计18
第5章数据库维护与查询19
5.1触发器:
20
5.2查询21
5.3视图23
第6章结束语24
参考文献26
第1章概述
1.1选题的背景与意义
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。
面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。
而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义
现在国内外对此类系统的开发与研究也是很有实用性的,基本上能满足各企业的自身特点,来进行仓库方面的管理,同时,改类系统又都在不断地深入与发展,来适用更多的企业,一般都能运用于各个企业的仓库管理,但是都没有针对大众的广泛应用,只能运用某个企业或单位,这一点还有待于今后的进一步开发与实践
1.2相关技术分析
MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
SQLServer2012不仅延续现有数据平台的强大能力,全面支持云技术与平台,并且能够快速构建相应的解决方案实现私有云与公有云之间数据的扩展与应用的迁移。
SQLServer2012提供了更多更全面的功能以满足不同人群对数据以及信息的需求,包括支持来自于不同网络环境的数据的交互,全面的自助分析等创新功能
《数据库原理》课程设计是实践性教学环节之一,是《数据库原理》课程的辅助教学课程。
通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力
通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。
熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。
集中安排1周进行课程设计,以小组为单位,一般3人为一组。
教师讲解数据库的设计方法以及布置题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告,概念结构设计阶段的E-R图,逻辑结构设计阶段的各关系模式,在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,最后生成创建数据库的脚本,提出物理设计的文档
第2章系统功能设计
2.1系统总体结构设计图
2.2系统功能模块
仓库表的查询和更新模块:
将完成仓库表基本信息的查询和更新操作,以便于方便管理
商品表的查询和更新模块:
将完成商品表基本信息的查询和更新操作,以便于方便管理
出库表的查询和更新模块:
将完成出库表基本信息的查询和更新操作,以便于方便管理
入库表的查询和更新模块:
将完成入库表基本信息的查询和更新操作,以便于方便管理
供应商表的查询和更新模块:
将完成供应商表基本信息的查询和更新操作,以便于方便管理
第3章数据库设计
3.1需求分析
3.1.1数据流图
1)本系统的顶层数据流图
2)入库细则:
3)出库细则
3.1.2数据项:
通过关系模型得出仓库表
列名
数据类型
可否为空
说明
仓库编号
char(6)
NOTNULL
仓库的编号(主键)
已用仓库
Int
NULL
已经利用的出库量
仓库上限
Int
NOTNULL
仓库容量最大值
仓库下限
Int
NotNULL
仓库容量最小值
通过关系模型得出商品表:
列名
数据类型
可否为空
说明
商品编号
char(6)
NOTNULL
商品的编(主键)
商品名称
char
(2)
NOTNULL
商品的名称
供应商名称
Char(20
NOTNULL
该商品的供应商
单价
Int
NOTNULL
商品的价格
通过关系模型的出的入库表:
列名
数据类型
可否为空
说明
商品编号
char(6)
NOTNULL
商品的编号(主键)
仓库编号
char(6)
NOTNULL
仓库的编号(主键)
供应商名称
Char(20)
NOTNULL
入库商品的供应商
通过关系模型得出的出库表:
列名
数据类型
可否为空
说明
商品编号
char(6)
NOTNULL
商品的编号(主键)
仓库编号
char(6)
NOTNULL
仓库的编号(主键)
通过关系模型得出的供应商表
列名
数据类型
可否为空
说明
供应商编号
char(6)
NOTNULL
供应商的编号(主键)
供应商名称
char(20)
NOTNULL
供应商的名称
3.1.3处理过程:
入库:
输入:
入库表的数据流
输出:
商品表,仓库表的数据流
处理:
通过入库清单中的入库数量的值,从而同步的在商品表和仓库表中的商品数量和已用仓库,确保一致性
出库:
输入:
出库表的数据流
输出:
商品表,仓库表的数据流
处理:
通过出库清单中的出库数量的值,同步在商品表和仓库表中相关的数据,保证一致性
3.2数据库概念结构设计
1.仓库实体E-R图
仓库实体信息:
包括的数据项有:
仓库编号,已用仓库,仓库上限,仓库下限,这些属性都阐明了仓库的实体
2.商品实体E-R图
商品实体信息:
包括的数据项有:
商品编号,商品名称,供应商名称,单价,这些属性都阐明了商品的实体
3.入库表实体E-R图
入库表实体信息:
包括的数据项有:
商品编号,仓库编号,供应商名,入库数量,经手人,入库时间,总额,这些属性都阐明了入库表的实体
4.出库表实体E-R图
出库表实体信息:
包括的数据项有:
商品编号,仓库号,出库数量,出库时间,领取人,这些属性都阐明了出库表的实体
5.供应商实体E-R图
供应商实体信息:
包括的数据项有:
供应商编号,供应商名称,这些属性都阐明了供应商表的实体
6.仓库管理总E-R图:
3.3数据库逻辑结构设计
1.关系模式
入库(商品编号(主码),仓库编号(主码),入库数量,入库时间,经手人,供应商名称,总额)
出库(商品编号(主码),仓库编号(主码),出库数量,出库时间,领取人)
借出(商品编号(主码),仓库编号(主码),商品名称,供应商名称,借出人,借出数量,借出时间)
归还(商品编号(主码),仓库编号(主码),归还人,归还数量,归还时间)
2.优化:
模式优化就是应用模式规范化技术对设计出来的数据库模式进行规范化处理,其目的是减少乃至消除关系模式中存在的各种异常,改善完整性,一致性和存储概率
1)入库关系模式优化:
入库关系模式的函数依赖集为:
F={商品编号→商品名称,商品编号→仓库编号,商品编号→入库时间,
商品编号→经手人,商品编号→入库数量}
入库关系模式规范化:
根据1NF定义和分析,入库关系模式的每个属性都是简单属性,所以
入库关系模式属于1NF。
根据2NF定义和分析,入库关系模式中不存在部分函数依赖,所以
入库关系模式属于2NF。
根据3NF定义和分析,入库关系模式中不存在传递函数依赖,所以
入库关系模式属于3NF。
2)出库关系模式优化:
出库关系模式的函数依赖集为:
F={商品编号→仓库编号,商品编号→出库时间,商品编号→领取人,
商品编号→出库数量}
出库关系模式规范化:
根据1NF定义和分析,出库关系模式的每个属性都是简单属性,所以出库关系模式属于1NF。
根据2NF定义和分析,出库关系模式中不存在部分函数依赖,所以出库
关系模式属于2NF。
根据3NF定义和分析,出库关系模式中不存在传递函数依赖,所以出库
关系模式属于3NF。
3)借出关系模式优化:
借出关系模式的函数依赖集为:
F={商品编号→仓库编号,商品编号→借出数量,商品编号→借出人,商品编号→借出时间}
借出关系模式规范化:
根据1NF定义和分析,借出关系模式的每个属性都是简单属性,所以选借出关系模式属于1NF
根据2NF定义和分析,借出关系模式中不存在部分函数依赖,所以借出
关系模式属于2NF
根据3NF定义和分析,借出关系模式中不存在传递函数依赖,所以借出
关系模式属于3NF。
4)归还关系模式优化:
归还关系模式的函数依赖集为:
F={商品编号→仓库编号,商品编号→归还数量,商品编号→归还人,商品编号→归还时间}
归还关系模式规范化:
根据1NF定义和分析,归还关系模式的每个属性都是简单属性,所以
归还关系模式属于1NF。
根据2NF定义和分析,归还关系模式中不存在部分函数依赖,所以归还
关系模式属于2NF。
根据3NF定义和分析,归还关系模式中不存在传递函数依赖,所以归还
关系模式属于3NF。
第4章数据库实施阶段
4.1代码部分:
4.1.1创建数据库:
4.1.2创建仓库表:
插入数据:
4.1.3创建商品表:
4.1.4创建入库表:
4.1.5创建出库表
4.1.6创建供应商表:
4.2安全性和完整性设计
4.2.1索引
在商品表里建立按商品表检索的索引:
Createuniqueindex商品编号检索on商品表(商品编号)
在仓库表里建立按仓库编号检索的索引:
Createuniqueindex仓库表编号检索on商品表(商品编号);
4.2.2约束
在仓库表增加一个已用仓库的约束
Altertable仓库表
addconstraintc3check(已用仓库between0and1000);
4.2.3用户和授权
创建用户:
Createroleu1
给用户u1授予查询,更新,删除仓库信息表的权利
Grantselect,insert,update,delete
On出库表
Tou1
收回用户对仓库信息表的删除的权利
Revokedelete
On出库表
Fromu1
第5章数据库维护与查询
5.1触发器:
5.1.1设置库存的上下限警戒:
5.1.2建立入库的触发器,确保仓库数据同步
5.1.3建立出库的触发器,确保仓库数据同步
5.1.4建立借出和归还的触发器,确保仓库数据同步
5.2查询
5.2.1查询000001号出库的情况
5.2.2按照时间查询,查询在2014-06-07日入库的
5.2.3查询在2014-06-08号出库的
5.2.4盘点仓库查询:
5.3视图
5.3.1建立111111号商品入库出库的信息视图
5.3.2建立555555号商品的借出情况视图
第6章结束语
通过这次SQL课程设计,我比以前的课程设计都要有很大的进步,因为这次我是完全自己编写的,并不是像以前在网上找一个代码,然后自己改改什么的,并且通过这将近1周的课程设计,我对SQl有了很大的认识,不管以后是工作,还是给别人做系统之类的应该要考虑的很全面才行,我在前几天的时候写的差不多了,后来和同组的队友讨论发现缺少了很多东西,然后又从新做的,虽然比起来正规的系统来说差别很大,在网上看到的别人的都是那种可视化的系统,我在VS软件上弄半天也没有弄出个什么来,就没有继续做,毕竟我们没有学过,对于我来说太难了,还有就是时间的原因,不过在接下来的暑假,我一定会好好的研究研究。
在数据库中代码并不是最总要的,最重要的是分析和设计整体的结构,看看人家客户需要什么,你做的系统能不能满足人家的需求,除此,我对课本上的一些理论的定义通过自己动手实践有了新的认识,动手实践最重要,对于仓库管理系统,前期设计和分析,画出整体的大概设计图E-R图,和各种的完整性,以及触发器的运用,代码的编写等等,同是也很感谢队友的帮助……总之,获益匪浅
在未来的计算机领域,知识是很重要的,多掌握一门技术就多一个门路,我在一些SQLQQ群里也经常看到一些公司招收SQL开发人员,都是有经验的优先,这次课程设计给我的经验是这半学期最多的,不但SQL别的很多东西都值得我们去学习,我两年前选择了软件工程,我一定会学好每一门功课,为了将来的考研或工作打好基础,也争取做一个新世纪的阳光大学生,将来在IT界做出自己的贡献,也为了美好的未来
参考文献
数据库系统概论(第四版)王珊萨师煊
XX文库
周志逵《数据库理论与新技术》北京理工大学出版社,2001