• 1.47 MB
  • 2022-05-16 18:35:01 发布

仓库管理系统课程设计(论文)

  • 69页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
课程设计(论文)课程名称数据库课程设计题目名称__仓库管理系统_____40 广东工业大学课程设计任务书题目名称仓库管理系统学生学院计算机学院专业班级网络开发0503班姓名学号一、课程设计的内容1、学习与实践数据库应用程序开发流程;2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境;3、设计和实现仓库管理系统;4、撰写课程设计报告。二、课程设计的要求与数据系统应该实现以下功能:(1)进、出库管理。对进、出库信息进行记录。(2)查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。(3)部门资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入库报表等等。(4)由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。(5)许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。数据自己自行编造测试。论文要求结构严谨、格式规范,内容正确、文字通顺。40 三、课程设计应完成的工作该系统主要分为三大功能:管理员功能、信息安全功能、一般用户功能、报表生成。(1)管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。(2)信息安全功能:人员权限区分、事件记录、数据警告、数据备份、数据恢复;(3)一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4)报表生成:库存信息报表生成。四、课程设计进程安排序号设计(论文)各阶段名称地点起止日期1选定本次课程设计及报告的研究课题宿舍2008.12.282对研究课题进行调查并做出详细的需求分析宿舍2008.12.293收集资料和参考文献图书馆2008.12.294认真阅读和学习资料、文献并做出初步构思宿舍2008.12.30-2008.12.315制定出整个系统的设计构想、设计思路和方法宿舍2008.12.31-2009.1.16进行系统的设计、开发和编写程序代码宿舍2009.1.1-2009.1.37对系统进行测试和系统调试宿舍2009.1.48完成整个系统的开发并进行系统维护宿舍2009.1.49撰写课程设计报告宿舍2009.1.4-2009.1.510最终完成系统修改、论文撰写和表格填写宿舍2009.1.511上交课程设计报告、系统答辩教学楼2009.1.7-2009.1.940 五、应收集的资料及主要参考文献[1]MySQL5.1参考手册http://dev.mysql.com/doc/refman/5.1/zh/introduction.html#features[2]Devart.comhttp://www.devart.com/mydac/[3]数据库系统概论(第四版)王珊萨师煊高等教育出版社2006.5[4]软件工程(第二版)李代平等编著清华大学出版社2008.1[5]MySQL开发者SQL权威指南(荷)RickF.vanderLans著许杰星李强等译机械工业出版社2008.1[6]学习MySQL(影印版)SeyedM.M."Saied"Tabagbogbi&HugbE.Williams著南京:东南大学出版社2007.6[7]C++Builder程序员成长攻略蒙祖强龚涛等编著北京:中国水利水电出版社2007.1发出任务书日期:2008年12月29日指导教师签名:何晓桃计划完成日期:2009年1月5日基层教学单位责任人签章:主管院长签章:40 目录一、相关技术介绍71.1MySQL71.2BorlandC++Builder集成开发环境81.3MyDAC组件库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安全性和完整性要求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七、系统测试方案507.1登录测试5040 7.2新建用户测试507.3更改用户测试507.4删除用户测试507.5数据录入测试517.6查询测试51八、系统主要功能和使用说明51九、系统安装说明52十、心得体会54参考文献:5440 一、相关技术介绍1.1MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL的特性:1)使用C和C++编写,用众多不同的编译器进行了测试,能够工作在众多不同的平台上。2)使用GNUAutomake、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)存储器中的哈希表用作临时表。11)SQL函数是使用高度优化的类库实现的,运行很快。通常,在完成查询初始化后,不存在存储器分配。12)采用Purify(商业内存溢出检测器)以及GPL工具Valgrind测试了MySQL代码。13)服务器可作为单独程序运行在客户端/服务器联网环境下。它也可作为库提供,可嵌入(链接)到独立的应用程序中。这类应用程序可单独使用,也能在网络环境下使用。简言之,MYSQL具有功能强,使用简单,管理方便,运行速度快,可靠性高,安全保密等特点。40 1.2BorlandC++Builder集成开发环境BorlandC++Builder(以下简称BCB)是Borland公司(现更名为Inprise)继Delphi之后推出的又一个优秀的可视化编程环境,它在32位Windows环境下为我们提供了一种极具吸引力的快速Windows应用程序开发系统(RAD)。它基于最流行的面向对象程序设计语言C++,采用领先的数据库技术,并结合使用了图形用户界面(GUI)的许多先进特性和设计思想。VCL是可视化组件库的简称,它是一个面向对象的函数库,完全支持所有面向对象编程的标准概念如继承、多态和封装等。C++Builder的集成开发环境提供了120多个VCL组件,使开发人员不需太多编码,就能够实现很多复杂的功能,体现了软件的“重用性”原则。C++Builder的用户界面也非常友好,易于使用,并且采用了停驻式(docking)工具条,可以自由组合集成开发环境窗口和工具条的排放方式。在编码过程中,还可以使用CodeExplorer技术对源代码进行管理。CodeCompletion技术使编译器能够自动列出VCL组件的可用属性和方法供程序员选择,而不必手工输入冗长的代码。C++Builder含有20多个数据感知控件。在许多情况下,甚至不须要编写任何程序代码,便可以开发一个复杂的应用程序。C++Builder还提供了强大的Borland数据库引擎,这是一种非常成熟的数据库连接技术,它提供了3种访问数据库的方式:一是可以直接存取dBase、FoxPro、Paradox等文件型数据库生成的DB、DBF文件;二是提供了标准的ODBC接口;三是提供了高效的SQLLinks数据库驱动程序,允许直接存取Oracle、Informix、SyBase、MSSQLServer、DB2和InterBase。此外,C++Builder还提供了一组ADO控件,使C++Builder编程人员不用依靠BDE来创建应用程序,可直接使用ADO存取数据。C++Builder率先引入了多层数据库应用模型,通过C++Builder提供的多层分布式应用服务(MIDAS)可以轻松开发出高可靠性、高效率、高负载的分布式数据处理系统。此外,还可以通过ActiveForm或InterBaseExpress为多层数据库应用程序创建基于Web的客户端,这样用户通过普通的浏览器就可以与远程数据库系统进行交互。在C++cBuilder6中,MIDAS更名为DataSnap、DataSnap强化了MIDAS原有的功能,并改善了MIDAS的执行效率,更方便使用。1.3MyDAC组件库MyDAC,全称为MySQLDataAccessComponents(MySQL数据访问组件),支持BorlandDelphi,C++Builder40 和Kylix。它提供访问MySQL数据库的一种方式,可以代替标准的BorlandDatabaseEngine(BDE)或dbExpress。MyDAC能够通过MySQLclient或MySQLnetworkprotocol工作。假如直接使用MySQLprotocol协议MyDAC不需要clientlibrary,仅需要TCP/IPprotocol。这个特征允许编译真正的瘦客户数据库应用。在基于MySQL的client/server应用中使用BDE或dbExpress有些不足,许多情况下BDE和dbExpress不能够使用服务器的特殊特征,还有BDE必须容忍过多的资源使用,限制一个应用程序的分发和管理。使用BDE:[MySQL]<->[ODBC]<->[BDE]<->[Application]通过MySQL接口:[MySQL]<->[Clientlibrary]<->[Application]使用MySQL网络协议:[MySQL]<->[Application]二、需求分析2.1功能需求及用户需求2.1.1功能需求40 该系统主要分为三大功能:管理员功能、信息安全功能、一般用户功能、报表生成。(1)管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。(2)信息安全功能:人员权限区分、事件记录、数据警告、计划备份、即时备份、数据恢复;(3)一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4)报表生成:库存信息报表生成。2.1.2用户需求根据用户需求,该系统应该实现以下功能:(1)进、出库管理。对进、出库信息进行记录。(2)查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。(3)部门资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入库报表等等。(4)由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。(5)许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。查询操作库存操作2.2系统流图定货报告入库信息处理出库信 息处理购货商需求表采购货物入库仓库管理系统存储文件入库信息出库信息表库存报表40 供货商出入库库存报表2.3数据描述2.3.1数据字典2.3.1.1基本数据项及数据结构l零部件信息。包括的数据项有零件号、零件名称、规格、单价、描述。l仓库信息。包括的数据项有仓库号、已用库存、库存总量、负责人、电话号码。l供应商信息。包括的数据项有编号、供应商、电话号码、地址。l部门信息。包括的数据项有部门号、名称、电话。数据项名称别名简述类型长度取值范围零件号-零件的编号字符型7第1位:进口/国产(I/D)第2-4位:类别第5-7位:物资编号零件名称-零件的名称字符型20-规格-零件规格字符型10单价-零件的单位价格货币型6默认计量单位:元描述-零件描述/说明文本型--仓库号-仓库的编号字符型3-已用库存-仓库已用存储容量数值型6>0:仓库非空=0:空仓库<0:不允许库存总量-仓库总存储容量数值型6>0:物资存量=0:空仓库<0:不允许负责人-仓库负责人字符型20-供应商编号-供应商编号字符型3-供应商-供应商名称字符型20-地址-供应商联系地址文本--部门号-公司部门编号字符型3-部门名-公司部门名称字符型20-电话-电话号码字符型15-2.3.1.2数据流条目名称别名简述来源去向入库单-入库单位在把相应的零件送人仓库时必须填写的单据供应商库存出库单-领料人员从仓库中领取零件库存公司部门40 时必须填写的单据客户还库单-零件使用后归还入库必须填写的单据公司部门库存需求单-对新零件需求所填写的单据公司部门库存采购单-购买新零件所填写的单据采购员供应商2.3.1.3数据存储条目名称别名简述组织方式查询要求仓库库存-存放索引文件,以仓库编号为关键字要求立即查询零件库存-存放索引文件,以零件编号为关键字要求立即查询2.3.1.4加工条目加工名激发条件优先级输入输出零件入库接收到合格入库单时普通合格入库单库存满,零件成功入库加工逻辑根据库存记录。Loop:If(入库物资的数量+物资现有存量)<=该物资库存量临界值Then物资存入仓库;物资现有存量=物资现有存量+入库物资的数量;Else物资库存已足,If物资现有存量=该物资库存量临界值Then结束,入库失败Endif;调整入库单;gotoloop,直到(入库物资的数量+物资现有存量)<=该物资库存量临界值;Endif;零件入库;统计仓库库存已用量;加工名激发条件优先级输入输出零件出库接收到普通合格库存量不足,40 合格出库单时出库单零件成功出库加工逻辑根据库存记录。Loop:零件是否存在?是:If需求单物资的数量<该物资库存量的临界值Then零件出库物资现有存量=物资现有存量-出库零件的数量;Else物资短缺,If物资现有存量<=物资最少存量Then结束,出库失败Endif;调整入库单;gotoloop,直到(物资现有存量-出库零件的数量)>=该物资库存量临界值;Endif;否:零件不存在,gotoloop;零件入库;统计仓库库存已用量;2.3.2数据流图1)本系统的顶层数据流图2)细化后的数据流图40 1)货物入库信息管理细化2)货物出库信息管理细化40 2.4安全性和完整性要求2.4.1安全性要求系统安全性要求至少达到TCSEC(TDI)的C1级。即只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。实行用户标识与鉴别,具有数据备份和日志审计功能。2.4.2完整性要求每个关系中都至少要有一个主键,并且都有一个聚集索引(ClusteredIndex)。关系与关系之间通过主外键关联。定义属性上的约束条件,定义触发器。二、概念结构设计1)库存实体E-R图:40 2)入库实体E-R图:3)出库实体E-R图:4)部门需求实体E-R图:5)还库实体E-R图:40 6)计划采购实体E-R图:7)实体和实体之间的关系图如图所示:8)仓库管理E-R图如图所示40 二、逻辑结构设计4.1关系模型设计1)仓库表storehouseNO.字段名代码类型约束1仓库号stoIDChar(3)主键2已用库存Used_volumeSmallint非空,默认0,unsigned,<=All_volume3库存总量All_volumeSmallint非空,默认10000,unsigned4负责人principalVarchar(20)非空5电话号码stoTELVarchar(15)2)零件表partsNO.字段名代码类型约束1零件号parIDChar(7)主键2名称partVarchar(20)非空40 3规格specChar(10)4单价priceDecimal(6,2)非空,默认0,unsigned5计量单位mensurationChar(4)非空,默认“元”6描述descriptionText1)供应商supplierNO.字段名代码类型约束1编号supIDChar(3)主键2供应商supNameVarchar(20)非空3电话号码supTELVarchar(15)非空4地址addressText2)部门表deptNO.字段名代码类型约束1部门号depIDChar(3)主键2名称depNameVarchar(20)非空3电话depTELVarchar(15)3)库存表storageNO.字段名代码类型约束1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联删除、更新40 3现有存量Now_volumeSmallint非空,默认0,>=Min_volume,<=Max_volume4最小存量Min_volumeSmallint非空,默认0,unsigned5最大存量Max_volumeSmallint非空,默认0,unsigned1)供应表supplyNO.字段名代码类型约束1供应商号supIDChar(3)主键,与supplier表中的supID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联删除、更新3供应量supVolumeSmallint非空,默认0,unsigned4供应时间supDateTimestamp非空2)部门需求表demandNO.字段名代码类型约束1零件号parIDChar(7)主键,与parts表中的parID外键关联,级联删除、更新2部门号depIDChar(3)主键,与dept表中的depID外键关联,级联更新、删除3需求数量demVolumeSmallint非空,默认0,unsigned4开始时间startTimeTimestamp非空5结束时间endTimeTimestamp非空3)零件归还表restore40 NO.字段名代码类型约束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归还者returnerVarchar(20)非空7归还时间resDateTimestamp非空1)零部件采购计划表stockNO.字段名代码类型约束1零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除2采购量stoVolumeSmallint非空,默认0,unsigned3供应商号supIDChar(3)与supplier表中的supID外键关联4采购时间stoDateTimestamp主键5采购员buyerVarchar(20)2)入库表warehousing40 NO.字段名代码类型约束0编号inIDSmallint主键,AUTO_INCREMENT1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2供应商号supIDChar(3)非空,与supplier表中的supID外键关联3零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除4入库数量inVolumeSmallint非空,默认0,unsigned5经手人cmakerVarchar(20)非空6入库时间inDateTimestamp非空,默认当前时间1)出库表stockoutNO.字段名代码类型约束0编号outIDsmallint主键,,AUTO_INCREMENT1仓库号stoIDChar(3)主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar(7)主键,与parts表中的parID外键关联,级联更新、删除3出库数量outVolumeSmallint非空,默认0,unsigned4使用者userVarchar(20)非空5经手人cmakerVarchar(20)非空40 6领取人receiptorVarchar(20)非空7出库时间outDateTimestamp非空,默认当前时间4.2用户子模式设计1)仓库信息视图storehouse_viewNO.字段名代码类型备注1仓库号stoIDChar(3)连storehouse表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计量单位mensurationChar(4)连parts表7现有存量Now_volumeSmallint连storage表40 8最小存量Min_volumeSmallint连storage表9最大存量Max_volumeSmallint连storage表1)零部件入库视图warehousing_viewNO.字段名代码类型备注0仓库号stoIDChar(3)连warehousing表1零件号parIDChar(7)连parts表,更新warehousing表的parID项2供应商号supIDChar(3)连supplier表3供应商supNameVarchar(20)连supplier表4电话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连warehousing表40 1)零部件出库视图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表2)零部件计划采购视图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表40 9采购员buyerVarchar(20)连stock表1)部门需求视图demand_viewNO.字段名代码类型备注1零件号parIDChar(7)连demand表2部门号depIDChar(3)连demand表3需求数量demVolumeSmallint连demand表4开始时间startTimeTimestamp连demand表5结束时间endTimeTimestamp连demand表2)供应商零件供应视图supply_viewNO.字段名代码类型备注1供应商号supIDChar(3)连supplier表2零件号parIDChar(7)连supply表3单价priceDecimal(6,2)连parts表4计量单位mensurationChar(4)连parts表5规格specChar(10)连parts表6供应量supVolumeSmallint连supply表7供应时间supDateTimestamp连supply表8电话supTELVarchar(15)连supplier表3)零部件归还入库视图restore_view40 NO.字段名代码类型备注0仓库号stoIDChar(3)连restore表1零件号parIDChar(7)连restore表2部门号depIDChar(3)连restore表3归还数量resVolumeSmallint连restore表4经手人cmakerVarchar(20)连restore表5归还者returnerVarchar(20)连restore表6归还时间resDateTimestamp连restore表4.3系统结构图4.4安全性和完整性设计4.4.1安全性设计用户类别有:信息查询员inf,仓库管理员dba和系统管理员sys。他们的权限分别为:40 l信息查询员inf:只有信息查询的权限。l仓库管理员dba:具有信息查询,更新,删除,报单打印权限。l系统管理员sys:除具有仓库管理员dba所有权限外,还具有用户管理,数据恢复备份。4.4.2完整性设计各表中各个字段的完整性约束已在“4.1关系模型设计”中各表的“约束”列做了详细说明。触发子设计:1)零件入库触发子设置触发子parts_warehousing_update,当warehousing表插入或更新一条新记录后,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume。设置触发子parts_warehousing_delete,当warehousing表删除一条(错误)记录前,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume2)零件出库触发子设置触发子parts_stockout_update,当stockout表插入或更新一条新记录后,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume。设置触发子parts_warehousing_delete,当stockout表删除一条(错误)记录前,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume3)零件归还入库触发子设置触发子parts_restore_update,当restore表插入或更新一条新记录后,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume。设置触发子parts_restore_delete,当restore表删除一条(错误)记录前,更新storage表的零件存量Now_volume和更新storehouse表的已用存量Used_volume二、数据库物理设计40 5.1建立索引各表索引设计如下:表名索引字段索引类型排列次序唯一值零件零件号聚集索引升序√零件名非聚集索引升序供应商供应商号聚集索引升序√供应商名非聚集索引升序部门部门号聚集索引升序√部门名非聚集索引升序库存零件号非聚集索引升序供应供应商号非聚集索引升序零件号非聚集索引升序供应时间聚集索引降序部门需求零件号非聚集索引升序部门号非聚集索引升序开始时间非聚集索引降序结束时间非聚集索引降序零件归还归还时间聚集索引降序零件号非聚集索引升序部门号非聚集索引升序零件采购零件号非聚集索引升序采购时间聚集索引降序零件入库入库时间聚集索引降序零件号非聚集索引升序零件出库出库时间聚集索引降序零件号非聚集索引升序5.2确定数据的存放位置该数据库的数据文件都存放在MySQL的安装目录的/data/warehouse文件夹下.5.3确定系统配置1)运行环境v操作系统:Windows2003或WindowsXP,以上v数据库系统:5.1.29-rc-community-logMySQLCommunityServer(GPL)v开发平台:C++Builder6.0+MyDAC5.70.0.42forC++Builder640 1)数据库配置40#适合于内存256M--512M的用户。用于服务器搭建[client]port=3306[mysql]default-character-set=gbk[mysqld]port=3306basedir="D:/PC_webserver/mysql/"datadir="D:/PC_webserver/mysql/Data/"default-character-set=gbkdefault-storage-engine=INNODBsql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"max_connections=447query_cache_size=12Mtable_cache=128tmp_table_size=8Mthread_cache_size=4myisam_max_sort_file_size=100Gmyisam_max_extra_sort_file_size=100Gmyisam_sort_buffer_size=16Mkey_buffer_size=32Mread_buffer_size=64Kread_rnd_buffer_size=256Ksort_buffer_size=2Minnodb_data_home_dir="D:/PC_webserver/mysql/datafiles/"innodb_additional_mem_pool_size=2Minnodb_flush_log_at_trx_commit=1innodb_log_buffer_size=1Minnodb_buffer_pool_size=29Minnodb_log_file_size=10Minnodb_thread_concurrency=8log=D:PC_webservermysqllogsql.loglog-output=FILE405.4模块设计仓库管理HIPO图40 二、数据库实施6.1创建数据库及数据库对象SQL脚本40/*MySQLDataTransferSourceHost:localhostSourceDatabase:warehouseTargetHost:localhostTargetDatabase:warehouseDate:2009-1-60:01:49*/SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructurefordemand------------------------------CREATETABLE`demand`(`parID`char(7)NOTNULLCOMMENT"零件号",`depID`char(3)NOTNULLCOMMENT"部门号",`demVolume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"需求数量",`startTime`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"开始时间",`endTime`timestampNOTNULLDEFAULT"0000-00-0000:00:00"COMMENT"结束时间",PRIMARYKEY(`parID`,`depID`),KEY`depID`(`depID`),KEY`parID`(`parID`),40 KEY`startTime`(`startTime`),KEY`endTime`(`endTime`),CONSTRAINT`demand_parID`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`depID`FOREIGNKEY(`depID`)REFERENCES`dept`(`depID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="需求表";--------------------------------Tablestructurefordept------------------------------CREATETABLE`dept`(`depID`char(3)NOTNULLCOMMENT"部门号",`depName`varchar(20)NOTNULLCOMMENT"名称",`depTEL`varchar(15)DEFAULTNULLCOMMENT"电话",PRIMARYKEY(`depID`),UNIQUEKEY`depID`(`depID`),KEY`depName`(`depName`))ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="部门表";--------------------------------Tablestructureforparts------------------------------CREATETABLE`parts`(`parID`char(7)NOTNULLCOMMENT"零件号",`part`varchar(20)NOTNULLCOMMENT"名称",`spec`char(10)DEFAULTNULLCOMMENT"规格",`price`decimal(6,2)unsignedNOTNULLDEFAULT"0.00"COMMENT"单价",`mensuration`char(4)NOTNULLDEFAULT"元"COMMENT"计量单位",`description`textCOMMENT"述描",PRIMARYKEY(`parID`),UNIQUEKEY`parID`(`parID`),KEY`part`(`part`))ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="零件表";--------------------------------Tablestructureforpriv------------------------------CREATETABLE`priv`(`user`varchar(16)NOTNULL,`type`char(3)NOTNULL,PRIMARYKEY(`user`))ENGINE=InnoDBDEFAULTCHARSET=gbk;------------------------------40 --Tablestructureforrestore------------------------------CREATETABLE`restore`(`resID`smallint(6)unsignedNOTNULLAUTO_INCREMENTCOMMENT"编号",`stoID`char(3)NOTNULLCOMMENT"仓库号",`parID`char(7)NOTNULLCOMMENT"零件号",`depID`char(3)NOTNULLCOMMENT"部门号",`resVolume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"归还数量",`cmaker`varchar(20)NOTNULLCOMMENT"经手人",`returner`varchar(20)NOTNULLCOMMENT"归还者",`resDate`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"归还时间",PRIMARYKEY(`resID`,`parID`,`depID`),KEY`stoID`(`stoID`),KEY`depID`(`depID`),KEY`parID`(`parID`),KEY`resDate`(`resDate`),CONSTRAINT`restore_ibfk_7`FOREIGNKEY(`stoID`)REFERENCES`storehouse`(`stoID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`restore_ibfk_8`FOREIGNKEY(`depID`)REFERENCES`dept`(`depID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`restore_ibfk_9`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=gbkCOMMENT="归还表";--------------------------------Tablestructureforstock------------------------------CREATETABLE`stock`(`parID`char(7)NOTNULLCOMMENT"零件号",`stoVolume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"采购量",`supID`char(3)DEFAULTNULLCOMMENT"供应商",`stoDate`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"采购时间",`buyer`varchar(20)DEFAULTNULLCOMMENT"采购员",PRIMARYKEY(`parID`,`stoDate`),KEY`supID`(`supID`),KEY`partID`(`parID`),KEY`stoDate`(`stoDate`),CONSTRAINT`stock_ibfk_1`FOREIGNKEY(`supID`)REFERENCES`supplier`(`supID`)ONUPDATECASCADE,CONSTRAINT`stock_parID`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="采购表";------------------------------40 --Tablestructureforstockout------------------------------CREATETABLE`stockout`(`outID`smallint(6)NOTNULLAUTO_INCREMENTCOMMENT"编号",`stoID`char(3)NOTNULL,`parID`char(7)NOTNULLCOMMENT"零件号",`outVolume`smallint(6)NOTNULLDEFAULT"0"COMMENT"出库数量",`user`varchar(20)NOTNULLCOMMENT"使用者",`cmaker`varchar(20)NOTNULLCOMMENT"经手人",`receiptor`varchar(20)NOTNULLCOMMENT"领取人",`outDate`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"出库时间",PRIMARYKEY(`outID`,`parID`),KEY`out_parID`(`parID`),KEY`out_stoID`(`stoID`),KEY`outDate`(`outDate`),CONSTRAINT`out_parID`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`out_stoID`FOREIGNKEY(`stoID`)REFERENCES`storehouse`(`stoID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBAUTO_INCREMENT=19DEFAULTCHARSET=gbkCOMMENT="出库表";--------------------------------Tablestructureforstorage------------------------------CREATETABLE`storage`(`stoID`char(3)NOTNULLCOMMENT"仓库号",`parID`char(7)NOTNULLCOMMENT"零件号",`Now_volume`smallint(6)NOTNULLDEFAULT"0"COMMENT"现有存量",`Min_volume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"最小存量",`Max_volume`smallint(6)unsignedNOTNULLDEFAULT"100"COMMENT"大最存量",PRIMARYKEY(`stoID`,`parID`),KEY`parID`(`parID`),CONSTRAINT`storage_ibfk_1`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`storage_ibfk_2`FOREIGNKEY(`stoID`)REFERENCES`storehouse`(`stoID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="库存表";--------------------------------Tablestructureforstorehouse------------------------------CREATETABLE`storehouse`(`stoID`char(3)NOTNULLCOMMENT"仓库号",`Used_volume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"已用库存",40 `All_volume`smallint(6)unsignedNOTNULLDEFAULT"10000"COMMENT"库存总量",`principal`varchar(20)NOTNULLCOMMENT"负责人",`stoTEL`varchar(15)DEFAULTNULLCOMMENT"电话号码",PRIMARYKEY(`stoID`))ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="仓库表";--------------------------------Tablestructureforsupplier------------------------------CREATETABLE`supplier`(`supID`char(3)NOTNULLCOMMENT"编号",`supName`varchar(20)NOTNULLCOMMENT"供应商",`supTEL`varchar(15)NOTNULLCOMMENT"电话号码",`address`textCOMMENT"地址",PRIMARYKEY(`supID`),UNIQUEKEY`supID`(`supID`),KEY`supName`(`supName`))ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="供应商表";--------------------------------Tablestructureforsupply------------------------------CREATETABLE`supply`(`supID`char(3)NOTNULLCOMMENT"供应商",`parID`char(7)NOTNULLCOMMENT"零件号",`supVolume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"供应量",`supDate`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"供应时间",PRIMARYKEY(`parID`,`supID`),KEY`supply_supID`(`supID`),KEY`parID`(`parID`),KEY`supDate`(`supDate`),CONSTRAINT`parID`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`supply_supID`FOREIGNKEY(`supID`)REFERENCES`supplier`(`supID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBDEFAULTCHARSET=gbkCOMMENT="供应表";--------------------------------Tablestructureforwarehousing------------------------------CREATETABLE`warehousing`(`inID`smallint(6)NOTNULLAUTO_INCREMENTCOMMENT"编号",`stoID`char(3)NOTNULL,`supID`char(3)NOTNULLCOMMENT"供应商",40 `parID`char(7)NOTNULLCOMMENT"零件号",`inVolume`smallint(6)unsignedNOTNULLDEFAULT"0"COMMENT"入库数量",`cmaker`varchar(20)NOTNULLCOMMENT"经手人",`inDate`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT"入库时间",PRIMARYKEY(`inID`,`parID`),KEY`ware_parID`(`parID`),KEY`supID`(`supID`),KEY`stoID`(`stoID`),KEY`inDate`(`inDate`),CONSTRAINT`stoID`FOREIGNKEY(`stoID`)REFERENCES`storehouse`(`stoID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`supID`FOREIGNKEY(`supID`)REFERENCES`supplier`(`supID`)ONDELETENOACTIONONUPDATECASCADE,CONSTRAINT`ware_parID`FOREIGNKEY(`parID`)REFERENCES`parts`(`parID`)ONDELETENOACTIONONUPDATECASCADE)ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=gbkCOMMENT="入库表";--------------------------------Viewstructurefordemand_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`demand_view`ASselect`demand`.`parID`AS`零件号`,`demand`.`depID`AS`部门号`,`demand`.`demVolume`AS`需求数量`,`demand`.`startTime`AS`开始时间`,`demand`.`endTime`AS`结束时间`from`demand`;--------------------------------Viewstructureforparts_storage_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`parts_storage_view`ASselect`storage`.`stoID`AS`仓库号`,`storage`.`parID`AS`零件名`,`parts`.`part`AS`零件`,`parts`.`spec`AS`规格`,`parts`.`price`AS`价格`,`parts`.`mensuration`AS`计量单位`,`storage`.`Now_volume`AS`现有存量`,`storage`.`Min_volume`AS`最少存量`,`storage`.`Max_volume`AS`最大存量`from(`storage`join`parts`on((`parts`.`parID`=`storage`.`parID`)));--------------------------------Viewstructureforrestore_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`restore_view`ASselect`restore`.`stoID`AS`仓库号`,`restore`.`parID`AS`零件号`,`restore`.`depID`AS`部门号`,`restore`.`resVolume`AS`归还数量`,`restore`.`cmaker`AS`经手人`,`restore`.`returner`AS`归还者`,`restore`.`resDate`AS`归还时间`from`restore`;--------------------------------Viewstructureforstock_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`stock_view`ASselect`parts`.`parID`AS`零件号`,`stock`.`stoVolume`AS`采购量`,`supplier`.`supID`AS`供应商号`,`supplier`.`supTEL`AS`联系电话`,`parts`.`price`AS`价格`,`parts`.`mensuration`AS`计量单位`,`parts`.`spec`AS`规格`,`stock`.`stoDate`AS`采购日期`,`stock`.`buyer`AS`采购员`from((`stock`join`supplier`on((`supplier`.`supID`=`stock`.`supID`)))join`parts`on((`parts`.`parID`=`stock`.`parID`)));------------------------------40 --Viewstructureforstockout_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`stockout_view`ASselect`stockout`.`stoID`AS`仓库号`,`parts`.`parID`AS`零件号`,`stockout`.`outVolume`AS`出库数量`,`stockout`.`user`AS`使用单位`,`stockout`.`cmaker`AS`经手人`,`stockout`.`receiptor`AS`领取人`,`stockout`.`outDate`AS`出库日期`from(`parts`join`stockout`on((`parts`.`parID`=`stockout`.`parID`)));--------------------------------Viewstructureforstorehouse_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`storehouse_view`ASselect`storehouse`.`stoID`AS`仓库号`,`storehouse`.`Used_volume`AS`已用库存`,`storehouse`.`All_volume`AS`库存总量`,`storehouse`.`principal`AS`负责人`,`storehouse`.`stoTEL`AS`电话`from`storehouse`;--------------------------------Viewstructureforsupply_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`supply_view`ASselect`supplier`.`supID`AS`供应商号`,`parts`.`parID`AS`零件号`,`parts`.`price`AS`价格`,`parts`.`mensuration`AS`计量单位`,`parts`.`spec`AS`规格`,`supply`.`supVolume`AS`供应量`,`supply`.`supDate`AS`供应时间`,`supplier`.`supTEL`AS`联系电话`from((`parts`join`supply`on((`parts`.`parID`=`supply`.`parID`)))join`supplier`on((`supplier`.`supID`=`supply`.`supID`)));--------------------------------Viewstructureforwarehousing_view------------------------------CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`localhost`SQLSECURITYDEFINERVIEW`warehousing_view`ASselect`warehousing`.`stoID`AS`仓库号`,`parts`.`parID`AS`零件号`,`supplier`.`supID`AS`供应商号`,`supplier`.`supName`AS`供应商`,`supplier`.`supTEL`AS`联系电话`,`parts`.`part`AS`零件`,`parts`.`spec`AS`规格`,`parts`.`price`AS`价格`,`parts`.`mensuration`AS`计量单位`,`warehousing`.`inVolume`AS`入库量`,`warehousing`.`cmaker`AS`负责人`,`warehousing`.`inDate`AS`入库时间`from((`parts`join`warehousing`on((`parts`.`parID`=`warehousing`.`parID`)))join`supplier`on((`warehousing`.`supID`=`supplier`.`supID`)));--------------------------------Triggerstructureforparts_restore_update------------------------------DELIMITER;;CREATETRIGGER`parts_restore_update`AFTERINSERT,UPDATEON`restore`FOREACHROWbeginset@maxID=(selectMAX(resID)fromrestore);set@newparID=(selectparIDfromrestorewhereresID=@maxID);set@now_stoID=(selectstoIDfromrestorewhereresID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@res_volume=(selectresVolumefromrestorewhereresID=@maxID);updatestoragesetNow_volume=@old_now_volume+@res_volumewhereparID=@newparID;updatestorehouse40 setUsed_volume=@now_used_volume+@res_volumewherestoID=@now_stoID;end;;DELIMITER;--------------------------------Triggerstructureforparts_restore_delete------------------------------DELIMITER;;CREATETRIGGER`parts_restore_delete`BEFOREDELETEON`restore`FOREACHROWbeginset@maxID=(selectMAX(resID)fromrestore);set@newparID=(selectparIDfromrestorewhereresID=@maxID);set@now_stoID=(selectstoIDfromrestorewhereresID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@res_volume=(selectresVolumefromrestorewhereresID=@maxID);updatestoragesetNow_volume=@old_now_volume-@res_volumewhereparID=@newparID;updatestorehousesetUsed_volume=@now_used_volume-@res_volumewherestoID=@now_stoID;end;;DELIMITER;--------------------------------Triggerstructureforparts_stockout_update------------------------------DELIMITER;;CREATETRIGGER`parts_stockout_update`AFTERINSERT,UPDATEON`stockout`FOREACHROWbeginset@maxID=(selectMAX(outID)fromstockout);set@newparID=(selectparIDfromstockoutwhereoutID=@maxID);set@now_stoID=(selectstoIDfromstockoutwhereoutID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@out_volume=(selectoutVolumefromstockoutwhereoutID=@maxID);updatestoragesetNow_volume=@old_now_volume-@out_volumewhereparID=@newparID;updatestorehousesetUsed_volume=@now_used_volume-@out_volumewherestoID=@now_stoID;end;;40 DELIMITER;--------------------------------Triggerstructureforparts_stockout_delete------------------------------DELIMITER;;CREATETRIGGER`parts_stockout_delete`BEFOREDELETEON`stockout`FOREACHROWbeginset@maxID=(selectMAX(outID)fromstockout);set@newparID=(selectparIDfromstockoutwhereoutID=@maxID);set@now_stoID=(selectstoIDfromstockoutwhereoutID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@out_volume=(selectoutVolumefromstockoutwhereoutID=@maxID);updatestoragesetNow_volume=@old_now_volume+@out_volumewhereparID=@newparID;updatestorehousesetUsed_volume=@now_used_volume+@out_volumewherestoID=@now_stoID;end;;DELIMITER;--------------------------------Triggerstructureforparts_warehousing_update------------------------------DELIMITER;;CREATETRIGGER`parts_warehousing_update`AFTERINSERT,UPDATEON`warehousing`FOREACHROWbeginset@maxID=(selectMAX(inID)fromwarehousing);set@newparID=(selectparIDfromwarehousingwhereinID=@maxID);set@now_stoID=(selectstoIDfromwarehousingwhereinID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@in_volume=(selectinVolumefromwarehousingwhereinID=@maxID);updatestoragesetNow_volume=@old_now_volume+@in_volumewhereparID=@newparID;updatestorehousesetUsed_volume=@now_used_volume+@in_volumewherestoID=@now_stoID;end;;DELIMITER;------------------------------40 --Triggerstructureforparts_warehousing_detele------------------------------DELIMITER;;CREATETRIGGER`parts_warehousing_detele`BEFOREDELETEON`warehousing`FOREACHROWbeginset@maxID=(selectMAX(inID)fromwarehousing);set@newparID=(selectparIDfromwarehousingwhereinID=@maxID);set@now_stoID=(selectstoIDfromwarehousingwhereoutID=@maxID);set@now_used_volume=(selectUsed_volumefromstorehousewherestoID=@now_stoID);set@old_now_volume=(selectNow_volumefromstoragewhereparID=@newparID);set@in_volume=(selectinVolumefromwarehousingwhereinID=@maxID);updatestoragesetNow_volume=@old_now_volume-@in_volumewhereparID=@newparID;updatestorehousesetUsed_volume=@now_used_volume-@in_volumewherestoID=@now_stoID;end;;DELIMITER;406.2数据库备份和恢复方案6.2.1静态备份服务器不再进行数据更新,定期进行备份,使用mysqldump命令进行在线非块备份。1)全局备份:完整备份数据库shell>mysqldump--user=root--password=the_mysql_root_password--result-file=outputfile.sql--databaseswarehouse2)局部备份:备份具体某些表shell>mysqldump--user=root--password=the_mysql_root_password--result-file=outputfile.sql--databaseswarehousetable_name6.2.2动态备份运行服务器进行数据更新,用FLUSHLOGS或mysqladminflush-logs清空日志进行定期增量备份。如果mysqld在运行则停止,然后用--log-bin[=file_name]选项来启动。当想要进行增量备份时(包含上一次完全备份或增量备份之后的所有更改),应使用FLUSHLOGS回滚二进制日志。然后,你需要将从最后的完全或增量备份的某个时刻到最后某个点的所有二进制日志复制到备份位置。这些二进制日志为增量备份。下次进行完全备份时,还应使用FLUSHLOGS或mysqlhotcopy--flushlogs回滚二进制日志。另外可以使用事件对某个表数据进行自动定时备份,但那样占用相当的数据库系统资源处理事件,会影响服务器的性能。 6.2.3恢复备份1)静态数据恢复假定所备份的数据库已经存在,以管理员身份登录数据库,输入命令:>usebackup_database_name;>sourcebackup_name.sql;2)动态数据恢复1.恢复原mysqldump备份,或二进制备份。2.执行下面的命令重新更新二进制日志:shell>mysqlbinloghostname-bin.[0-9]*|mysql6.3界面设计²登录界面和用户管理界面²信息查询界面 ²零件信息管理界面和部门信息管理界面²供应商信息管理界面和零件入库管理界面²零件出库管理界面和零件还库管理界面²零件供应管理界面和部门需求管理界面 ²计划采购管理界面和仓库管理界面²主界面界面6.4关键代码1)创建用户并分配权限 1)修改用户(包括权限重新分配)2)根据不用用户分配不同的功能 二、系统测试方案 7.1登录测试l输入空账号l输入不存在的账号密码l输入正确的账号和错误的密码l输入正确账号和空密码7.2新建用户测试l创建一个已存在的账号l创建每种用户类型的空密码的账号l正常创建每种用户类型的账号(非空密码)l创建每种用户类型的空账号且空密码l创建每种用户类型的非空密码的空账号7.3更改用户测试l更改每种用户类型已存在的用户l更改每种用户类型一个不存在的用户l每种用户类型将一个非空密码的用户改为空密码l每种用户类型将一个空密码的用户改为空密码l每种用户类型将一个用户只更改权限l每种用户类型更改一个空账号密码的用户l每种用户类型更改一个空帐户但密码非空7.4删除用户测试l删除一个不存在的用户l删除一个已存在的用户l删除一个空用户7.5数据录入测试 l录入一条空记录l录入一条以上全部数据项非空记录l录入一条以上只填必填数据项的记录l录入一条以上只填非必填数据项的记录l对具有外键关联的表录入一条以上检验外键约束的记录l录入一条以上正确的记录l录入一条以上检验其他自定义完整性约束的记录7.6查询测试l正常查询一条以上记录l查询各种查非所查的记录l查询各种不对应选项的查询二、系统主要功能和使用说明本系统的主要功能如下表所示:不同的用户类型具有不同的功能。Inf用户类型:注销、登录、退出、信息查询;Dba用户类型:系统管理、仓库管理;Sys用户类型:系统管理、仓库管理、备份恢复。 正确登录系统,选择程序菜单上的菜单项进入相应的功能窗体进行操作。:第一条记录:最后一条记录:下上一条记录和下一条记录:添加一条记录和删除一条记录:提交改变和取消改变:编辑记录:刷新记录二、系统安装说明由于MyDAC插件的关系,插件存在着“MyDACtrialversionrequiesC++BuilderIDE”(MyDAC试用版依赖于C++BuilderIDE),所以安装有点麻烦。运行此程序必须安装C++Builder6.0、MyDAC5.70和MySQL5.1,运行此程序前必须先运行C++BuilderIDE。数据库连接及数据导入。安装好MySQL后以管理员登录,登录后输入命令:>createdatabasewarehousecharactersetgbk;导入数据,输入命令:>usewarehouse;>sourcewarehouse.sql;(如果warehouse.sql文件不是在当前目录,请指明warehouse.sql的详细目录)创建程序默认用户:>createuser"inf"@"localhost"identifiedby"inf";>createuser"dba"@"localhost"identifiedby"dba";>createuser"sys"@"localhost"identifiedby"sys";数据库连接:(1)进入Windows的控制面板,在控制面板中找到【数据源(ODBC)】选项并双击,进入【ODBC数据源管理器】对话框。如果控制面板中没有该选项可以在Windows目录下查找“odbcad32.exe”可执行文件并运行它。 (1)选择【系统DSN】选项卡并单击【添加】按钮,出现创建新数据源窗体,从中选择【MySQLODVBC5.1Drive】项。(2)单击【完成】按钮,出现数据源参数设置窗体,从中输入数据源的名称及数据源指向的服务器名称,本例输入的是warehouse和localhost,端口号为3306,数据库选择warehouse,填写完账号密码后点击【test】,测试成功后点击【OK】退出配置,完成MySQL的ODBC数据源的建立。二、心得体会 在这次数据库课程设计中,我花了3周的时间做需求分析和数据库设计,只用了不到一周的时间编写程序。开始时真的不知道该怎么做,仓库管理系统到底要创建哪些表,表里到底要有哪些数据项,这些都很模糊。于是就找别人的设计作参考,按着设计要求一步一步的设计。需求分析真的很重要,也不容易,比编程还难。在需求设计阶段,把系统的功能勾画出来,分析系统的数据字典、数据流向,画出E-R图,根据E-R图数据库设计关系模型,这样一步步下来,自己对仓库管理系统有更多的了解,对后面的程序编程也明朗了。在数据库设计的时候也花了不少的时间,多次的在数据库关系模型、E-R图和数据字典之间循环修改,重复的修改完整性定义,优化表格。在定义check完整时发现MySQL的check完整性定义失效,翻书发现原来MySQL对check的完整性定义还没有强化。等数据关系模型最终确定了,才开始设计索引和触发子。之后的编程就简单多了。在数据库设计期间,我是在设计的过程中就去创建数据库,建表,所以当修改完整性定义和数据项时现得相当麻烦,因为有主键外键的完整性定义在修改时就不好做了。最终结论,我该把数据库设计完后才去创建数据库创建完整性定义等等,还有一点是创建表时最好也把后面程序功能的需要考虑进来。在这次数据库课程设计中真的学到不少。参考文献[1]MySQL5.1参考手册http://dev.mysql.com/doc/refman/5.1/zh/introduction.html#features[2]Devart.comhttp://www.devart.com/mydac/[3]数据库系统概论(第四版)王珊萨师煊高等教育出版社2006.5[4]软件工程(第二版)李代平等编著清华大学出版社2008.1[5]MySQL开发者SQL权威指南(荷)RickF.vanderLans著许杰星李强等译机械工业出版社2008.1[6]学习MySQL(影印版)SeyedM.M."Saied"Tabagbogbi&HugbE.Williams著南京:东南大学出版社2007.6[7]C++Builder程序员成长攻略蒙祖强龚涛等编著北京:中国水利水电出版社2007.1毕业设计(论文)原创性声明和使用授权说明原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日 学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名):年月日学位论文出版授权书本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日 致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:年月日 毕业设计(论文)使用授权声明本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:年月日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。毕业论文的基本教学要求是:1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。撰写意义: 1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的总结性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际问题的能力。从文体而言,它也是对某一专业领域的现实问题或理论 问题进行科学研究探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。