周一至周五 | 9:00—22:00

期刊论文网 > 管理论文 > 科研管理论文 > 科研管理类论文 科研信息管理系统设计与实现

科研管理类论文 科研信息管理系统设计与实现

2018-12-02 12:00:20来源:组稿人论文网作者:婷婷

  摘要

  科研信息作为一种信息,其一直以来在我国我国高校中具有极其重要的位置,所以管理这样的信息也显得极为重要,在管理方面,和大多数的事物发展进程一样,初始,都是手动进行处理后来发展演变成一种管理系统的方式进行有效的处理,其方式方便简洁和安全,这种管理系统的以新的方式出现,不仅解决了高校职能部门和教师在科研信息管理数据方面的繁杂问题,而且成为了一种稳定可靠的工作平台,解决了许多数据难处理的问题。在科研信息管理系统中,其包含了许多的功能,老师的任务要求包含在内,其内容是十二个模块,分别为:第一大框架的就是管理人员:其中的系统用户管理模块,也就是对系统用户的信息进行管理,包括的内容为对管理员信息管理和密码的修改等;学院设置管理模块,代表着对学校的学院信息进行设置管理,可以对学院进行查询,新增,修改以及删除等一系列操作;科研人员管理模块,此模块能够对科研人员的基本信息如姓名,性别,地址等基本信息进行管理,并且对科研人员信息进行增,删改,查等操作,同时还可以设置人员登录的密码;科研奖励管理模块,这个功能就是对科研人员的科研奖励相关的信息进行管理;学术活动管模块,其设置了学术活动相关信息的管理的功能呢,针对学术的活动方面进行有效快捷的管理功能;数据备份模块,是对数据库信息进行备份管理以进行数据的保存。第二大框架就是科研人员:人信息管理模块,就是针对个人的基本信息如姓名地址等进行管理,增删改查等;论文信息管理模块,对科研论文的基本信息进行管理;科研项目管理模块,管理了个人的科研项目信息的功能,针对科研项目信息进行增删改查;研成果管理,可以实现在线查看个人的科研成果信息。为了这些功能的出现,综合上述需求再结合系统的设计目标,本文采用Spring、Struts和Hibernate结合的架构为基础,在此之上进行整合和开发,来满足系统在性能、稳定、功能等方面的需求。在科研管理信息系统的详细设计部分,本文首先描述了系统数据库的设计,并且通过图的方式描述了数据库的设计,然后对系统的整体功能结构进行了介绍,并提供了系统主要功能的设计框图。此外又对系统的若干重要部分的设计和特色功能设计进行了详细描述。接下来,本文对科研管理信息系统的各个功能模块的实现做了介绍,然后对于较为重要的部分功能以及流程管理模块的实现做了详细的说明。此外,对系统实现中应用的技术进行了描述,并对详细设计中提到的部分特色功能的实现进行了截图说明。最后,本文对科研管理信息系统的应用情况作了简单介绍,并且提出了系统进一步改进的建议。综上所述,本文在对科研信息及其业务的需求进行研究的基础上,设计并开发实现了一个具有科研信息导入、科研信息采集、科研信息审核和人员基本信息管理等功能科研管理信息系统,该系统作为学校科研数据管理的平台为学校的学术研究部提供技术服务。

  关键词:eclipse,Java,SQL,科研管理,用户,终端机器

  选题背景

  计算机管理信息系统的发展情况

  1958年美国首先提出了“管理信息系统”(即MIS:Management Information Systems),从而也引出了另外一个概念——“管理信息系统”。综合其多种定义以及根据在实际中的应用,管理信息系统可以定义为是一个由人、计算机系统等组成的,能进行信息处理的人机系统,它反映企业的生产经营情况,利用过去、当前的数据预测未来,从企业全局出发辅助企业进行管理与决策。它具有以下特征:

  现代管理信息系统是一个以计算机为基础的一个人机系统。

  管理信息系统是一个集成化的系统。

  管理信息系统是一个以数据库为中心的系统。

  管理信息系统是一个网络化的系统。

  管理信息系统不同于一般的数据处理系统。

  由于企业类型不同,企业的战略计划不同,企业的管理模式不径相同等因素,实际的管理信息系统的动能会不同。但是从抽象意义上来说,无论什么企业,其管理信息系统的功能相同。一般分为数据处理、辅助管理决策两大功能。管理信息系统的数据处理功能以完成企业相关数据的收集、存储、加工、传输和输出,提供信息服务。它是管理信息系统的基本功能;辅助管理决策功能即指对企业生产经营中的结构化决策问题,采用管理信息系统相关学科中提出的定量方法,建立问题的模型,求解问题,获得解决问题的方法。

  斯隆认为用户对管理信息系统的需求分为四类:

  事务型:是一种例行处理要求,辅助日常事务。例如商业企业的商品进销存的管理。

  异常型:其处理要求是当某状态超出事先设置的阈值,则系统能够发出警报。例如财务中对某些科目设置报警值,一旦超值则对该科目的开支进行控制。

  查询型:要求管理信息系统具有灵活的查询能力,满足用户的信息需要。

  分析型:提供强有力的分析能力,借助数据、模型支持决策,以回答“如果……那么……”诸如此类的问题。

  自从管理信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年时间。而且,管理信息系统已经广泛应用于各行各业。虽然,我国的企业计算机管理信息系统建设在20世纪80年代就已经开始起步,但发展极不平衡,也就是说大部分企业目前仍处于低水平开发和应用阶段。随着经济体制的改革和市场经济的发展,企业的运行机制有了很大变化。企业的生产更多地依赖于市场的竞争,信息从而成为企业的重要资源,企业信息系统的建设已成为企业走向现代化的重要标志,企业信息系统对于企业的运作以及在市场中的竞争具有重要作用。在当前形势下,信息化是企业发展的必由之路。

  世界经济发展已进入一个激烈竞争的年代,可以说,谁先获得信息,谁就有可能抓住发展经济的机遇。同样,谁能很好地管理和利用信息,谁就有可能占领市场,获得效益。国内外大量事实已说明:在目前这个激烈竞争的市场经济中,谁的信息管理现代化水平高,谁重视信息资源的开发和利用,谁就能抓住机遇,在竞争中取胜。

  科研信息管理的现状

  目前,国内外高校科研成果管理一般采用两种方式:一种是纯手工将信息记录在册,然后统一编号存档;另一种则是利用单机版或局域网版的很老的管理软件进行管理,将手工收集到的数据录入到电脑中,然后经由功能划分很不科学的软件进行处理。但这两种方法都有各自的弊端:前一种方法由于信息收集者的文化水平不一,字迹各不相同,所以他们之间的信息传递过程不免会产生一些失误和断裂,造成数据不完整,而且纸质信息载体有一个很致命的弱点,那就是信息保存时间和保存条件都很受限制,时间长了不免会造成信息的缺失;后一种方法虽然解决了信息保存时间短、信息容易丢失的问题。但存在一个更致命的缺点:由于软件系统过老,某些功能规划和划分不科学,所以在操作方面存在很大的脱节,而且在数据库安全问题方面也存在着一定的缺陷。在当前的信息化时代中,任何单位,都需要一个实用的高校科研成果管理系统来规范高校科研成果管理,这将会大大提高单位的管理水平,优化资源,实现效益的最大化。

  现在国内外也有很多高校科研成果管理的软件,采用的技术也是多种多样,如基于JSP、FTP模式,但大多数高校科研成果管理系统主要用于大型单位。至于小型单位,利用高校科研成果管理系统组织管理教学活动的并不多。针对国内外对档案管理系统的巨大需要和基本需要,一个好的档案管理软件,必须功能齐全,操作简便,向用户展示友善的操作界面。在完善功能的同时又必须兼顾系统的灵活性,安全性,健壮性。一个好的教学管理系统,不管是计算机专业人员还是其他用户都能很快上手,操作简单,便于安装,容易普及。

  科研项目管理的优势

  由于档案功能的特殊定位,致使管理员和档案操作员必须在除了简单的上下级区别外,还有合作意味的关系。所以,这其中的信息管理流程,需要以一个规范的MIS来管理。

  高校科研成果管理系统的优势主要表现在三个方面:

  1、毕业设计无纸化,环保又方便。传统的档案管理方式,都是经由档案信息收集员先进行信息收集,再进行录入电脑工作,再经由局域网等形式汇总,这其中一个涉及时间迟滞性,还有就是工作效率极其低下。这种传统的纸质高校科研成果管理,一是会有很大的体力消耗,二是在精力上也是不小的付出,而且这种辛苦在很多时候往往没能得到满意的回复。而无纸化毕业设计,只需在电脑前点点鼠标,在体力上几乎没有多大的消耗,而且在环保、效率、针对性教学指导方面做得要比传统的高校科研成果管理科学得多。

  2、科学管理,安全可靠。传统的高校科研成果管理方式,都是一份份独立的信息,一个档案对应一份,而这么一撂的设计,经常会由于各种原因,丢失或是污损,给高校科研成果管理和教学进程带来很大的麻烦和不便。而高校科研成果管理系统的动作,只需做好系统数据库的保护,以上问题可以迎刃而解了。

  3、简化工作,促进其他方面的综合发展。由于高校科研成果管理系统的介入运行,可以使工作人员腾出更多的时间,做更多针对性的服务。

  任务概述

  目标:建立完善的科研成果管理系统系统

  科研成果管理系统特点

  1、简约的系统操作界面

  整个系统的操作界面,界限明晰,人机界面美观,操作极具人性化。

  2、完备的系统操作功能

  系统开发的宗旨是最简约的操作步骤最完备的操作功能。这好像很矛盾,但是经过完整的策划编排,系统完全做到了功能无冗余无遗漏,这点也更好的体现了系统的人性化设计。

  3、完善的安全机制:独立的密码校验功能,确保用户和系统的数据有较好的安全性。

  系统分析

  新系统的功能目标

  建立科研基本情况信息库

  信息库能够存储并且提供科研人员的详细信息,从而为校科研处进行科技成果统计提供准确的所需数据,对科研项目定期静态监控的功能使用。

  综合的科研信息统计功能

  统计功能分为两个方面:

  第一:对于不同职称、不同岗位的科研人员发表的论文、出版的教材和著作和相对应的获得的各类科研成果奖励、科研专利等科研成果以及属于纵横向来源的科研项目可以进行统计数据。

  第二:对于第一作者为分院科研人员的论文、著作、教材等及以分院为第一完成单位的科技成果、项目进行统计,为分院科研考核也可以提供统计数据的功能。

  科研考核功能

  统计并且分析各项科研业绩,比如各个部门、各位教师的工作量,等等,通过这些数据来考核科研业绩。

  方便快捷的科研信息查询功能

  科研人员信息、科研项目信息、科研成果信息及学术交流信息可以被查询,在不同的条件都可以采用这个功能。

  操作简便的科研信息输出并且制成报表功能

  能输出科研项目信息、科研成果信息管理及学术交流信息的日常报表和年报表。

  业务流程分析

  通过对各学院科研现行业务流程的分析,得到新系统业务流程图如下所示:

  科研项目系统总的业务流程

  功能需求分析

  系统应当具备以下功能:

  管理员:

  系统用户管理:对系统用户的信息进行管理,包括对管理员信息管理和密码的修改等。

  学院设置管理:对学校的学院信息进行设置管理,可以对学院进行新增,修改以及删除等操作。

  科研人员管理:能够对科研人员的基本信息进行管理,对科研人员信息进行增,删改,查等操作,也能设置人员登录的密码。

  科研奖励管理:对科研人员的科研奖励信息进行管理。

  学术活动管理:设置了学术活动信息的管理,针对学术活动,进行了有效的管理。

  数据备份:对数据库信息进行备份管理。

  科研人员:

  个人信息管理:针对个人的基本信息进行管理,修改等。

  论文信息管理:对科研论文的基本信息进行管理。

  科研项目管理:管理了个人的科研项目信息,针对科研项目信息进行增删改查。

  科研成果管理:可以在线查看个人的科研成果信息。

  如图所示:

  科研信息管理系统的主要功能的数据库表的内容如下:

  科研人员信息表(职工号,姓名,性别,职称,出生日期,所学专业,现从事专业,学历,学位,工作时间,所在部门,备注)。

  论文信息表(序号,论文名称,刊物名称,刊物类别,刊物级别,主办单位,作者,职工号,发表时间,刊号,备注)。

  科研项目表(序号,项目编号,项目名称,项目来源,项目类别,完成单位,科研人员,课题组成员,立项时间,拟定期限,经费金额,是否鉴定,鉴定时间,鉴定单位,备注)。

  科研成果表(序号,成果名称,成果类别,成果经费,完成时间,科研人员,完成单位,是否投入生产,经济效益,备注)。

  科研奖励表(序号,获奖人员,项目名称,奖励名称,授予单位,时间,备注)。

  校级项目管理表(项目编号,项目名称,课题名称,科研人员,所在部门,职务或职称,联系电话,申报表,申报时间,申报经费,是否批准,批准日期,批准经费,合同时间,合同内容,是否结题,结题时间,鉴定技术科研人员,项目成果效益,备注)。

  数据流程分析

  业务流程图虽然科研比较形象地表达系统中信息数据的的流动和存储过程,但是仍然的还是需要一些像科研成果信息表单等表单数据的表达的。因为设计的科研管理系统是通过计算机对科研人员信息、科研信息等各种信息数据进行处理,所以还是需要将表单这些不如计算机系统的数据进行去除的,随后便开始进行数据流程分析,通过分析从而来反映数据在系统中的流动、处理及存储情况,这就是数据流程。数据流程图的特点是它有它的概括性,它对数据和数据存储只是进行概括性的简单描述,也是因为它的这个特点在科研管理系统的维护和在进一步来改进两方面是有一定的局限性,这个问题需要被解决,那么如何解决呢?就是通过建立数据字典,对数据流程图中各个元素做对应的详细说明。这样可以更好的明白数据是如何储存处理的,这种详细的表达,会让系统被更好的维护。

  数据流程图

  数据流程图图例:

  外部实体处理

  数据流数据存储

  数据字典

  建立数据字典是为了对数据流程图中的各个元素进行详细说明。数据字典的主要是对数据流程图中的数据项,数据流,处理逻辑,数据存储和外部实体等方面进行具体的定义。数据字典是在文字方面对系统的逻辑模型进行相对应的描述。

  数据项的描述

  数据项的定义的内容:序号、数据项的名称、编号、别名和简述;数据项的长度;数据项的取值范围;备注。

  allusers表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102usernameVarChar50是2553pwdVarChar50是2554cxVarChar50是2555addtimeDateTime8是23

  keyanchengguo表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102chengguomingchengVarChar50是2553chengguoleibieVarChar50是2554chengguojingfeiVarChar50是2555wanchengshijianVarChar50是2556fuzerenVarChar50是2557wanchengdanweiVarChar50是2558shifoutourushengchanVarChar50是2559jingjixiaoyiVarChar50是25510beizhuVarChar50是25511addtimeDateTime8是23

  keyanjiangli表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102huojiangrenyuanVarChar50是2553xiangmumingchengVarChar50是2554jianglimingchengVarChar50是2555shouyudanweiVarChar50是2556shijianVarChar50是2557beizhuVarChar50是2558addtimeDateTime8是23

  keyanrenyuan表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102zhigonghaoVarChar50是2553xingmingVarChar50是2554xingbieVarChar50是2555zhichengVarChar50是2556chushengriqiVarChar50是2557suoxuezhuanyeVarChar50是2558xiancongshizhuanyeVarChar50是2559xueliVarChar50是25510xueweiVarChar50是25511gongzuoshijianVarChar50是25512suozaibumenVarChar50是25513beizhuVarChar50是25514mimaVarChar50是25515addtimeDateTime8是23

  keyanxiangmu表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102xiangmubianhaoVarChar50是2553xiangmumingchengVarChar50是2554xiangmulaiyuanVarChar50是2555xiangmuleibieVarChar50是2556wanchengdanweiVarChar50是2557fuzerenVarChar50是2558ketizuchengyuanVarChar50是2559lixiangshijianVarChar50是25510nidingqixianVarChar50是25511jingfeijineVarChar50是25512shifoujiandingVarChar50是25513jiandingshijianVarChar50是25514jiandingdanweiVarChar50是25515beizhuVarChar50是25516addtimeDateTime8是23

  lunwenxinxi表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102lunwenmingchengVarChar50是2553kanwumingchengVarChar50是2554kanwuleibieVarChar50是2555kanwujibieVarChar50是2556zhubandanweiVarChar50是2557zuozheVarChar50是2558zhigonghaoVarChar50是2559fabiaoshijianVarChar50是25510kanhaoVarChar50是25511beizhuVarChar50是25512addtimeDateTime8是23

  xueshuhuodong表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102biaotimingchengVarChar50是2553shijianVarChar50是2554leixingVarChar50是2555neirongVarChar50是2556fujianVarChar50是2557addtimeDateTime8是23

  xueyuanxinxi表:

  序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号102xueyuanVarChar50是2553addtimeDateTime8是23

  系统设计

  硬件环境

  (1)后台数据库服务器:

  因为作为数据库服务器,需要完成高密度的运算量,所以应采用较高档的服务器。此外再考虑到与软件的兼容性,建议采用Intel Pentium 4多处理器系统、256MB RAM、80GB以上硬盘。

  (2)客户机:

  建议采用Intel PentiumⅣ多处理器系统、128MB RAM、20GB以上硬盘。

  (3)网络配置:建议10M/100M网络带宽、100Mb/s网卡、16口交换机。

  软件环境

  操作系统的选择

  我们要求操作系统拥有不错的易用性、安全性和稳定性,考虑到Windows 7系列在环境变量的设置上和服务的管理上都比较方便,故采用Windows 7 Professional SP3。如果是服务器的操作系统,则选择Windows 2008 Server SP1更合适。

  Web服务器的选择

  WebLogic是BEA

  公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范。另一个常用的Web服务器是IBM公司的WebSphere,也支持J2EE规范。但是,考虑到我们目前开发的是一个小型的科研信息管理系统,简单的默认浏览器就可以。

  数据库的选择

  在Java相关的开发领域中,常用的是4种数据库分为这些Oracle,SQL Server,DB2和MySQL。首先我对这几种数据库做了一些比较:Oracle数据库是Oracle公司的产品,有着最有悠久的历史,是世界前50强的企业,80%的人使用Oracle数据库是用在公司的数据库服务器上,属于大型经典的一种数据库。DB2是IBM公司的,也是一种常用的数据库,在IBM公司的WebSphere下可以组合,可以构成一种完整的企业级解决方案,也通常适用于企业。MySQL属于一种小型数据库服务器,它有个免费的优点,所以一般实际应用中是比较好的。接下来就是SQL Server,它的优点是由Microsoft公司开发,和我们所要用的计算机系统和相关的软件是相互兼容的,还支持集成性安全检测,不需要Oracle如此的庞大,不需要要求很很高的系统性能,并且呢,SQL Serve对系统的资源消耗会比较小。所以,最后在比较下还是选择SQL Serve作为我们的后台数据库。

  集成开发环境的选择

  Web服务器和数据库服务器构成了发布平台,需要选择合适的开发工具以提高编码的效率,目前有两种常用的企业级集成开发环境,JBuilder和WebSphere Studio。JBuilder是Borland公司的产品,支持几乎全部的J2EE组件,是目前最为常用的开发环境。

  体系结构选择

  目前C/S(Client/Server)结构的应用程序非常的普及,但是要使用程序就必须先安装,并且应用的范围基本局限在局域网上。本次设计根据协同学习系统面向全社会用户的特点,采用B/S(Browser/Server)结构的设计方案,用户只要能上网,就能轻松的登录协同学习系统并完成各项操作。

  3.3开发环境MyEclipse10简介

  MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。桌面和Web开发技术,包括HTML5和Java EE 6,支持JPA 2.0、JSF 2.0、Eclipselink 2.1以及OpenJPA 2.0。

  而对IBM WebSphere用户来说,MyEclipse Blue支持最新版本的WebSphere Portal Server 7.0、WebSphere 8以及以前的版本,无缝的支持IBM DB2数据库。

  MyEclipse10对检索功能以及错误查询功能更加强大,包括对js文件的错误查询。就本人来说,最大的变化莫过于软件安装界面,推荐使用link方法进行插件安装,方便快捷。

  3.3.1 MyEclipse是什么?

  MyEclipse是企业级工作平台,是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。

  MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。[1]

  简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse5.5以前版本需先安装Eclipse。MyEclipse5.5以后版本安装时不需安装Eclipse。

  3.5功能模块设计

  3.6编码设计

  3.6.1设计原则

  在系统使用的中,用户要对录入的内容进行编号。比如,部门编号、人员编号、成果编号、项目编号等等。这些编号在数据库要记录,而且记录的内容必须是唯一,也是实现数据库与数据库之间数据进行自动传送、查询、删除的过程中的根据,这个原则是需要遵守的。原则内容如下:

  原则是:前1~4位是年号,5~6位是月份,7~10位是该学术会议登记的顺序号。

  例:2014090009表示2014年9月登记的第9次学术会议。

  3.7数据库的设计

  本系统采用SQL Server数据库,数据库名称为SRMS(Scientific Research Management System)

  3.7.1E-R图

  属性实体

  子类关系

  图3.4 E-R图

  管理员ER图如下:

  科研人员ER图如下:

  论文信息ER图如下:

  科研项目ER图如下:

  科研成果ER图如下:

  科研奖励ER图如下:

  3.7.2数据库的规范化(Normalization)

  根据E-R图可得到以下表:

  科研成果信息表:Product(ProductID,ProductName,ProductSort,Detail,GetTime)

  科研成果人员信息表:ProductTeacher(ProductID,TeacherID,Weight,Role)

  著作信息表:Book(ProductID,ISBN,BookSort,BookConcernID,BookConcernName)

  论文信息表:Thesis(ProductID,ThesisSort,PublicationID,PublicationName,PublicationLevel,Volume)

  专利信息表:Patent(ProductID,PatentID,PatentSort)

  科研获奖信息表:Award(ProductID,AwardSort,AwardLevel)

  关系型数据库中容易出现插入异常、删除异常、冗余度大等一些问题,为了减少和避免这样的问题出现,就需要在数据库中,对数据库名称、对象名称和形式进行规范化的处理。

  在关系数据库中,一般使用范式来衡量数据库规范的层次或深度。所以需要区别范式,那么区别范式也就需要区分数据依赖,通过来改变各种范式达到优化数据库的最终目的。根据关系模式满足的不同性质和规范化的程度,把关系模式分为第一范式、第二范式、第三范式、BC范式和第四范式等。范式越高、规范化的程度也就越高,关系模式就越好。

  1NF:第一范式。这是规范化中最基本的级别。它要求:

  1.数据库包含二维的表(即行和列)

  2.无重复的行

  3.列的数据是同一类型的,每列用唯一的列名

  4.表的每格必须是单值的,数组和重复的组都不能作为值

  因为这个系统中每个表都是有唯一标识的,没有重复,而且每个字段都是单值,所以都已经是符合1NF的。

  2NF:第二范式。要求:

  1.满足第一范式

  2.一个关系的所有非关键字属性都依赖于整个关键字

  每一个以单个属性作为关键字的关系是会自动进入第二范式。因为关键字是一个属性,所以按缺省的约定,每个非关键字属性都依赖于整个关键字,没有部分依赖关系。

  例:

  在科研成果人员信息表:ProductTeacher(ProductID,TeacherID,Weight,Role)中,教师科研评分权数的字段Weight由ProductID,TeacherID联合决定,不依赖于任意两者中的任意一字段,所以已符合2NF。

  3NF:第三范式

  1.满足2NF

  2.所有的非主关键字都是相互独立的,任何一个数据列的值都不能从其他的列推算得到。

  从2NF中消除传递依赖,就是3NF。

  例:

  在著作信息表:Book(ProductID,ISBN,BookSort,BookConcernID,BookConcernName)中ProductID为Primary Key,符合2NF。但是因为BookConcernID决定BookConcernName,而BookConcernID又不是Primary Key,这就传递依赖的表现,不符合3NF。可以使用投影分解的办法分解成两个表,著作信息表:Book(ProductID,ISBN,BookSort,BookConcernID)和出版社代码表:BookConcernCode(BookConcernID,BookConcernName)。

  规范化的利弊:

  规范化的优点是避免了大量的数据冗余,节省了空间,保持了数据的一致性,如果完全达到3NF,不会在超过一个地方更改同一个值。在记录经常的改变,这个优点会超过所有可能的缺点。它的缺点是,当把信息放在不同的表里面时,这样就使操作的难度增加了,同时把多个表连接在一起的是要很花费时间和资源的。规范化设计会带来的性能问题,而且这个问题是比较严重的,所以也就需要进行非规范化了。这样就能获得性能上的利益。总的来说呢,它是一个分析性能利益,尝试和再尝试不断的再评估的一个过程。

  3.8表

  经过规范化后得到以下的表:

  管理员信息表:allusers(ID,username,pwd,cx,addtime)

  项目类别信息表:xiangmuleibie(ID,leibiebianhao,laiyuanbianhao,leibianmingcheng,addtime)

  项目来源信息表:xianmulaiyuan(ID,laiyuanbianhao,zonghengxiangfenlei,mingcheng,addtime)

  单学术活动表:danweixinxi(ID,danweibianao,danweimingcheng,addtime)

  到位经费信息表:danweijingfei(ID,daoweijingfeibianhao,xianmubianhao,daoweiniandu,addtime)

  科研人员信息表:fuzeren(ID,bianhao,xingming,danwei,addtime)

  3.9输入/输出的设计

  系统登陆界面的设计

  这个是系统登陆界面,这个是用来判断用户的身份的,通过输入用户名,密码和对应的权限来判定是否可以进入系统,这样就可以保护系统。

  这个界面的设计很简单,就一用户名和密码两个文本框和一个登陆按钮,但是实现的方法是比较复杂的,因为系统要自动判断输入的用户名和密码的是不是正确的,还要自动识别这个权限,看他是超级管理员还是普通管理员,如果登陆正常后,系统还要将当前用户名和权限进行记录,这样就根据他的权限在他要做其他操作的时候,要给予他应该有什么样的权限。这接下来的权限是两种,分别是管理人和科研人员,总的来说就是权限的分配,简单的来说就是身份的验证和系统的保护。

  实现本模块的主要代码如下:

  科研人员信息管理页面图:

  在这个页面中,管理员可以对所有科研人员进行管理和操作,第一个界面图是添加科研人员操作界面,比如可以输入姓名、单位和编号,所学专业,学历,学业,工作时间,所在部门,密码等之后,系统就会自动把这些信息读进数据库内。第二个界面图为已有科研人员信息操作,包括信息列表读取及删除等。

  实现这个模块的主要代码如下:

  添加科研人员:

  科研项目管理系统

  }

  %>

  欢迎进入〉〉〉

  科研项目管理系统

  联系人:XXXX

  电话:XXXXX

  手机:XXXX

  邮箱:XXXXX

  地址:XXXXXXXXXXXXX

  管理员信息管理页面图:

  图3.8管理员信息管理界面

  在这个页面中,管理员可进行所有关于系统管理员的管理操作,其中第一个界面图是添加用户操作界面,输入用户名、密码和确认密码之后,系统会自动的将信息读进数据库内。第二个界面图为已有管理信息操作,包括信息列表读取和删除等。

  实现这个模块的主要代码如下:

  if(request.getSession().getAttribute("cx").equals("超级管理员"))

  {

  }

  else

  {

  out.print("");

  }

  %>

  String path=request.getContextPath();

  String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

  %>

  用户名:

  *

  密码:

  *

  确认密码:

  *

  已有管理员列表:

  ResultSet RS_result=connDbBean.executeQuery("select*from allusers order by id desc");

  String id="";

  String username="";

  String pwd="";

  String cx="";

  String addtime="";

  int i=0;

  while(RS_result.next()){

  i=i+1;

  id=RS_result.getString("id");

  username=RS_result.getString("username");

  pwd=RS_result.getString("pwd");

  cx=RS_result.getString("cx");

  addtime=RS_result.getString("addtime");

  %>

  用户名

  密码

  权限管理员科研人员

  管理员操作主页面界面图:

  当管理员通过登陆界面的身份的验证之后,就可以进入操作界面,在这个界面上可以对系统信息进行给定的权限的操作。界面如图,它是可分成三部分,其中上部分为系统名称及欢迎词等信息;下方的左侧是进入的管理员帐号对应权限的可以进行的操作显示;右侧是操作区域,如果没有进行任何的操作时,那么它显示的是系统信息。

  实现这个模块的主要代码如下:

  String path=request.getContextPath();

  String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

  %>

  序号用户名密码权限添加时间操作

  删除

  学术活动管理页面图:

  在此这个页面中,管理员对于关于单学术活动进行管理和操作,其中第一个界面图为添加单位操作界面,输入标题、时间,类型,内容等后之,系统也会自动把这些信息读进数据库内。第二个界面图为已有单学术活动操作,包括信息列表读取、修改及删除等。

  实现这个模块的主要代码如下:

  添加学术活动:

  职工号:*

  姓名:*

  性别:男女

  职称:

  出生日期:

  所学专业:

  现从事专业:

  学历:

  学位:

  工作时间:

  所在部门:">

  备注:

  密码:*

  添加科研奖励:

  标题名称:*

  时间:*

  类型:学术会议交流论文学术报告

  内容:

  附件:

  >

  科研奖励信息管理页面图:

  在这个系列页面中,管理员对项目来源信息进行管理和操作,其中包括论文信息管理,科研成果管理,科研奖励管理。

  实现这个模块的主要代码如下:

  科研人员管理后台

  科研人员信息管理页面

  这个页面是科研人员登陆后的页面。

  个人信息管理页面图:

  这个页面是科研人员的人个信息可以修改页面,包括:职工号,姓名,性别,职称,学历,学位,工作时间,所在部门,备注等信息。

  实现这个模块的主要代码如下:

  修改科研人员:

  String sql="select*from keyanrenyuan where zhigonghao='"+request.getSession().getAttribute("username")+"'";

  String zhigonghao="";String xingming="";String xingbie="";String zhicheng="";String chushengriqi="";String suoxuezhuanye="";String xiancongshizhuanye="";String xueli="";String xuewei="";String gongzuoshijian="";String suozaibumen="";String beizhu="";String mima="";

  ResultSet RS_result=connDbBean.executeQuery(sql);

  while(RS_result.next()){

  zhigonghao=RS_result.getString("zhigonghao");xingming=RS_result.getString("xingming");xingbie=RS_result.getString("xingbie");zhicheng=RS_result.getString("zhicheng");chushengriqi=RS_result.getString("chushengriqi");suoxuezhuanye=RS_result.getString("suoxuezhuanye");xiancongshizhuanye=RS_result.getString("xiancongshizhuanye");xueli=RS_result.getString("xueli");xuewei=RS_result.getString("xuewei");gongzuoshijian=RS_result.getString("gongzuoshijian");suozaibumen=RS_result.getString("suozaibumen");beizhu=RS_result.getString("beizhu");mima=RS_result.getString("mima");

  }

  %>

  获奖人员:">*

  项目名称:">*

  奖励名称:*

  授予单位:

  时间:*

  备注:

  添加科研项目:

  职工号:

  姓名:

  性别:男女

  职称:

  出生日期:

  所学专业:

  现从事专业:

  学历:

  学位:

  工作时间:

  所在部门:">

  备注:<%=beizhu%>

  密码:

  >

  科研项目信息管理页面图:

  图3.13科研项目信息管理界面

  在这个系列页面中,管理员对关于项目基本信息进行管理和操作,其中第一个界面图是添加项目基本信息操作界面,输入编号、名称、科研人员、类别、合同经费、自筹款、立项日期、结题日期、项目归属单位和来源编号之后,系统也会自动的把信息读进数据库内。第二个界面图是已有项目基本信息的操作内容,它包括信息列表读取、修改及删除等等。

  实现这个模块的主要代码如下:

  系统的实施

  编码与测试

  这个科研信息管理系统是用MyEclipse来编写的,这个系统从整体到局部、从规划架构到具体实现的过程,都是采用了结构化与模块化相结合的编程方法,这样使系统的各个功能的模块可以连接起来并且整合到一起,这样一来不但减少了时间和存储量的增加问题,而且在系统整体性方面也得到了维护。

  根据测试的结果可以总结出来这些方面的信息:第一:系统在一般的情况下是可以正常的操作的,它在一定范围内是可以合理的操作,并且会在操作过程当中提供一些错误信息,虽然错误信息会出现,但是会有相对应的异常处理进行处理,不需要担心。所以可以总结的是,系统是有一定的稳定性和安全性的。所以这个系统的设计和实现是可以完成要求的。

栏目分类