1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。课程设计( 论文) 课程名称 数据库课程设计 题目名称_ 仓库管理系统_学生学院 计算机学院 专业班级 05级网络工程3班 学 号_ _学生姓名_麦文钜_指导教师 何晓桃 年 1 月 广东工业大学课程设计任务书题目名称仓库管理系统学生学院计算机学院专业班级网络开发0503班姓 名麦文钜学 号一、 课程设计的内容1、 学习与实践数据库应用程序开发流程; 2、 学习使用某一种数据库服务, 学会数据库应用程序编程, 安装配置系统开发环境; 3、 设计和实现仓库管理系统; 4、 撰写课程设计报告。 二、 课程设计的要求与数据系统应该实现以下功能
2、: (1) 进、 出库管理。对进、 出库信息进行记录。(2) 查询功能。仓库管理对查询要求高, 经过主菜单记录当前操作用户的用户编号, 保证了对进、 出库信息录入负责人的确认。(3) 部门资料管理与库存报表生成。资料管理包括了人员信息管理, 财政支出信息管理, 以及各项业务单据的资料管理。报表主要分类为: 日报表, 月报表, 销售报表, 入库报表等等。(4) 由于计算机能存贮大量的数据, 而且数据只要一次存入, 便可多次重复使用, 因此管理数据达到完整, 统一, 原始记录能保证及时, 准确。(5) 许多重复性的工作, 都可由计算机去执行, 从而使管理人员从事务性工作解脱出来, 真正变为从事一些
3、信息的分析, 判断, 决策等创造性的工作。数据自己自行编造测试。论文要求结构严谨、 格式规范, 内容正确、 文字通顺。三、 课程设计应完成的工作 该系统主要分为三大功能: 管理员功能、 信息安全功能、 一般用户功能、 报表生成。(1) 管理员功能: 产品入库登记、 确认入库信息、 删除库内信息、 借出信息登记、 产品分类管理、 添加人员、 删除人员、 查询库内信息。(2) 信息安全功能: 人员权限区分、 事件记录、 数据警告、 数据备份、 数据恢复; (3) 一般用户功能: 查询库内信息、 查询出库信息、 查询入库信息、 修改本用户密码; (4) 报表生成: 库存信息报表生成。四、 课程设计进
4、程安排序号设计( 论文) 各阶段名称地点起止日期1选定本次课程设计及报告的研究课题宿舍 .12.282对研究课题进行调查并做出详细的需求分析宿舍 .12.293收集资料和参考文献图书馆 .12.294认真阅读和学习资料、 文献并做出初步构思宿舍 .12.30- .12.315制定出整个系统的设计构想、 设计思路和方法宿舍 .12.31- .1.16进行系统的设计、 开发和编写程序代码宿舍 .1.1- .1.37对系统进行测试和系统调试宿舍 .1.48完成整个系统的开发并进行系统维护宿舍 .1.49撰写课程设计报告宿舍 .1.4- .1.510最终完成系统修改、 论文撰写和表格填写宿舍 .1.5
5、11上交课程设计报告、 系统答辩教学楼 .1.7- .1.9五、 应收集的资料及主要参考文献1 MySQL 5.1参考手册 2 D 3 数据库系统概论( 第四版) 王珊 萨师煊 高等教育出版社 .54 软件工程( 第二版) 李代平等编著 清华大学出版社 .15 MySQL开发者SQL权威指南 ( 荷) Rick F.van der Lans 著 许杰星 李强等译 机械工业出版社 .16 学习MySQL( 影印版) Seyed M.M.Saied Tabagbogbi & Hugb E.Williams 著 南京: 东南大学出版社 .67 C+Builder程序员成长攻略 蒙祖强 龚涛等编著 北
6、京: 中国水利水电出版社 .1发出任务书日期: 12月29日 指导教师签名: 何晓桃计划完成日期: 1月5日 基层教学单位责任人签章: 主管院长签章: 目录一、 相关技术介绍71.1 MySQL71.2 Borland C+Builder集成开发环境81.3 MyDAC组件库8二、 需求分析102.1 功能需求及用户需求102.1.1 功能需求102.1.2 用户需求102.2 系统流图112.3 数据描述112.3.1 数据字典112.3.1.1 基本数据项及数据结构112.3.1.2 数据流条目122.3.1.3 数据存储条目122.3.1.4 加工条目132.3.2 数据流图142.4
7、安全性和完整性要求152.4.1 安全性要求152.4.2 完整性要求16三、 概念结构设计16四、 逻辑结构设计184.1 关系模型设计184.2 用户子模式设计224.3 系统结构图264.4 安全性和完整性设计264.4.1 安全性设计264.4.2 完整性设计27五、 数据库物理设计285.1 建立索引285.2 确定数据的存放位置285.3 确定系统配置295.4 模块设计30六、 数据库实施306.1 创立数据库及数据库对象SQL脚本306.2 数据库备份和恢复方案446.2.1 静态备份446.2.2 动态备份446.2.3 恢复备份446.3 界面设计456.4 关键代码48七
8、、 系统测试方案507.1 登录测试507.2 新建用户测试507.3 更改用户测试507.4 删除用户测试507.5 数据录入测试517.6 查询测试51八、 系统主要功能和使用说明51九、 系统安装说明52十、 心得体会54参考文献: 54一、 相关技术介绍1.1 MySQLMySQL是最受欢迎的开源SQL数据库管理系统, 它由MySQL AB开发、 发布和支持。MySQL是一个快速的、 多线程、 多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、 重负载生产系统的使用, 也能够将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL的特性: 1) 使用C和C
9、+编写, 用众多不同的编译器进行了测试 , 能够工作在众多不同的平台上。2) 使用GNU Automake、 Autoconf和Libtool进行移植。3) 提供了用于C、 C+、 Eiffel、 Java、 Perl、 PHP、 Python、 Ruby和Tcl的API。4) 采用核心线程的完全多线程 如果有多个CPU, 它能方便地使用这些CPU。5) 提供了事务性和非事务性存储引擎。6) 使用了极快的”B树”磁盘表( MyISAM) 和索引压缩。7) 添加另一个存储引擎相对简单。如果打算为内部数据库添加一个SQL接口, 该特性十分有用。8) 极快的基于线程的内存分配系统。9) 经过使用优化
10、的”单扫描多连接”, 能实现极快的连接。10) 存储器中的哈希表用作临时表。11) SQL函数是使用高度优化的类库实现的, 运行很快。一般, 在完成查询初始化后, 不存在存储器分配。12) 采用Purify( 商业内存溢出检测器) 以及GPL工具Valgrind测试了MySQL代码。13) 服务器可作为单独程序运行在客户端/服务器联网环境下。它也可作为库提供, 可嵌入( 链接) 到独立的应用程序中。这类应用程序可单独使用, 也能在网络环境下使用。简言之, MYSQL具有功能强, 使用简单, 管理方便, 运行速度快, 可靠性高, 安全保密等特点。1.2 Borland C+Builder集成开发
11、环境Borland C+ Builder(以下简称BCB)是Borland公司(现更名为Inprise)继Delphi之后推出的又一个优秀的可视化编程环境, 它在32位Windows环境下为我们提供了一种极具吸引力的快速Windows应用程序开发系统(RAD)。它基于最流行的面向对象程序设计语言C+, 采用领先的数据库技术, 并结合使用了图形用户界面(GUI)的许多先进特性和设计思想。VCL是可视化组件库的简称, 它是一个面向对象的函数库, 完全支持所有面向对象编程的标准概念如继承、 多态和封装等。C+ Builder的集成开发环境提供了120多个VCL组件, 使开发人员不需太多编码, 就能够
12、实现很多复杂的功能, 体现了软件的”重用性”原则。C+ Builder的用户界面也非常友好, 易于使用, 而且采用了停驻式(docking)工具条, 能够自由组合集成开发环境窗口和工具条的排放方式。在编码过程中, 还能够使用CodeExplorer技术对源代码进行管理。CodeCompletion技术使编译器能够自动列出VCL组件的可用属性和方法供程序员选择, 而不必手工输入冗长的代码。C+Builder含有20多个数据感知控件。在许多情况下, 甚至不须要编写任何程序代码, 便能够开发一个复杂的应用程序。C+Builder还提供了强大的Borland数据库引擎, 这是一种非常成熟的数据库连接技
13、术, 它提供了3种访问数据库的方式: 一是能够直接存取dBase、 FoxPro、 Paradox等文件型数据库生成的DB、 DBF文件; 二是提供了标准的ODBC接口; 三是提供了高效的SQL Links数据库驱动程序, 允许直接存取Oracle、 Informix、 SyBase、 MSSQLServer、 DB2和InterBase。另外, C+Builder还提供了一组ADO控件, 使C+Builder编程人员不用依靠BDE来创立应用程序, 可直接使用ADO存取数据。C+Builder率先引入了多层数据库应用模型, 经过C+Builder提供的多层分布式应用服务(MIDAS)能够轻松开
14、发出高可靠性、 高效率、 高负载的分布式数据处理系统。另外, 还能够经过ActiveForm或InterBaseExpress为多层数据库应用程序创立基于Web的客户端, 这样用户经过普通的浏览器就能够与远程数据库系统进行交互。在C+cBuilder 6中, MIDAS更名为DataSnap、 DataSnap强化了MIDAS原有的功能, 并改进了MIDAS的执行效率, 更方便使用。 1.3 MyDAC组件库MyDAC, 全称为MySQL Data Access Components ( MySQL数据访问组件) , 支持Borland Delphi, C+ Builder 和Kylix。它提
15、供访问MySQL数据库的一种方式, 能够代替标准的Borland Database Engine (BDE)或dbExpress。MyDAC能够经过MySQL client或MySQL network protocol工作。假如直接使用MySQL protocol协议MyDAC不需要client library, 仅需要TCP/IP protocol。这个特征允许编译真正的瘦客户数据库应用。在基于MySQL的client/server应用中使用BDE或dbExpress有些不足, 许多情况下BDE和dbExpress不能够使用服务器的特殊特征, 还有BDE必须容忍过多的资源使用, 限制一个应用
16、程序的分发和管理。使用BDE: MySQL ODBC BDE Application经过MySQL接口: MySQL Client library Application使用MySQL网络协议: MySQL Application二、 需求分析2.1 功能需求及用户需求 2.1.1 功能需求 该系统主要分为三大功能: 管理员功能、 信息安全功能、 一般用户功能、 报表生成。(1) 管理员功能: 产品入库登记、 确认入库信息、 删除库内信息、 借出信息登记、 产品分类管理、 添加人员、 删除人员、 查询库内信息。(2) 信息安全功能: 人员权限区分、 事件记录、 数据警告、 计划备份、 即时备份
17、、 数据恢复; (3) 一般用户功能: 查询库内信息、 查询出库信息、 查询入库信息、 修改本用户密码; (4) 报表生成: 库存信息报表生成。 2.1.2 用户需求根据用户需求, 该系统应该实现以下功能: (1) 进、 出库管理。对进、 出库信息进行记录。(2) 查询功能。仓库管理对查询要求高, 经过主菜单记录当前操作用户的用户编号, 保证了对进、 出库信息录入负责人的确认。(3) 部门资料管理与库存报表生成。资料管理包括了人员信息管理, 财政支出信息管理, 以及各项业务单据的资料管理。报表主要分类为: 日报表, 月报表, 销售报表, 入库报表等等。(4) 由于计算机能存贮大量的数据, 而且
18、数据只要一次存入, 便可多次重复使用, 因此管理数据达到完整, 统一, 原始记录能保证及时, 准确。(5) 许多重复性的工作, 都可由计算机去执行, 从而使管理人员从事务性工作解脱出来, 真正变为从事一些信息的分析, 判断, 决策等创造性的工作。查询操作库存操作2.2 系统流图定货报告入库信息处理出库信息处理购货商需求表采购货物入库仓库管理系统存储文件入库信息出库信息表库存报表供货商出入库库存报表2.3 数据描述 2.3.1 数据字典2.3.1.1 基本数据项及数据结构l 零部件信息。包括的数据项有零件号、 零件名称、 规格、 单价、 描述。l 仓库信息。包括的数据项有仓库号、 已用库存、 库
19、存总量、 负责人、 电话号码。l 供应商信息。包括的数据项有编号、 供应商、 电话号码、 地址。l 部门信息。包括的数据项有部门号、 名称、 电话。数据项名称别名简述类型长度取值范围零件号-零件的编号字符型7第1位: 进口/国产(I/D)第2-4位: 类别第5-7位: 物资编号零件名称-零件的名称字符型20-规格-零件规格字符型10单价-零件的单位价格货币型6默认计量单位: 元描述-零件描述/说明文本型-仓库号-仓库的编号字符型3-已用库存-仓库已用存储容量数值型60: 仓库非空=0: 空仓库0: 物资存量=0: 空仓库0: 不允许负责人-仓库负责人字符型20-供应商编号-供应商编号字符型3-
20、供应商-供应商名称字符型20-地址-供应商联系地址文本-部门号-公司部门编号字符型3-部门名-公司部门名称字符型20-电话-电话号码字符型15-2.3.1.2 数据流条目名称别名简述来源去向入库单-入库单位在把相应的零件送人仓库时必须填写的单据供应商库存出库单-领料人员从仓库中领取零件时必须填写的单据库存公司部门客户还库单-零件使用后归还入库必须填写的单据公司部门库存需求单-对新零件需求所填写的单据公司部门库存采购单-购买新零件所填写的单据采购员供应商2.3.1.3 数据存储条目名称别名简述组织方式查询要求仓库库存-存放索引文件, 以仓库编号为关键字要求立即查询零件库存-存放索引文件, 以零件
21、编号为关键字要求立即查询2.3.1.4 加工条目加工名激发条件优先级输入输出零件入库接收到合格入库单时普通合格入库单库存满, 零件成功入库加工逻辑根据库存记录。Loop: If (入库物资的数量+物资现有存量)=该物资库存量临界值Then 物资存入仓库; 物资现有存量=物资现有存量+入库物资的数量; Else 物资库存已足, If 物资现有存量=该物资库存量临界值 Then 结束, 入库失败 Endif; 调整入库单; goto loop, 直到(入库物资的数量+物资现有存量)=该物资库存 量临界值; Endif; 零件入库; 统计仓库库存已用量; 加工名激发条件优先级输入输出零件出库接收到合
22、格出库单时普通合格出库单库存量不足, 零件成功出库加工逻辑根据库存记录。Loop: 零件是否存在? 是: If 需求单物资的数量该物资库存量的临界值 Then 零件出库 物资现有存量=物资现有存量-出库零件的数量; Else 物资短缺, If 物资现有存量=该物资库 存量临界值; Endif; 否: 零件不存在, goto loop; 零件入库; 统计仓库库存已用量; 2.3.2 数据流图1) 本系统的顶层数据流图2) 细化后的数据流图3) 货物入库信息管理细化4) 货物出库信息管理细化 2.4 安全性和完整性要求2.4.1 安全性要求系统安全性要求至少达到TCSEC( TDI) 的C1级。即
23、只提供了非常初级的自主安全保护。能够实现对用户和数据的分离, 进行自主存取控制( DAC) , 保护或限制用户权限的传播。实行用户标识与鉴别, 具有数据备份和日志审计功能。2.4.2 完整性要求每个关系中都至少要有一个主键, 而且都有一个聚集索引( Clustered Index) 。关系与关系之间经过主外键关联。定义属性上的约束条件, 定义触发器。三、 概念结构设计1) 库存实体E-R图: 2) 入库实体E-R图: 3) 出库实体E-R图: 4) 部门需求实体E-R图: 5) 还库实体E-R图: 6) 计划采购实体E-R图: 7) 实体和实体之间的关系图如图所示: 8) 仓库管理E-R图如图
24、所示四、 逻辑结构设计4.1 关系模型设计1) 仓库表storehouseNO.字段名代码类型约束1仓库号stoIDChar(3)主键2已用库存Used_volumeSmallint非空, 默认0, unsigned, =Min_volume, =Max_volume4最小存量Min_volumeSmallint 非空, 默认0, unsigned5最大存量Max_volumeSmallint 非空, 默认0, unsigned6) 供应表supplyNO.字段名代码类型约束1供应商号supIDChar(3)主键, 与supplier表中的supID外键关联, 级联删除、 更新2零件号parI
25、DChar(7)主键, 与parts表中的parID外键关联, 级联删除、 更新3供应量supVolumeSmallint 非空, 默认0, unsigned4供应时间supDateTimestamp 非空7) 部门需求表demandNO.字段名代码类型约束1零件号parIDChar(7)主键, 与parts表中的parID外键关联, 级联删除、 更新2部门号depIDChar(3)主键, 与dept表中的depID外键关联, 级联更新、 删除3需求数量demVolumeSmallint 非空, 默认0, unsigned4开始时间startTimeTimestamp非空5结束时间endTim
26、eTimestamp非空8) 零件归还表restoreNO.字段名代码类型约束0编号resIDSmallint主键, AUTO_INCREMENT1仓库号stoIDChar(3)主键, 与storehouse表中的stoID外键关联, 级联删除、 更新2零件号parIDChar(7)主键, 与parts表中的parID外键关联, 级联更新、 删除3部门号depIDChar(3)主键, 与dept表中的depID外键关联, 级联更新、 删除4归还数量resVolumeSmallint 非空, 默认0, unsigned5经手人cmakerVarchar(20)非空6归还者returnerVarc
27、har(20)非空7归还时间resDateTimestamp非空9) 零部件采购计划表stockNO.字段名代码类型约束1零件号parIDChar(7)主键, 与parts表中的parID外键关联, 级联更新、 删除2采购量stoVolumeSmallint 非空, 默认0, unsigned3供应商号supIDChar(3)与supplier表中的supID外键关联4采购时间stoDateTimestamp主键5采购员buyerVarchar(20)10) 入库表warehousingNO.字段名代码类型约束0编号inIDSmallint主键, AUTO_INCREMENT1仓库号stoID
28、Char(3)主键, 与storehouse表中的stoID外键关联, 级联删除、 更新2供应商号supIDChar(3)非空, 与supplier表中的supID外键关联3零件号parIDChar(7)主键, 与parts表中的parID外键关联, 级联更新、 删除4入库数量inVolumeSmallint 非空, 默认0, unsigned5经手人cmakerVarchar(20)非空6入库时间inDateTimestamp非空, 默认当前时间11) 出库表stockoutNO.字段名代码类型约束0编号outIDsmallint主键, AUTO_INCREMENT1仓库号stoIDChar
29、(3)主键, 与storehouse表中的stoID外键关联, 级联删除、 更新2零件号parIDChar(7)主键, 与parts表中的parID外键关联, 级联更新、 删除3出库数量outVolumeSmallint 非空, 默认0, unsigned4使用者userVarchar(20)非空5经手人cmakerVarchar(20)非空6领取人receiptorVarchar(20)非空7出库时间outDateTimestamp非空, 默认当前时间4.2 用户子模式设计1) 仓库信息视图storehouse_viewNO.字段名代码类型备注1仓库号stoIDChar(3)连storeho
30、use表2已用库存Used_volumeInt连storehouse表3库存总量All_volumeInt连storehouse表4负责人principalVarchar(20)连storehouse表6电话号码stoTELVarchar(15)连storehouse表2) 零部件库存视图parts_storage_viewNO.字段名代码类型备注1仓库号stoIDChar(3)连storage表2零件号parIDChar(7)连parts表3名称partVarchar(20)连parts表4规格specChar(10)连parts表5单价priceDecimal(6,2)连parts表6计量
31、单位mensurationChar(4)连parts表7现有存量Now_volumeSmallint 连storage表8最小存量Min_volumeSmallint 连storage表9最大存量Max_volumeSmallint 连storage表3) 零部件入库视图warehousing_viewNO.字段名代码类型备注0仓库号stoIDChar(3)连warehousing表1零件号parIDChar(7)连parts表, 更新warehousing表的parID项2供应商号supIDChar(3)连supplier表3供应商supNameVarchar(20)连supplier表4电
32、话supTELVarchar(15)连supplier表5零件名partVarchar(20)连parts表NO.字段名代码类型备注6规格specChar(10)连parts表7单价priceDecimal(6,2)连parts表8计量单位mensurationChar(4)连parts表9入库数量inVolumeSmallint 连warehousing表, 更新parts_storage_view视图的Now_volume项10描述descriptionText连parts表11经手人cmakerVarchar(20)连warehousing表12入库时间inDateTimestamp连w
33、arehousing表4) 零部件出库视图stockout_viewNO.字段名代码类型备注0仓库号stoIDChar(3)连stockout表1零件号parIDChar(7)连parts表, 更新stockout表的parID项2出库数量outVolumeSmallint 连stockout表, 更新storage表的now_volume3使用单位userVarchar(20)连stockout表4经手人cmakerVarchar(20)连stockout表5领取人receiptorVarchar(20)连stockout表6出库时间outDateTimestamp连stockout表5)
34、零部件计划采购视图stock_viewNO.字段名代码类型备注1零件号parIDChar(7)连stock表2采购量stoVolumeSmallint 连stock表3供应商号supIDChar(3)连supplier表, 更新stock表的supName4电话supTELVarchar(15)连supplier表NO.字段名代码类型备注5价格priceDecimal(6,2)连parts表6计量单位mensurationChar(4)连parts表7规格specChar(10)连parts表8采购时间stoDateTimestamp连stock表9采购员buyerVarchar(20)连st
35、ock表6) 部门需求视图demand_viewNO.字段名代码类型备注1零件号parIDChar(7)连demand表2部门号depIDChar(3)连demand表3需求数量demVolumeSmallint 连demand表4开始时间startTimeTimestamp连demand表5结束时间endTimeTimestamp连demand表7) 供应商零件供应视图supply_viewNO.字段名代码类型备注1供应商号supIDChar(3)连supplier表2零件号parIDChar(7)连supply表3单价priceDecimal(6,2)连parts表4计量单位mensura
36、tionChar(4)连parts表5规格specChar(10)连parts表6供应量supVolumeSmallint 连supply表7供应时间supDateTimestamp 连supply表8电话supTELVarchar(15)连supplier表8) 零部件归还入库视图restore_viewNO.字段名代码类型备注0仓库号stoIDChar(3)连restore表1零件号parIDChar(7)连restore表2部门号depIDChar(3)连restore表3归还数量resVolumeSmallint 连restore表4经手人cmakerVarchar(20)连resto
37、re表5归还者returnerVarchar(20)连restore表6归还时间resDateTimestamp连restore表4.3 系统结构图4.4 安全性和完整性设计4.4.1 安全性设计 用户类别有: 信息查询员inf, 仓库管理员dba和系统管理员sys。她们的权限分别为: l 信息查询员inf: 只有信息查询的权限。l 仓库管理员dba: 具有信息查询, 更新, 删除, 报单打印权限。l 系统管理员sys: 除具有仓库管理员dba所有权限外, 还具有用户管理, 数据恢复备份。4.4.2 完整性设计各表中各个字段的完整性约束已在”4.1 关系模型设计”中各表的”约束”列做了详细说明。触发子设计: 1) 零件
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100