还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
信息管理系统课程设计目录TOC\o1-4\h\z\u1需求分析
51.1功能需求
51.2用户需求
51.3系统流图
51.4基本数据项及数据结构
61.5数据流条目
71.6数据存储条目
71.7__条目
71.8数据流图
91.9安全性要求
101.10完整性要求
112.概念结构设计
123.逻辑结构设计
133.1关系模型设计
133.2用户子模式设计
163.3系统结构图
203.4安全性设计
203.5完整性设计
204.数据库物理设计
224.1建立索引
224.3确定系统配置
224.4模块设计
245.数据库实施
255.1静态备份
255.2动态备份
255.3恢复备份
255.4界面设计
265.6关键代码
296.系统测试方案
326.1登录测试
326.2新建用户测试
326.3更改用户测试
326.4删除用户测试
326.5数据录入测试
336.6查询测试
337.系统主要功能和__使用说明
347.1系统功能
347.
2.系统__说明34结束语36____371需求分析
1.1功能需求该系统主要分为三大功能:___功能、信息安全功能、一般用户功能、报表生成1___功能产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息2信息安全功能人员权限区分、__记录、数据警告、计划备份、即时备份、数据恢复;3一般用户功能查询库内信息、查询出库信息、查询入库信息、修改本用户__;4报表生成库存信息报表生成
1.2用户需求根据用户需求,该系统应该实现以下功能1进、出库管理对进、出库信息进行记录2查询功能仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认3部门资料管理与库存报表生成资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理报表主要分类为日报表,月报表,销售报表,入库报表等等4由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确5许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作
1.3系统流图
1.4基本数据项及数据结构零部件信息包括的数据项有零件号、零件名称、规格、单价、描述仓库信息包括的数据项有仓库号、已用库存、库存总量、负责人、__号码供应商信息包括的数据项有编号、供应商、__号码、地址部门信息包括的数据项有部门号、名称、__数据项名称别名简述类型长度取值范围零件号-零件的编号字符型7第1位进口/国产I/D第2-4位类别第5-7位物资编号零件名称-零件的名称字符型20-规格-零件规格字符型10单价-零件的单位__货币型6默认计量单位元描述-零件描述/说明文本型--仓库号-仓库的编号字符型3-已用库存-仓库已用存储容量数值型60仓库非空=0空仓库0不允许库存总量-仓库总存储容量数值型60物资存量=0空仓库0不允许负责人-仓库负责人字符型20-供应商编号-供应商编号字符型3-供应商-供应商名称字符型20-地址-供应商__地址文本--部门号-公司部门编号字符型3-部门名-公司部门名称字符型20-__-__号码字符型15-
1.5数据流条目名称别名简述来源去向入库单-入库单位在把相应的零件送人仓库时必须填写的单据供应商库存出库单-领料人员从仓库中__零件时必须填写的单据库存公司部门客户还库单-零件使用后归还入库必须填写的单据公司部门库存需求单-对新零件需求所填写的单据公司部门库存采购单-__新零件所填写的单据采购员供应商
1.6数据存储条目名称别名简述组织方式查询要求仓库库存-存放索引文件,以仓库编号为关键字要求立即查询零件库存-存放索引文件,以零件编号为关键字要求立即查询
1.7__条目__名激发条件优先级输入输出零件入库接收到合格入库单时普通合格入库单库存满,零件成功入库__逻辑根据库存记录Loop:If入库物资的数量+物资现有存量=该物资库存量临界值Then物资存入仓库;物资现有存量=物资现有存量+入库物资的数量;Else物资库存已足,If物资现有存量=该物资库存量临界值Then结束,入库失败Endif;调整入库单;gotoloop,直到入库物资的数量+物资现有存量=该物资库存量临界值;Endif;零件入库;统计仓库库存已用量;__名激发条件优先级输入输出零件出库接收到合格出库单时普通合格出库单库存量不足,零件成功出库__逻辑根据库存记录Loop零件是否存在?是If需求单物资的数量该物资库存量的临界值Then零件出库物资现有存量=物资现有存量-出库零件的数量;Else物资短缺,If物资现有存量=物资最少存量Then结束,出库失败Endif;调整入库单;gotoloop,直到物资现有存量-出库零件的数量=该物资库存量临界值;Endif;否零件不存在,gotoloop;零件入库;统计仓库库存已用量;
1.8数据流图1本系统的顶层数据流图2细化后的数据流图3货物入库信息管理细化4货物出库信息管理细化
1.9安全性要求系统安全性要求至少达到TCSEC(TDI)的C1级即只提供了非常初级的自主安全保护能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播实行用户标识与鉴别,具有数据备份和日志审计功能
1.10完整性要求每个关系中都至少要有一个主键,并且都有一个聚集索引(ClusteredIndex)关系与关系之间通过主外键关联定义属性上的约束条件,定义触发器
2.概念结构设计
3.逻辑结构设计
3.1关系模型设计1仓库表storehouseNO.字段名代码类型约束1仓库号stoIDChar3主键2已用库存Used_volume__allint非空,默认0,unsigned,=All_volume3库存总量All_volume__allint非空,默认_____,unsigned4负责人principalVarchar20非空5__号码stoTELVarchar152零件表partsNO.字段名代码类型约束1零件号parIDChar7主键2名称partVarchar20非空3规格specChar104单价pri__Deci__l62非空,默认0,unsigned5计量单位mensurationChar4非空,默认“元”6描述descriptionText3供应商supplierNO.字段名代码类型约束1编号supIDChar3主键2供应商supNameVarchar20非空3__号码supTELVarchar15非空4地址addressText4部门表deptNO.字段名代码类型约束1部门号depIDChar3主键2名称depNameVarchar20非空3__depTELVarchar155库存表storageNO.字段名代码类型约束1仓库号stoIDChar3主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar7主键,与parts表中的parID外键关联,级联删除、更新3现有存量Now_volume__allint非空,默认0,=Min_volume,=__x_volume4最小存量Min_volume__allint非空,默认0,unsigned5最大存量__x_volume__allint非空,默认0,unsigned6供应表supplyNO.字段名代码类型约束1供应商号supIDChar3主键,与supplier表中的supID外键关联,级联删除、更新2零件号parIDChar7主键,与parts表中的parID外键关联,级联删除、更新3供应量supVolume__allint非空,默认0,unsigned4供应时间supDateTimestamp非空7部门需求表de__ndNO.字段名代码类型约束1零件号parIDChar7主键,与parts表中的parID外键关联,级联删除、更新2部门号depIDChar3主键,与dept表中的depID外键关联,级联更新、删除3需求数量demVolume__allint非空,默认0,unsigned4开始时间startTimeTimestamp非空5结束时间endTimeTimestamp非空8零件归还表restoreNO.字段名代码类型约束0编号resID__allint主键,AUTO_INCREMENT1仓库号stoIDChar3主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar7主键,与parts表中的parID外键关联,级联更新、删除3部门号depIDChar3主键,与dept表中的depID外键关联,级联更新、删除4归还数量resVolume__allint非空,默认0,unsigned5经手人c__kerVarchar20非空6归还者returnerVarchar20非空7归还时间resDateTimestamp非空9零部件采购计划表stockNO.字段名代码类型约束1零件号parIDChar7主键,与parts表中的parID外键关联,级联更新、删除2采购量stoVolume__allint非空,默认0,unsigned3供应商号supIDChar3与supplier表中的supID外键关联4采购时间stoDateTimestamp主键5采购员buyerVarchar2010入库表warehousingNO.字段名代码类型约束0编号inID__allint主键,AUTO_INCREMENT1仓库号stoIDChar3主键,与storehouse表中的stoID外键关联,级联删除、更新2供应商号supIDChar3非空,与supplier表中的supID外键关联3零件号parIDChar7主键,与parts表中的parID外键关联,级联更新、删除4入库数量inVolume__allint非空,默认0,unsigned5经手人c__kerVarchar20非空6入库时间inDateTimestamp非空,默认当前时间11出库表stockoutNO.字段名代码类型约束0编号outID__allint主键,AUTO_INCREMENT1仓库号stoIDChar3主键,与storehouse表中的stoID外键关联,级联删除、更新2零件号parIDChar7主键,与parts表中的parID外键关联,级联更新、删除3出库数量outVolume__allint非空,默认0,unsigned4使用者userVarchar20非空5经手人c__kerVarchar20非空6__人re__iptorVarchar20非空7出库时间outDateTimestamp非空,默认当前时间
3.2用户子模式设计1仓库信息视图storehouse_viewNO.字段名代码类型备注1仓库号stoIDChar3连storehouse表2已用库存Used_volumeInt连storehouse表3库存总量All_volumeInt连storehouse表4负责人principalVarchar20连storehouse表6__号码stoTELVarchar15连storehouse表2零部件库存视图parts_storage_viewNO.字段名代码类型备注1仓库号stoIDChar3连storage表2零件号parIDChar7连parts表3名称partVarchar20连parts表4规格specChar10连parts表5单价pri__Deci__l62连parts表6计量单位mensurationChar4连parts表7现有存量Now_volume__allint连storage表8最小存量Min_volume__allint连storage表9最大存量__x_volume__allint连storage表3零部件入库视图warehousing_viewNO.字段名代码类型备注0仓库号stoIDChar3连warehousing表1零件号parIDChar7连parts表,更新warehousing表的parID项2供应商号supIDChar3连supplier表3供应商supNameVarchar20连supplier表4__supTELVarchar15连supplier表5零件名partVarchar20连parts表NO.字段名代码类型备注6规格specChar10连parts表7单价pri__Deci__l62连parts表8计量单位mensurationChar4连parts表9入库数量inVolume__allint连warehousing表,更新parts_storage_view视图的Now_volume项10描述descriptionText连parts表11经手人c__kerVarchar20连warehousing表12入库时间inDateTimestamp连warehousing表4零部件出库视图stockout_viewNO.字段名代码类型备注0仓库号stoIDChar3连stockout表1零件号parIDChar7连parts表,更新stockout表的parID项2出库数量outVolume__allint连stockout表,更新storage表的now_volume3使用单位userVarchar20连stockout表4经手人c__kerVarchar20连stockout表5__人re__iptorVarchar20连stockout表6出库时间outDateTimestamp连stockout表5零部件计划采购视图stock_viewNO.字段名代码类型备注1零件号parIDChar7连stock表2采购量stoVolume__allint连stock表3供应商号supIDChar3连supplier表,更新stock表的supName4__supTELVarchar15连supplier表NO.字段名代码类型备注5__pri__Deci__l62连parts表6计量单位mensurationChar4连parts表7规格specChar10连parts表8采购时间stoDateTimestamp连stock表9采购员buyerVarchar20连stock表6部门需求视图de__nd_viewNO.字段名代码类型备注1零件号parIDChar7连de__nd表2部门号depIDChar3连de__nd表3需求数量demVolume__allint连de__nd表4开始时间startTimeTimestamp连de__nd表5结束时间endTimeTimestamp连de__nd表7供应商零件供应视图supply_viewNO.字段名代码类型备注1供应商号supIDChar3连supplier表2零件号parIDChar7连supply表3单价pri__Deci__l62连parts表4计量单位mensurationChar4连parts表5规格specChar10连parts表6供应量supVolume__allint连supply表7供应时间supDateTimestamp连supply表8__supTELVarchar15连supplier表8零部件归还入库视图restore_viewNO.字段名代码类型备注0仓库号stoIDChar3连restore表1零件号parIDChar7连restore表2部门号depIDChar3连restore表3归还数量resVolume__allint连restore表4经手人c__kerVarchar20连restore表5归还者returnerVarchar20连restore表6归还时间resDateTimestamp连restore表
3.3系统结构图
3.4安全性设计用户类别有信息查询员inf,仓库___dba和系统___sys他们的权限分别为信息查询员inf只有信息查询的权限仓库___dba具有信息查询,更新,删除,报单打印权限系统___sys除具有仓库___dba所有权限外,还具有用户管理,数据恢复备份
3.5完整性设计各表中各个字段的完整性约束已在“
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
4.数据库物理设计
4.1建立索引各表索引设计如下表名索引字段索引类型排列次序唯一值零件零件号聚集索引升序√零件名非聚集索引升序供应商供应商号聚集索引升序√供应商名非聚集索引升序部门部门号聚集索引升序√部门名非聚集索引升序库存零件号非聚集索引升序供应供应商号非聚集索引升序零件号非聚集索引升序供应时间聚集索引降序部门需求零件号非聚集索引升序部门号非聚集索引升序开始时间非聚集索引降序结束时间非聚集索引降序零件归还归还时间聚集索引降序零件号非聚集索引升序部门号非聚集索引升序零件采购零件号非聚集索引升序采购时间聚集索引降序零件入库入库时间聚集索引降序零件号非聚集索引升序零件出库出库时间聚集索引降序零件号非聚集索引升序确定数据的存放位置该数据库的数据文件都存放在MySQL的__目录的/data/warehouse文件夹下.
4.3确定系统配置1运行环境操作系统Windows2003或WindowsXP,以上2数据库配置#适合于内存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_TABLESNO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTION__x_connections=447query_cache_size=12Mtable_cache=128tmp_table_size=8Mthread_cache_size=4myisam___x_sort_file_size=100Gmyisam___x_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_webserver\mysql\log\sql.loglog-output=FILE
4.4模块设计仓库管理HIPO图
5.数据库实施
5.1静态备份服务器不再进行数据更新,定期进行备份,使用mysqldump命令进行在线非块备份1全局备份完整备份数据库shellmysqldump--user=root--password=the_mysql_root_password\--result-file=outputfile.sql--databaseswarehouse2局部备份备份具体某些表shellmysqldump--user=root--password=the_mysql_root_password\--result-file=outputfile.sql--databaseswarehousetable_name
5.2动态备份运行服务器进行数据更新,用FLUSHLOGS或mysqladminflush-logs清空日志进行定期增量备份如果mysqld在运行则停止,然后用--log-bin[=file_name]选项来启动当想要进行增量备份时包含上一次完全备份或增量备份之后的所有更改,应使用FLUSHLOGS回滚二进制日志然后,你需要将从最后的完全或增量备份的某个时刻到最后某个点的所有二进制日志__到备份位置这些二进制日志为增量备份下次进行完全备份时,还应使用FLUSHLOGS或mysqlhotcopy--flushlogs回滚二进制日志另外可以使用__对某个表数据进行自动定时备份,但那样占用相当的数据库系统资源处理__,会影响服务器的性能
5.3恢复备份1静态数据恢复假定所备份的数据库已经存在,以___身份登录数据库,输入命令usebackup_database_name;sour__backup_name.sql;2动态数据恢复
1.恢复原mysqldump备份,或二进制备份
2.执行下面的命令重新更新二进制日志shellmysqlbinloghostname-bin.[0-9]*|mysql
5.4界面设计登录界面和用户管理界面信息查询界面零件信息管理界面和部门信息管理界面供应商信息管理界面和零件入库管理界面零件出库管理界面和零件还库管理界面零件供应管理界面和部门需求管理界面计划采购管理界面和仓库管理界面主界面界面
5.6关键代码1创建用户并分配权限2修改用户(包括权限重新分配)3根据不用用户分配不同的功能
6.系统测试方案
6.1登录测试输入空账号输入不存在的账号__输入正确的账号和错误的__输入正确账号和空__
6.2新建用户测试创建一个已存在的账号创建每种用户类型的空__的账号正常创建每种用户类型的账号(非空__)创建每种用户类型的空账号且空__创建每种用户类型的非空__的空账号
6.3更改用户测试更改每种用户类型已存在的用户更改每种用户类型一个不存在的用户每种用户类型将一个非空__的用户改为空__每种用户类型将一个空__的用户改为空__每种用户类型将一个用户只更改权限每种用户类型更改一个空账号__的用户每种用户类型更改一个空帐户但__非空
6.4删除用户测试删除一个不存在的用户删除一个已存在的用户删除一个空用户
6.5数据录入测试录入一条空记录录入一条以上全部数据项非空记录录入一条以上只填必填数据项的记录录入一条以上只填非必填数据项的记录对具有外键关联的表录入一条以上检验外键约束的记录录入一条以上正确的记录录入一条以上检验其他自定义完整性约束的记录
6.6查询测试正常查询一条以上记录查询各种查非所查的记录查询各种不对应选项的查询
7.系统主要功能和__使用说明
7.1系统功能本系统的主要功能如下表所示不同的用户类型具有不同的功能由于MyDAC插件的关系,插件存在着“MyDACtrialversionrequiesC++BuilderIDE”(MyDAC试用版依赖于C++BuilderIDE),所以__有点麻烦运行此程序必须__C++Builder
6.
0、MyDAC
5.70和MySQL
5.1,运行此程序前必须先运行C++BuilderIDE数据库连接及数据导入__好MySQL后以___登录,登录后输入命令createdatabasewarehousecharactersetgbk;导入数据,输入命令usewarehouse;sour__warehouse.sql;如果warehouse.sql文件不是在当前目录,请指明warehouse.sql的详细目录创建程序默认用户createuserinf@localhostidentifiedbyinf;createuserdba@localhostidentifiedbydba;createusersys@localhostidentifiedbysys;数据库连接
(1)进入Windows的控制面板,在控制面板中找到【数据源ODBC】选项并双击,进入【ODBC数据源管理器】对话框如果控制面板中没有该选项可以在Windows目录下查找“odbcad
32.exe”可执行文件并运行它
(2)选择【系统DSN】选项卡并单击【添加】按钮,出现创建新数据源窗体,从中选择【MySQLODVBC
5.1Drive】项
(3)单击【完成】按钮,出现数据源参数设置窗体,从中输入数据源的名称及数据源指向的服务器名称,本例输入的是warehouse和localhost,端口号为3306,数据库选择warehouse,填写完账号__后__【test】,测试成功后__【OK】退出配置,完成MySQL的ODBC数据源的建立结束语在这次数据库课程设计中,我学习到很多知识,开始时真的不知道该怎么做,仓库管理系统到底要创建哪些表,表里到底要有哪些数据项,这些都很模糊在老师的指导下才知道怎样去做我认为,需求分析真的很重要在需求设计阶段,把系统的功能勾画出来,分析系统的数据字典、数据流向,画出E-R图,根据E-R图数据库设计关系模型,这样一步步下来,自己对仓库管理系统有更多的了解,对后面的程序编程也明朗了在数据库设计的时候也花了不少的时间,多次的在数据库关系模型、E-R图和数据字典之间循环修改,重复的修改完整性定义,优化表格在定义check完整时发现MySQL的check完整性定义失效,翻书发现原来MySQL对check的完整性定义还没有强化等数据关系模型最终确定了,才开始设计索引和触发子之后的编程就简单多了在数据库设计期间,我是在设计的过程中就去创建数据库,建表,所以当修改完整性定义和数据项时现得相当麻烦,因为有主键外键的完整性定义在修改时就不好做了最终结论,我把数据库设计完后才去创建数据库创建完整性定义等等,还有一点是创建表时最好也把后面程序功能的需要考虑进来在这次数据库课程设计中真的学到不少____
[1]数据库系统概论(第四版)王珊萨师煊高等教育出版社
2006.5
[2]软件工程(第二版)李代平等编著清华大学出版社
2008.1
[3]MySQL__者SQL权威指南(荷)RickF.vanderLans著许杰星李强等译机械工业出版社
2008.1
[4]学习MySQL(影印版)SeyedM.M.SaiedTabagbogbiHugbE.Williams著南京东南大学出版社
2007.6
[5]C++Builder程序员成长攻略蒙祖强龚涛等编著北京中国水利水电出版社
2007.1仓库管理系统存储文件出库信 息处理入库信息处理库存操作采购货物入库入库信息定货报告查询操作购货商需求表出库信息表库存报表供货商出入库库存报表。