甘一鸣 李东鑫 周航
(中国人民解放军海军潜艇学院 山东省青岛市 266000)
信息是管理上的一项重要资源,管理工作的成败取决于是否能够作出有效的决策,而决策的正确程度则在很大程度上取决于信息的质量。因此,有效的数据管理成为需要关心的首要问题。部队训练信息管理系统也不例外。随着信息技术的发展,管理信息系统(Management Information System,简称MIS)得到了迅速发展,并被广泛应用的各个领域。管理信息系统处理方式一般是通过整合现有的资源,然后将其数据化,建立数据库,再依据需求对数据进行相应的处理,最终形成各种资料信息,以数据的形式储存在信息系统的数据库中。管理信息系统为人们的工作和生活带来了便利,提高各行各业的生产效率,加快了我国的信息化,现代化进程。将管理信息系统引入到部队训练信息管理对提高部队训练信息管理的信息化水平具有十分重要的意义。
部队训练信息管理系统涉及到大量数据的储存,数据库是进行数据组织管理的重要手段,数据库结构设计的合理与否关系到整个系统的运行效果和运行效率,数据库的安全与稳定关系关系到整个系统的安全与稳定。合理的数据库设计可以减少软件开发和维护的成本,有利于节约资源,提高软件的运行速度,减少软件故障。因此,加强数据库设计可有效减少软件故障的发生几率,推动计算机软件功能的实现。本文将数据库的设计贯穿于软件从需求分析到设计实现的全流程,并通过数据库模型优化减少了数据冗余,降低了系统的空间占用率。
系统开发语言为JAVA。JAVA 语言是Sun 公司在1995年突出的面向对象的程序设计语言。JAVA 技术具有卓越的通用性、高效性和平台移植性和安全性,已广泛应用在很多领域。Java 可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。本系统主要采用的开发框架为SpringMVC,使用框架可以简化开发,提高开发效率。SpringMVC 是基于Java 语言实现MVC 设计模式的请求驱动类型的轻量级Web 框架,它提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC 以Spring 容器为基础框架,可以有效的提高代码的重用性和可扩展性,使Web 开发模块化及代码简化。
系统采用的数据库为Oracle 数据库。Oracle 数据库作为一种关系数据库管理系统,是Oracle(甲骨文)公司的核心产品,适合于大型项目的开发,其作为一种性能数据管理系统,系统适应性极强,可应用于多种微机环境中,系统本身可移植性相对较好,功能较强大,操作便捷。除此之外,Oracle 数据库还具有处理速度快,安全级别高等特点。因此,本系统选用Oracle 数据库来存储数据。
系统采用的开发架构为B/S(Browser/Server)架构,即浏览器和服务器架构模式,该架构是对C/S 架构的一种变化和改进的架构。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,服务器安装Oracle 数据库。浏览器通过Web Server 同数据库进行数据交互。B/S 架构主要有三层:浏览器、WEB 服务器和数据库服务器。浏览器,即客户端主要负责与用户进行信息交换,进行简单的输入输出;WEB 服务器作为浏览器和数据库服务器沟通的媒介,WEB 服务器可以将浏览器的请求发送给数据库服务器,同时将数据库服务器的数据转化成HTML 格式发送给浏览器;数据库服务器主要负责储存数据,并响应WE 服务器的请求。B/S 架构具有分布性特点,可以通过网络查询和处理业务,而且因为它是基于浏览器的架构,因此它的跨平台性较好。同时,它维护相对简单方便,只需要更改网页,就能实现系统的同步更新。
需求分析对计算机软件尤为重要。软件需求分析对软件的后期开发具有一定的指导作用,合理的软件需求分析可以将软件的功能、性能总体概括出来成为具体的规格说明,为软件开发指明方向。系统在开发前对数据库系统进行全面的需求分析,能够有效的减少数据库在系统运行过程中产生问题,和后续系统维护和升级的代价。数据库的设计是为训练管理系统服务的,需要对系统的功能、性能和运行环境等进行充分的分析,要满足系统的整体需求,并且需要定位其自身的规范及要求。准确、完整的储存,同时科学合理的管理数据,保证数据的准确性和完整性是设计数据库的最终目标。
部队训练信息管理系统主要功能包括三个部分:个人训练管理模块、部门训练管理模块和训练标准管理模块。其中,个人训练管理模块主要用来管理个人基本信息和个人训练的相关信息;部门训练管理模块主要用来给管理整个部门的训练信息;训练标准管理模块主要用于对专业和部门的训练标准进行管理。各个模块之间虽然功能相对独立,但是各个模块之间的数据是相互关联的,耦合度很高,一项数据的更新可能会引起多项数据的更新。例如:个人训练的有关信息不仅仅要更新个人训练信息,也会更新所在部门的训练信息;部门训练信息也会更新个人的训练信息;训练标准的信息更新也会影响到对应的部门以及个人的训练信息。
系统需要储存的数据主要包括:个人信息、部门训练信息、以及训练标准信息。其中,人员信息主要包括基础信息和训练信息。基础信息记录的数据项主要包括:姓名、性别、民族、出生日期、部门、专业、身份证号码等。训练信息记录的数据项主要包括:训练时间、训练科目、训练成绩等。部门训练包括部门人员情况、训练任务、部门训练情况、训练情况统计等。训练标准则包括各个专业和部门所有的训练指标和要求。
本文设计的数据库是部队训练信息管理系统的核心部分,数据库本身保持相对独立,数据库的稳定与否关系到整个系统的安全与稳定。
数据库在该系统的主要功能为:用户将部队日常训练数据通过客户端录入到服务器中,服务器再将数据存储到数据库中;数据库通过Web 服务器与客户端建立联系,按照用户的权限将用户需要的数据通过Web 服务器传输到客户端,并最终通过网页的形式向用户展示,用户也可以将需要的数据以word 和excel 的形式导出。客户端、Web 服务器和数据库的关系如图1 所示。
图1:数据库外部关系图
依据需求分析阶段的需求分析和数据库外部结构相关需求,本文采用自下而上逐步细化的设计方式,将用户、数据以及相关关系抽象成概念模型的实体、关系等概念结构模型,其整体关系E-R 图如图2 所示。
图2:整体关系E-R 图
其中,个人用户、个人训练、部门训练以及训练标准的具体信息如图3-图6 所示。
图3:个人用户信息图
图4:个人训练信息图
图5:部门训练情况图
图6:训练标准信息图
在图2-图6 中,将个人用户、个人训练、部门训练以及训练标准作为实体,用矩形框标识。每个实体都有其具体的属性,例如个人基础信息实体有姓名、性别、民族、出生年月、身份号码、部门以及专业等属性,个人训练信息实体有训练时间、训练项目、训练成绩等属性,部门训练信息实体有部门人员、部门训练任务、部门训练情况、部门训练统计等属性,训练标准信息实体有专业训练任务、专业训练要求、部门训练任务、部门训练要求等属性,这些属性用椭圆标识。两个有关联的实体之间联系使用菱形进行连接。每个用户依据相关专业都需要训练多个科目,因此用户基本信息和个人训练信息形成1:n 的关系。同理,每个部门都是由若干个人组成。因此,部门训练情况和个人训练情况形成1:n 的关系。而训练标准信息是个人训练和部门训练的依据,指导若干个部门和若干个人训练,因此训练标准和部门训练以及个人训练均形成1:n 的关系。
部队训练信息管理系统的数据库采用甲骨文公司的Oracle 数据库,版本号11.2.0.1.0。它是一种广泛用于的数据库系统,具有强大的数据存储和管理能力。根据E-R图,我们提取出五个实体分别是TRAIN_USER,TRAIN_INFO,TRAIN_DEP,TRAIN_ST。根据实体之间的关系,利用唯一标识ID 将实体与实体之间关联起来,根据前文分析,设计了个人用户信息表、个人训练信息表、部门训练信息表以及训练标准表,如图7 所示。
图7:数据库模型图
其中,个人用户信息表:保存个人用户的基本信息,包括属性:个人编号、姓名、性别、民族、部门编号、专业编号、岗位等,其中个人编号是主键;个人训练信息表:保存个人训练相关信息,包括:个人训练信息编号、训练项目、训练时间、训练成绩、个人用户编号等,其中个人训练编号是主键;部门训练信息表:保存部门训练相关信息,包括:部门训练编号、部门编号、部门人员信息、部门训练任务、训练情况、训练情况统计等,其中部门编号为主键;训练标准信息表:保存训练标准相关信息,包括训练标准编号、部门编号、部门训练任务、部门训练标准、专业编号、专业训练任务和专业训练标准,其中训练标准编号为主键。其中,个人编号作为训练信息表的外键,训练信息编号作为部门训练信息的外键,训练标准信息通过部门编号和部门训练信息相关联,通过专业编号和个人训练信息相关联。
为了使数据库设计的方法走向完备,数据库专家提出数据库规范化理论,按照属性间的依赖情况区分关系规范化的程度,根据不同程度的要求提出了六种范式。在进行数据库设计时,使用范式,可以用来减少数据冗余,同时可以保证数据的一致性和完整性。一般情况下,范式级别越高,数据库结构就会越清晰合理。但是,使用范式也会增加不同数据表之间的关联,如果关联过多,在数据的增加、删除、查询、更新会占用系统资源的开销,影响系统工作效率。因此,可以根据具体的需要增加一些必要的冗余,通过增大冗余的方式,减小系统开销,提高系统的工作效率。在实际的数据库应用中,可以根据具体的需要,灵活地运用数据库的范式。本文按照第三范式对数据库进行设计,规定每个非关键字的列都独立于其他分关键字列同时要依赖于关键字列,且数据库中不能存在函数依赖关系。例如,图7 所示中,表TRAIN_USER 存在USER_MAJORID和USER_MAJORNAME, 在TRAIN_ST 表中存在ST_MAJORID、ST_MAJORTASK 和ST_MAJORTOTAL。其中USER_MAJORNAME 依赖与USER_MAJORID,而不依赖于USER_ID, ST_MAJORTASK 和ST_MAJORTOTAL 依赖与ST_MAJORID 而不依赖于ST_ID。因此,根据相关的范式要求将属性USER_MAJORNAME、ST_MAJORTASK和ST_MAJORTOTAL 移除出来, 增加新表TRAIN_MAJOR, 表内存储ST_MAJORID、ST_MAJORTASK 和ST_MAJORTOTAL。原表中只存放对应的MAJOR_ID。同理,表TRANIN_ST 表中存在ST_DEP、ST_DEPTASK、ST_DEPTOTAL。 其 中,ST_DEPTASK、ST_DEPTOTAL依赖与ST_DEP 而不依赖于ST_ID。因此根据相关范式增加新表TRAIN_DEPTME,表内存储ST_DEPTASK、ST_DEPTOTAL 以及ST_DEP,原表中只存对一个对应的DEPTME_ID。通过以上优化,可以有效的减少数据冗余,降低空间占用率。同时经过测试和实际应用,基于本文设计的数据库模型的部队训练信息管理系统运行效率能够满足客户的需求。
管理信息系统是运用计算机和实际业务结合的典型系统,随着信息技术的发展,信息管理的网络化、虚拟化作为计算机管理信息系统未来的发展的趋势和方向,已引起了社会各界的广泛的关注。使用管理信息系统进行数据管理已成为数据管理的主要手段。数据库作为管理信息系统的核心,在其中起着至关重要的作用。良好的数据库设计可以节省数据的储存空间、保证数据的完整性和方便进行数据库应用系统的开发。反之,则会造成数据冗余、存储空间的浪费以及可能会带来数据更新和插入的异常。
本文以部队训练信息管理系统为例,从部队训练信息管理的实际需求出发,结合数据库的外部结构,对数据库进行了设计,同时结合第三范式的要求对数据库模型进行优化,减少了数据冗余,降低了空间占用率。经过测试和实际应用,基于本文设计数据库的开发的部队训练信息管理系统对数据进行的增加、删除、查询、更新操作的运行效率和运行效果能够满足部队训练信息管理的需求。