数据库课程设计仓库管理子系统(共26页).doc
精选优质文档-倾情为你奉上江西理工大学应用科学学院信息工程系课程设计说明书 课程名称: 数据库原理与技术 课题名称: 仓库管理子系统 参与人员姓名: 李 欣 班级、学号 电信101 20号参与人员姓名: 叶胜鹏 班级、学号 电信101 25号参与人员姓名: 符吉如 班级、学号 电信101 23号参与人员姓名: 戴 伟 班级、学号 电信101 31号完 成 时 间: 2012年7月6号 指 导 老 师: 邓小鸿 指导老师评语:得分: 专心-专注-专业目 录1 系统概述1.1 现状分析 仓库在物流系统中起着至关重要的作用,高效合理的仓储可以帮助企业加快物资流动的速度,降低成本,保障生产的顺利进行,并可实现对资源有效控制和管理。仓库管理子系统是管理和控制仓库所有入出库动态,统计分析库存数据,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,从而保证企业生产中畅通的物流。同时最大限度地降低库存占用,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益。1.2 系统目标开发仓库管理子系统所采用开发工具为Microsoft SQL Server,此系统的运行环境为Windows 98,Windows 2000,Windows XP,Windows 7等。开发此数据库的目标有以下几点: (1)用计算机最大限度地支持仓储管理信息的处理,以充分发挥人机协同的功效,促进企业做好仓储工作。 (2)做好仓库入库、出库等基本信息的收集,保存和加工工作,为其它系统的相关处理提供准确而又有力的库存数据支持。 (3)对商品存储位置,通过计算机规划,做好定位管理。 (4)库存管理可以加快商品流通,缩短商品周转周期,降低库存占用资金,加速资金流转。 (5)利用库存管理,促使仓库做好库存商品清点工作,使系统反映的帐面库存数据与实物库存量能基本保持一致。2 系统数据库分析2.1数据库需求分析本系统是一套简单实用的仓库信息管理工具,该系统针对方便管理仓库信息的特点,根据各公司的仓库有关信息,查找信息设计开发的。其模块功能完善,界面美观友好,操作简便快捷,为公司的仓库信息档案自动化管理提供了完善的解决方案。主要功能包括:仓库管理人员基本信息的查询、更新;仓库信息的查询、更新;货物基本信息的查询、更新;出库基本信息的查询、更新;入库基本信息的查询、更新。 仓库管理系统功能结构图2.1所示:仓库管理子系统仓库信息管理货物信息管理入库信息管理出库信息管理仓管信息管理查询仓库信息更新出库信息查询出库信息更新货物信息查询货物信息更新仓管信息查询仓管信息更新仓库信息查询入库信息更新入库信息图 2.1 仓库管理系统功能结构图2.2 数据库概念结构分析 在仓库管理子系统中,一个仓库有一个管理员,则仓库与管理员之间具有一对一的关系;仓库对货物有两种出入形式,多种货物可以存入多个仓库,则仓库与货物入库之间多对多的关系;多种货物可以由多个仓库出货,则仓库与货物出库之间多对多的关系。仓管实体属性E-R分图如图 2.2 所示:仓管仓管编号电话号码姓名性别住址年龄图 2.2 仓管实体属性E-R分图仓库实体属性E-R分图如图 2.3 所示:仓库仓库编号仓库库存地点仓库名称图 2.3 仓库实体属性E-R分图货物实体属性E-R分图如图 2.4 所示:货物编号生产厂家生产日期名称单价货物图 2.4 货物实体属性E-R分图出库实体属性E-R分图如图 2.5 所示:出库出库编号仓库编号货物编号仓管编号数量状态出库时间图 2.5 出库实体属性E-R分图入库实体属性E-R分图如图 2.6 所示:入库编号仓库编号数量状态入库货物编号仓管编号入库时间图 2.6 入库实体属性E-R分图仓库管理子系统E-R图如图 2.7 所示:仓管货物仓库管理出库入库入库量入库量1NNMM1图 2.7 仓库管理子系统E-R图2.3 数据库逻辑结构分析根据图2.7仓库管理子系统E-R图,转换为关系模式为: Depot(Dno,Sno,Dname,Dreserve,Daddress) Storekeeper(Sno,Sname,Sage,Ssex,Stel,Saddress) Ware(Wno,Wname,Wprice,Wdate,Wmanufacturer) Stocking(Ssno,Sno,Wno,Dno,Sdate,Snumber,State) Outbound(Ono,Dno,Wno,Sno,Odate,Onumber,Otate)2.4 数据字典(1)表名:Depot(Dno,Sno,Dname,Dreserve,Daddress),其含义:仓库基本信息。其结构如表2.1所示:表2.1仓库信息表 Depot字段名字段类型是否为空说明备注DnoChar(10)NOT NULL仓库编号主键SnoChar(10)NOT NULL仓管编号主键(外键)DnameVARCHAR(20)NULL仓库名称DreservefloatNULL仓库库存DaddressChar(20)NULL仓库地址 (2)表名:Storekeeper(Sno,Sname,Sage,Ssex,Stel,Saddress),其含义:仓库管理员的基本信息。其结构如表2.2所示:表2.2管理员信息表 Storekeeper字段名字段类型是否为空说明备注SnoChar(10)NOT NULL仓管编号主键SnameVARCHAR(20)NULL仓管名字SagesmallintNULL年龄SsexChar(2)NULL性别StelChar(11)NULL电话号码SaddressChar(20)NULL住址 (3)表名:Ware(Wno,Wname,Wprice,Wdate,Wmanufacturer),其含义:货物的基本信息。其结构如表2.3所示:表2.3货物基本信息表 Ware字段名字段类型是否为空说明备注WnoChar(10)NOT NULL货物编号主键WnameVARCHAR(20)NULL货物名称WprincemoneyNULL货物单价WdatedatetimeNULL生产日期WmanufacturerChar(20)NULL生产厂家 (4)表明:Stocking(Ssno,Sno,Wno,Dno,Sdate,Snumber,State),其含义:货物入库的时间,数量,货物状态,等等一些基本信息。其结构如表2.4所示:表2.4货物入库基本信息表 Stocking字段名字段类型是否为空说明备注SsnoChar(10)NOT NULL入库编号主键DnoChar(10)NOT NULL仓库编号主键(外键)WnoChar(10)NOT NULL货物编号主键(外键)SnoChar(10)NOT NULL仓管编号主键(外键)SnumberfloatNULL入库数量Statenvarchar(50)NULL货物状态SdatedatetimeNULL入库日期 (5)表明:Outbound(Ono,Dno,Wno,Sno,Odate,Onumber,Otate),其含义:货物出库的时间,数量,货物状态,等等一些基本信息。其结构如表2.5所示:表2.5货物出库基本信息表 Outbound字段名字段类型是否为空说明备注OnoChar(10)NOT NULL出库编号主键DnoChar(10)NOT NULL仓库编号主键(外键)WnoChar(10)NOT NULL货物编号主键(外键)SnoChar(10)NOT NULL仓管编号主键(外键)OdatedatetimeNULL出库日期OnumberfloatNULL出库数量Otatenvarchar(50)NULL货物状态3 数据库操作部分3.1 数据库创建用SQL语句创建数据表Storekeeper并建立相应属性的约束:Create table Storekeeper (Sno char(10) primary key, Sname VARCHAR(20), Sage smallint, Ssex char(2) check(Ssex='男' or Ssex='女'), Stel char(11), Sadress char(20) );关系图如图3.1所示:图3.1仓库管理子系统关系图测试数据如表3.13.5所示:表3.1仓管基本信息数据表表3.2仓库基本信息数据表表3.3货物基本信息数据表表3.4入库基本信息数据表表3.5出库基本信息数据表3.2 数据库的更新操作 1、在Storekeeper表中插入一条仓管信息(','白雪','20','男','','北京市') insert into storekeeper values ('','白雪','20','男','','北京市')运行结果为:2、将管理员的性别改为"女" update storekeeper set Ssex='女' where Sno=运行结果为:3、 删除姓名为"白雪"的管理员的记录 deletefrom storekeeperwhere Sname='白雪'运行结果为:3.3 数据库的查询操作1、查询地址在“江西省”的仓管所有信息 select * from storekeeperwhere Sadress='江西省'运行结果为:2、 查询入库编号为"RK-001"的仓管的编号,姓名以及电话号码 select Sno,Sname,Stel from storekeeper where Sno in (select Sno from stocking where Ssno='RK-001')运行结果为:3.4 数据库的备份和还原操作 (1)备份数据库 选择”lixin_02”数据,右键选择“所有任务”,然后选择“备份数据库”,弹出对话框如图3.2所示,点击“添加”,弹出对话框如图3.3所示,选择要保存备份文件的路径和指定文件名,点击“确定”完成备份工作。图3.2备份数据库图3.3选择备份路径 (2)还原数据库 首先确保“数据库”下有“lixin_02”数据库,如果没有建立一个以“lixin_02”命名的数据库,然后选择“lixin_02”,右键选择“所有任务”,然后点击“还原数据库”,弹出对话框如图3.4所示,选择“从设备”还原,点击“选择设备”,谈车对话框如图3.5所示,点击“添加”,出现对话框如图3.6所示,选择数据库的备份文件,点击“确定”完成还原数据库的工作。图3.4 还原数据库图3.5选择还原设备图3.6 选择还原路径4 系统规范化设计4.1 数据库表的规范化设计 此仓库管理子系统属于第三范式。4.2 数据库的完整性设计 对Depot表中Dreserve进行约束,如图4.1所示:图4.1Dreserve约束 对storekeeper中Sage,Ssex进行约束,如图4.2和4.3所示:图4.2Sage约束图4.3Ssex约束4.3 数据库的维护和安全性设计设计user1对表storekeeper的查询访问权限,防止非法的数据库操作。在企业管理器中控制用户访问权限(1)展开"lixin_02"数据库,选择“用户”,右键选择“新建数据库用户”,弹出如图4.4所示的对话框。图4.4新建用户 (2)在登录名中选择“新建”,在“名称”中填写“user1”,身份验证选“SQL Server身份验证”,密码为“LFYD”,数据库选择“lixin_02”,如图4.5所示,点击“确定”,重新输入一遍密码,如图4.6所示,点击“确定”。图4.5新建登录图4.6确认密码 2、在查询分析器中控制用户访问权限 把查询storekeeper表的权限授给用户user1grant select on storekeeperto user1验证结果如图4.7所示:图4.7权限授权5 总结5.1 收获 通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,学以致用,自我创新,从中在学到用,从用又到学,不断修改,系统更新。5.2 不足和改进在此次课程设计中,我们存在一些不足,其中我们对现实生活中的仓库管理子系统不是很了解,以至于在分析系统功能结构图时,遇到较多问题;其次,我们对仓库的入库和出库以及管理的了解不是很深,导致我们在设计过程中常遇到问题,如在画E-R图时,常会混淆实体与实体之间的联系类型;另外,在团队合作方面,小组成员讨论问题时,有时思想不一致,未能及时有效的解决该问题。对于这些不足,我觉得要在以下几个方面加以注意:首先,在学习专业课的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。其次,在学习过程中要经常与同学、老师进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。参考文献1 刘智斌,刘玉萍,杨柳编著.数据库原理(第二版).重庆大学出版社,20062 萨师煊,王珊编著.数据库系统概论(第四版).高等教育出版社,20063 钱雪忠,陶向东编著.数据库原理及应用实验指导.北京邮电大学出版社,20064 龚小勇编著.关系数据库与SQL Server 2000.机械工业出版社,2004致 谢本系统在设计和实现的过程中,得到邓小鸿老师的大力支持和帮助。在系统实现阶段,邓老师从需求分析一直到写论文,对我们严格要求,精心指导使我学到很多东西,并指出本系统的不足之处,提出我继续研究的方向。在此非常感谢老师的精心指导。