时间:2023-04-08 11:26:42
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇数据库设计论文范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
管理系统在运行中会产生大量的写操作,进而带来频繁的磁盘I/O操作,在大数据下,最好采用将数据库分布在多台服务器上,即分片[7]。本文采用Auto-Sharding(自动分片)及Replic-Set(复本集)相结合的方式来减轻单个数据库服务器的负载,即在每台Server上各自运行一个实例,组成一个Replic-Set,最后再各运行一个实例,组成ConfigServer。直接执行Addshard操作即可增加分片以缓解服务器的压力,实现动态扩展。分片的实现重点在于片键设计。本文将保存天线参数信息的集合声明了一个复合片键{Lacci:1,Day:1}。当来自不同的小区(可以根据Lacci进行判断)向集群系统插入数据时,可以预计到在大部分情况下,同一小区的数据会落在单个块或片上。
3数据库查询的实现
数据查询功能为本数据库设计的重要功能之一。数据库将小区信息、天线参数等相关的数据信息根据用户的要求,以界面或报表的形式全部或部分的显示给用户。基于本数据库的设计,用户通过数据查询菜单进入相应查询界面,获取小区信息、终端信息及告警信息等。实现“天线工程参数查询”功能的工作流程如图3所示。为了实现小区天线参数查询功能,客户端需要向数据库发送2次请求,用户根据需求,向控制器发送查询请求,控制器处理查询命令,对相应的小区进行信息查询,待小区返回信息后,将用户的查询命令发送至对应小区,根据需求读取有用信息,并返回给用户。跟关系型数据库相比,由于省去了大量的多表连接操作,实际上查询的效率要高于基于关系型数据库的多表连接查询。查询工作的SQL语句如下。
4数据库备份与恢复
数据安全在数据库设计中有很重要的地位。在各种意外情况下,如计算机硬件故障等,对数据库进行备份和恢复能够保障数据的完整性和安全性,使得数据损失降到最小[8]。本数据库设计的备份选用的是副本集的方式[7]:在主节点上进行操作,写入的数据被一步地同步到所有的从节点上,并从主节点或从节点上读取数据,如果主节点由于某些原因断线,会自动将一个从节点提升为主节点。在查询分析器中运用SQL语句完成数据库的备份和恢复。在数据库管理界面中,用户通过数据库备份与恢复功能进行相应操作,确保数据的正确行和完整性。
2.信息资料子模块信息资料子模块主要实现了专业信息、课程信息、学生基本信息和成绩的增加、修改和删除操作。此功能模块的设计,都是便于信息查询模块的实现,重要的是所有的专业、课程、学生及成绩信息都必须是真实可靠的,否则将会影响到信息查询模块功能的实现,同时,填加学生基本信息时,要考虑到整个系统各个模块之间的联系,因为所有其他信息功能的实现都与学生基本信息有着关联。
3.信息查询子模块(1)课程查询:根据查询内容(按专业、按所属院系、按课程名称)来查询学生的课程信息。(2)学生资料查询:根据查询内容(按学号、按姓名、按专业、按班级)来查询学生的基本信息。(3)成绩查询:根据查询内容(按学号、按姓名、按专业、按课程)来查询学生的成绩信息。
二、数据库设计与实现
多数据库系统是分布式数据库系统的一个重要分支,是一个新兴的数据库研究领域。随着企业规模的不断扩大,各部门所需信息既相互交错,又相对独立。这就要求各部门所用的数据库既能高度自治地工作,又能进行信息共享。
DM2是采用客户/服务器模型,客户机与服务器,服务器与服务器均通过网络互连,通过消息相互通讯,组成一个紧密耦合的分布式数据库系统。它的工作流程如下:客户机登录到一台服务器上,这台服务器便成为它的服务器;它接收来自客户机的消息,然后根据全局数据字典决定是自己独立完成该操作,还是与其它服务器协作处理这条消息,处理完成之后,再由服务器将处理结果返回给客户机。由于DM2上各个服务器站点的全局字典完全相同,任何全局表的信息都会记入全局字典。若用它来构建一个企业的数据库系统,则大量只对企业某部门有用的信息将会充斥在各部门所有服务器的全局字典中,增加了冗余。而且,当对全局表进行DDL操作时,为了确保全局字典的一致性,须对所有服务器的全局字典进行加锁。DM2对全局字典的封锁方式是采用令牌环方式,即令牌绕虚环(非实环)传输,某个服务器想对全局字典进行操作,必须等令牌到达该服务器才可以执行。每个部门建立的全局表绝大多数只对本部门有用,当对这些表进行DDL操作时,却要对所有服务器的全局字典进行封锁,通过令牌来实现对全局字典的互斥访问。这严重损害了数据库的效率。
为弥补以上不足,在DM2的改进版本DM3中增加了协调器,用以联接各个独立的DM3数据库子系统,并协调各子系统间的各种关系,使各子系统既能高度自治地工作,又能进行有效的信息共享。
一、多数据库体系结构
本系统可看作多个数据库子系统被协调器联起来的,高度自治的一个联邦数据库系统。其中,每个子系统独立处理本系统内部的事务,而子系统间的信息共享由复制技术提供,副本间的一致性由协调器协调处理,处理所需的信息在初始化时写入协调器的组间数据字典中。当对某子系统中的一份数据副本进行修改时,该子系统会将修改通知协调器,由协调器对该数据的其它副本进行修改,从而保证了所有副本的一致性。
由以上可知,子系统彼此并不直接接触,而是各自都与协调器直接相联,由协调器统一管理子系统间的通信。这样,当子系统对副本进行修改时,不必关心相应的子系统处于何种状态,也不必等待回应消息,以及异常处理,所有这些都由协调器进行管理。因此,既提高了系统运行的效率,也保证了子系统的独立性。
协调器主要有三大功能,首先,它对协调器和服务器进行初始化,并将有关信息存入组间字典;其次,它管理不同子系统间的通信,维护副本的一致性;最后,它在子系统出现崩溃时,进行异常管理及恢复工作。
二、多数据库互联机制的主要策略
多个DM3系统间的信息共享是通过副本实现的,副本的一致性是由协调器来维持的,是一种弱一致性。通常,多数据库系统间的一致性是通过协调器周期性地访问服务器的日志来完成的。由于副本的更新带有随机性,因此,若采用这种方法,可能数据被修改多次,但其相对应的副本仍未被修改,这样就损害了数据的一致性;也可能数据并未被修改,但协调器已多次访问了服务器的日志了,这样就降低了系统的效率。
所以,本系统采用的方法是当数据被修改时,由服务器通知协调器有关信息,再由协调器通知相关系统,修改相关数据。这样,数据的修改及时(仍然是弱一致性),而协调器也不会在数据未被修改的情况下访问服务器,提高了准确性。
为了使协调器正常工作,我们对底层数据库管理系统DM2进行了修改。在基表控制块TV_CTRL_BLOCK中增加一项IsReplication。建表时,该项初始化为false;当为该表建立一个副本时,该项赋值为true。具体算法如下。
1、初始化算法。
协调器:从用户或应用程序接收待连接的两个系统中的服务器名,需复制的表名;分别登录到两个系统的服务器上;向存有待复制表的服务器发预复制消息;等待服务器消息;若失败,发一条失败的消息给服务器和用户或应用程序;若成功,从消息中取出待复制表的有关信息,根据这些信息,发一条建表消息给另一个系统的服务器;等待服务器消息;若失败,发一条失败的消息给服务器和用户或应用程序;若成功,调数据转移程序,进行数据复制;将有关信息写入组间字典,退出。服务器:当服务器收到预复制消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为true。同时,取出待复制表的有关信息,组成应答消息发给协调器。当服务器收到失败的消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为false。
2、维护算法。
协调器:从组间字典读出相关信息,根据这些信息,登录到相应系统上;等待消息;从某系统的服务器上收到一条修改消息后,通过查找组间字典,确定该消息的目的地,然后将它转发过去;若失败,定时重发。
1.1教学内容分析
学习《数据库技术》课程前学习者已经学习了《计算机技术基础》、《C语言》和《数据结构》等先行课程,“概念结构设计”教学内容安排上是在数据库基本概念、关系数据库、SQL语言和关系数据理论之后,“概念结构设计”部分包括概念结构设计的概念、方法与步骤、数据抽象和视图的集成。本部分内容的重点是概念结构设计的方法。难点是根据具体系统内容的描述设计基本E-R图。
1.2学习者动机分析
“概念结构设计”较抽象,学习者需要从复杂的实际应用中找出数据库设计中的关键因素,学习者尚不知该内容在整个数据库设计中的重要作用,鉴于此内容的难度较大,易使学习者知难而退,对学习者学习的积极性产生负面影响。
2动机策略设计及实施
2.1课程导入
2.1.1教学内容
将49名学习者分为5个小组,利用课前时间每组分别分析淘宝、京东、当当网、1号店、天猫的网上购物流程,并分组进行调查汇报。提出问题:你分析系统中的商品有哪些属性?订单包括哪些内容?订单与客户和商品之间的联系及涉及的实体有哪些?订单有哪些状态?知识回顾:实体、属性和联系的概念,选课E-R模型实例。
2.1.2动机策略应用
注意策略:通过问题引入,让学习者主动思考,引起学习者有意注意。相关策略:通过知识回顾,帮助学习者建立已有的E-R模型与概念结构模型设计之间的联系,建立脚手架从而降低新知识学习难度。自信策略:选取学习者们熟知的购物网站为例,增强学习者信心。
2.2课堂教学
2.2.1教学内容
基础任务:定义购物网站生成订单的事件,通过E-R模型进行概念结构设计。汇总各小组提交的设计结果,总结学习者的概念结构模型设计,如图1所示。来源:黑龙江省哲学社会科学研究规划项目(16EDE07)和哈尔滨师范大学深化教育教学综合改革项目(X2015-2-003)的研究成果。提高任务:上述模型中当客户提交订单但未购买商品将减少商品的库存,如何解决这一问题呢?请学习者思考并提出问题解决办法。教师提示可将多对多的联系拆分为两个一对多的联系,根据订单的状态通过程序确定是否实际减少库存。按照之前分配的小组安排学习者讨论并提出新的设计方案,学习者讨论是教师到各组进行引导和巡视[2]。讨论:经过学习者讨论,分析新概念模型设计的合理性。小组汇报并由教师汇总修改后如图2所示。
2.2.2动机策略
注意策略:教师播放课前录制的网上购物过程的动画,引起学习者注意。自信策略:教师按照基础和提高两类任务进行分层布置,利于搭建脚手架、激发学习者自主思考,增强自信。
3评价
学习者对各自小组设计的E-R模型进行评价,小组间进行设计结果互评,教师对每个模型的设计过程、小组合作情况和设计结果进行总结性评价。满意和自信策略:学习者经过深入思考进行互评,体验设计被认可和逐步求精带来的喜悦。教师的点评认可其设计结果提高学习者信心。
4结论
通过该方法的学习,学习者在练习和期末考试中能够熟练准确的对复杂的需求通过E-R模型进行概念结构设计,因此,ARCS模型应用于《数据库技术》教学有助于激发学习者学习动机,提高学习效果。
作者:韩玲玲 单位:哈尔滨师范大学
2数据库
建设的主要内容城市交通设施普查及数据建库的主要内容:一是建立城市交通设施数据库,包括基础地理信息数据和交通专题数据,主要有沿街的交通要素(交通标志牌、交叉口等)、停车场、宾馆、酒店、学校、公交站点、加油加气站、客货运枢纽等以及街道、社区等界线信息。二是建立城市道路中心线路网数据库和模型,道路的属性信息包括道路等级、形式、上下行方向、有无隔离带等;由于道路在城市交通设施中的重要性,对道路网数据要求:①在有中央隔离带的道路路段两侧分别绘制,属性均为单向,取单侧路段的中心线,在路口汇合;②有主辅道的道路路段两侧分别绘制,主道辅道均为单向,中心线在路口汇合;如果主辅道之间的隔离在进入路口前消失,中心线可提前汇合,连接线位置需要在图中绘出;③单侧主辅道涉及高架道路的,地面道路及高架双侧均单独绘制,取单侧路段的中心线,地面道路中心线在路口汇合,路段时绘图顺序按道路的实际行车方向绘制。三是建立城市公共交通网络模型,形成城市交通规划中公交换乘分析的重要基础数据,主要包括公交实体站点信息表、线路站点信息表、公交线路信息表和站点和线路关系表等。
3技术思路
3.1技术流程根据技术要求和内容,制定了技术流程。
3.2主要工作城市交通设施普查和数据建库主要工作有:内业数据预处理、外业数据普查、内业数据录入、编辑和建库等,数据以ArcGIS10Geodatabase格式存储。外业普查根据城市行政管理划分为若干个社区格网,以每个社区格网为单元进行交通数据调查;利用现实性好、数据丰富的基础地理底图,采用实地调查量测为主的方式采集城市交通数据,外业普查成果经的100%检查后,由单位质检部门成果检查合格后提交内业编辑。内业以社区为单位,在单个PersonalGeodatabase数据库中作业,经过接边处理、拓扑建立等,按行政区划、街道、社区界线合并数据库,形成城市交通设施数据库。
3.3成果应用通过对数据库中的道路和交通信息的分析,利用数据信息构建道路网模型和公共交通模型,生成的数据库可以应用在专业交通规划系统平台上,进行城市道路规划设计、最短路径分析、道路缓冲区分析等。
4具体实施
4.1外业普查外业普查在作业底图上调查交通设施信息,同时填写属性调查表和道路调查表属性表,并且现场照相,调查中做到走到看到,不遗漏、分类编码记录不错漏,各类信息要素属性信息正确、全面;在电子地图上根据作业底图编辑录入与检查交通要素,并且构建数据库。作业组以社区网格为单元,以街道办事处或管委会为单位进行任务分配,每一街道办事处或管委会包含若干社区单元。
4.2内业数据编辑建库内业编辑作业分两部分,一是外业底图(含初始调查底图和检查作业底图)和调查记录表格制作(含空表格记录和已普查录入记录),及时与外业沟通,制作满足外业调查要求的作业基础资料;二是基于模板化及的数据录入和建库,通过外业调查记录成果录入基本要素和属性信息,重点处理道路、公交等交通要素。作业利用ArcMap10.0相应的编辑模块,开发的相应插件进行数据编辑录入,利用ArcToolbox构建数据库。
5系统评价
从数据成果的数据精度、数据完整性、属性精度、逻辑一致性、完整性与正确性、图面的质量和附件质量等几个方面进行检查,认为普查数据和建库精度高、属性结构正确、逻辑一致性表达准确、数据完整、图面合理、附件齐全。成果坐标基准采用城市坐标系,数据采用EsriGeodatabase10.0格式,应用个人Geodatabase文件命名社区编号、数据组织和数据分层等。通过数据库在专业交通规划系统平台的测试,交通设施数据各项指标符合系统运行分析要求。
一、引言
毕业论文是考察学生的专业知识和基本技能的一个综合性的作业。但是,随着毕业设计课题的数量和研究领域的增加,而且就业压力的影响导致学生无法保证正常的毕业设计时间,使得毕业设计的管理工作和信息收集工作变得复杂和困难。由于高校毕业论文综合评价的特殊性,目前许多高校对毕业生的毕业导师选择和论文选题流程没有一种快捷而高效的方法,因此,我们迫切需要研究和开发一个高效的基于Web毕业设计管理系统对毕业生毕业论文的选择和完成过程进行规范的管理。
目前国内的部分高校有了相似功能的毕业论文管理系统,其模块的划分大同小异,都是为了保证信息的充分共享以及方便用户的操作。主要有南京农业大学的基于.NET的毕业设计管理系统,功能主要有学生平台、教师平台、教务管理平台、公共数据处理平台等模块;电子科技大学毕业设计管理系统,功能主要有教师出题、论文题目的审核、学生选择论文题目、开题报告审核入库、毕业论文审核入库、毕业论文查询等模块;中国矿业大学信息工程系毕业设计管理系统,功能主要有:个人查询、课题查询、网上指导、请假手续、重要通知、论文格式、论文上载等七个模块。所有各功能模块的划分体现了开发者对数据库建模的思路。而且在运行模式上,基本上采用的都是分而治之的设计思想,即数据库信息(如课题、老师、学生、论文等)在各院系中是单独进行的,在各院系之间及院系与教务部门之间却没有提供信息交互的手段。
二、系统概述
(一)总体规划
基于对目前其他院校的毕业论文管理系统的比较分析,总结其长处,提出了一套高等院校毕业论文管理系统的研究方案。该系统方案基于Web技术,不仅要面向学校不同部门的信息资源的共享,还要解决各部门已有的或将建立的信息系统的资源共享,提高信息资源共享的利用率,系统结构应具有跨平台访问不同数据源的机制。在教务信息标准化、规范化的基础上,对信息进行合理的布局,在提供优质、高效的业务管理和事务处理的同时,使全校师生可以在任一平台上对毕业论文的信息进行方便地沟通与交流。同时,系统要具有安全高效的通信机制,要有效预防由于Web技术的应用而引发的信息泄密和对保密信息的非法侵入等安全隐患。
(二)系统架构
系统采用三层B/S结构,其原理图如图1所示。在这种结构中,应用服务器接收到客户机的请求页面指令后,就向数据库服务器请求有关的数据,数据库服务器从数据库中取出相应的数据交给应用服务器,应用服务器将之整合成页面再返回给浏览器[2]。该结构主要特点是:客户端实现零维护,系统维护和升级方便。软件程序、数据库、的信息以及其他一些组件都集中在服务器,用户除了操作系统及浏览器外无需其他软件,即用户以Web页面的形式与系统进行交互。
该系统是通过DCOM或HTTP远程调用服务器端组件对数据库进行操作以完成特定的功能。在具体实现上,应用服务器使用通信线程来提供查询并从后端数据库服务器获得结果。应用服务器接收从客户机通过Web浏览器或其他界面软件发来的信息请求,并连接到服务器上。接着对请求进行处理并从服务器返回信息。然后,应用服务器与数据库服务器断开并把请求的信息返回客户机。使用这种方法时,客户机不与数据库保持连接,应用服务器只有在进行请求并接收请求的结果时才与数据库保持连接。空闲进程并不占用网络资源,网络流量显著减少,可以更快地进行查询处理并且响应时间得到了改善。如果许多客户机都在频繁请求,可以对这种配置进行更改,使应用服务器能预先与数据库连接,以降低每次处理客户机查询请求时建立连接所需的开销时间量。
该系统是一个基于Web平台、涉及毕业论文管理各环节、面向学校各部门以及各层次用户的多模块综合信息管理系统,主要完成毕业设计的申报、选题、论文上传、论文批阅、在线答疑等功能。其相关的系统功能模块如图2所示。
三、系统的相关设计
(一)数据库设计
由于系统内部数据流量大,数据检索要求高,用户通过浏览器从后台数据库获取数据信息的响应时间也要满足需求,在该系统中,表示层使用ASP用来开发网页,后台数据库使用ORACLE作为服务器端的数据库管理。ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,是目前最流行的浏览器/服务器(BROWSER/SERVER)体系结构的数据库之一,ORACLE8.i以来引入了共享SQL和多线程服务器体系结构,提供了基于角色(ROLE)分工的安全保密管理,支持大量多媒体数据。因此从性能需求上分析,采用ORACLE来完成底层数据库的开发。
在具体实现上,系统整体ER图设计如图3示。
其中,教师数据表包括教师号、教师名、性别、职称、所属学院(系)、科研情况、电话、电子邮件、登录密码等教师基本信息情况;学生数据表包括学号、姓名、性别、年级、学院、专业、班级、电话、电子邮件、登录密码等学生基本信息情况;管理员信息表包括ID号、用户名、密码等;课题信息表包括课题号、课题名称、所属院系、申报教师、规定人数、实选人数等;论文信息表包括论文号、论文名称、学生姓名、所属院系、指导教师等信息。
(二)界面设计
系统界面的设计是创新性的使用了双树型结构实现的,即在前台的WEB系统界面中,针对不同用户具有不同的操作功能,采用ASP和先进的ORACLE数据库技术展现了“左-右”双树型菜单。其中,左边的菜单树上是学生姓名及其已选课题,右边的树则是其他已申报的备选课题,通过此双树型结构的界面设计,学生在方便的选择自己所倾向的毕业研究课题,而且还能很便捷地对其选报课题进行修改或调整。同时,由于该双树型界面本身所具有的美观性、友好性以及操作简便性,从而使得教师和学生在操作的过程中不需要查看帮助文档就可以轻松地实现各种相关的操作。
(三)安全设计
任何一个应用系统都对安全性有一定的要求,即数据的保密性和可靠性。而毕业设计管理信息系统涉及到学生档案等重要信息,其安全性是非常重要的。该系统的安全性,从下面三个方面来实现。
1.分级授权安全管理。该系统采用分层授权安全管理,用户分五种权限:超级管理员、一般管理员、教师、学生、过客。用户登录系统时,让用户录入用户名(或者是帐号)和密码,不同的用户具有不同的权限。在安全性上采用多级认证体系对各级用户分级授权,同时各级用户的操作痕迹相互制约,并采用双密码保证超级管理员密码的内部安全。
2.数据库的安全性。数据库的安全性是由Oracle数据库系统本身的安全机制进行控制。Oracle数据库的安全性体现在它对用户、权限、角色和用户配置文件的管理上。用户是由管理员建立并授权的一个数据库帐户,每一个企图使用Oracle的用户都必须得到一个合法的用户帐户和口令,只有用合法的帐户和口令连接数据库成功才能操作数据库对象。每个Oracle数据库都有一个叫做DEFAULT的配置文件,它被赋予数据库中所有已经存在的用户和新创建的用户。在系统中通过修改该配置文件,对数据库所有用户都限制为使用特定资源。
3.Web服务器安全保障。Web服务器的安全依赖于校园网的安全,同时对web服务器特殊的安全措施。外网用户通过校园网的VPN技术与web服务器进行通信,在校园网出口处部署网络防火墙,同时在Web服务器上主机防火墙和入侵检测系统,对系统进一步防护和监测。另外,通过定时的安装补丁、及时升级、关闭不必要的服务进一步加强了Web Server层和操作系统的安全。
四、系统性能的优化
由于系统基于B/S三层架构,其性能具有很好地可扩展性和可维护性。为了提高程序的性能,应用服务器采用多线程通信技术,实现多线程服务器和连接管理器与数据库服务器的预先连接,及时、准确、可靠地采集和传输信息[5]。在该技术的具体实现上,采用的是抢先式多任务,使得系统能执行多个进程,而每个进程也可以同时执行多个线程,且进程中的线程是并行执行的。系统不停地在多个线程之间切换,由于时间很短,看上去多个线程是在同时运行。使用这种方法时,客户机不需要与数据库始终保持连接,应用服务器只有在进行请求并接收请求的结果时才与数据库保持连接。空闲进程并不占用网络资源,网络流量显著减少,可以更快地进行查询处理并且响应时间得到了改善。多线程服务器和连接管理器用于保持与服务器的固定预先连接,这样连接可以重复使用。同时可以在很大程序上提高系统的并发性。这就更加有效地保证了各级用户在不同地点可以同时访问系统中的数据,加强了系统数据共享能力,提高了系统的性能。
五、结论
本文所讨论研究的高等院校毕业论文管理系统采用了当前流行的B/S结构、Internet网络技术和网络安全技术等,突破了原先使用地域的局限性,使整个校园网甚至Internet上的用户都可访问系统。用户可在多地域、任意时间段以不同身份来访问系统中的数据,大大加强了系统数据共享的能力,有效地促进了学校毕业论文管理的科学化、信息化。系统的应用能够高等院校节约了大量的人力、物力和财力,使高等院校的毕业论文管理水平得到大幅度的提升,同时在社会上也能够产生了良好的影响。
参考文献:
[1]刘必荣.本科毕业设计教学存在的问题及对策研究[J].文教资料,2007(8):54-56.
[2]杨永,梁金钤.基于B/S模式的通用试题库系统的设计与实现[J].计算机工程与科学,2009,31(4):143-145.
[3]马薇,娄雨.Oracle数据库容灾备份中的流复制技术研究[J].科技通报,2012,28(2):182-184.
[4]刘昌平,范明钰,王光卫.可信计算环境数据封装方法[J].计算机应用研究,2009,26(10):3891-3893.
[5]赵建伟.γ遥测数据远程通信系统的设计与实现[J].计算机工程与设计,2007,28(16):3849-3851.
科研水平逐渐成为衡量一个高校势力的重要指标,高校作为重要的科研机构,如何对学校大量的科研信息进行高效、安全的保存、处理、统计、加工等管理操作,将日常的科研管理工作更加规范化、科学化,建立高校科研管理系统进行科研管理工作是每一个高校必由之路。系统功能的分析与数据的结构关联及使用都首先反映在数据库的设计过程中,高校科研管理系统数据库设计是高校科研管理系统设计中的一项核心工作,所有的管理工作都必须以数据库为中心,建立高校科研管理系统数据库的方法、步骤、技术等如下:
1 系统需求分析
高校科研管理所设计的事务非常繁杂,涉及到校科研处、各个系的科研管理以及个人对科研信息的查询统计等。所设计的系统既要有利于科研处的监督管理又要有利于各个系及教师的分工协作。系统功能主要包括校科研处科研管理、院系(或部门)科研管理、个人科研信息查询、校级科研项目整体信息管理。可以划分为科研信息维护、科研信息查询与统计、科研信息报表、科研信息分析、校级课题申报、审批、合同签定、结题、其它处理等操作;其中科研信息应细分为学术论文、著作、科研项目、科研成果、科研奖励等信息。
2 用户需求分析
由于本系统是直接面向网上办公的,必须适应所服务环境的各类操作人员,主要包括学校科研处、各院系(或部门)、普通教师个人(或其他浏览者)。
2.1 普通教师个人(或其他浏览者)
普通教师个人(或其他浏览者)只能按姓名来浏览个人的科研信息、进行统计打印,个人的科研信息(论文、著作、项目成果等)必须提交本部门审核入录。
2.2 各院系(或部门)
各院系(或部门)主要职责是对本部门员工的论文、著作、项目、成果、奖励等信息进行审核后输入到本系统数据库中,查询本部门在某时间内的科研信息、统计科研情况、打印相关资料等,同时对本部门的错误录入信息进行修改和维护。
2.3 科研处
主要管理本校的员工信息、论文、著作、各级各类科研项目和成果、科研奖励等常规工作,同时,管理校级课题的申报、审批、合同、检查、结题等管理,同时,监控系统运行和各部门的情况。
3 数据库设计及关键技术实现
3.1 数据库表创建
根据系统需求分析,将系统的实现直接定位在更好的适合各层次人员的需求和操作,系统的所有初始化数据均采用界面录入的方法,由各类人员分工完成。根据我校的实际情况,笔者将科研人员基本信息、论文信息、科研项目信息、成果信息、获奖情况信息等作为系统的初始化数据,为个人和院系查询、统计、打印,科研处操作、加工、管理、集成等工作提供基本的数据平台。主要数据表格设计如下:
科研人员信息表(职工号,姓名,性别,职称,出生日期,所学专业,现从事专业,学历,学位,工作时间,所在部门,备注)。
论文信息表(序号,论文名称,刊物名称,刊物类别,刊物级别,主办单位,作者,职工号,发表时间,刊号,备注)。
论著信息表(序号,著作名称, 图书编号,著作类别,出版社,学科类别,作者,职工号,出版时间,版次,备注)。
科研项目表(序号,项目编号,项目名称,项目来源,项目类别,完成单位,负责人,课题组成员,立项时间,拟定期限,经费金额, 是否鉴定,鉴定时间,鉴定单位,备注)。
科研成果表(序号,成果名称,成果类别,成果经费,完成时间,负责人,完成单位,是否投入生产,经济效益,备注)。
科研奖励表(序号,获奖人员,项目名称,奖励名称,授予单位,时间,备注)。
校级项目管理表(项目编号,项目名称,课题名称,负责人,所在部门,职务或职称,联系电话,申报表,申报时间,申报经费,是否批准,批准日期,批准经费,合同时间,合同内容,是否结题,结题时间,鉴定技术负责人,项目成果效益,备注)。
校级鉴定专家表(序号,姓名,性别,出生日期,工作单位,学历,学位,所学专业,现从事专业,职称职务,备注)。
在上述表格中,加下划线字段代表主键,加双划线字段代表外键。其中科研人员信息表之所以选择(职工号,姓名)作为主键,考虑到姓名经常作为查询、操作条件,并在相关表中作为科技人员的重要描述和限制;为了避免数据录入的无序状况,数据库表之间建立了严格的参照完整性,并且对所有表都分配了操作权限,并将错误信息及时反馈给操作人员,科研人员信息表、论文信息表、论著信息表通过“职工号”建立参照完整性关系,在录入论文、论著时,作者必须是本单位职工,如果科研人员信息表不存在该员工,便给出错误提示,提示检查是否是合法职工,如果是,便可以在科研人员信息表中添加该员工信息后录入论文、论著信息,否则,拒绝录入,“职工号”又为组合查询提供了连接条件支持;同时将科研项目表、科研成果表、校级项目管理表中“负责人”和科研人员信息表中的“姓名”建立主键、外键参照完整性关系,校级课题的申报负责人也必须是本单位某部门的职工;获奖人员,必须是科研人员信息表中某一职工;将校级鉴定专家表和校级项目管理表通过“鉴定技术负责人”、“姓名”建立参照完整性管理,限定了鉴定技术负责人必须是本校专家表中的专业人员;所有表的主键设置都加上“姓名”字段,目的是为了符合人们的常规习惯,常以某个专业人员姓名作为操作、查询条件,科研人员信息表与其他相关表格建立参照完整性为了限制科研、论文、论著、成果、奖励等信息的科学合法性,同时有利于统计和查询;只有完善的参照完整性,才能使得数据库中数据具有一致性和互操作性。
3.2 存储过程的设计
转贴于 存储过程是Transact-SQL语句的集合,它是实现事务或业务规则的极好途径,是在数据库服务器上存储与执行的。使用它,可以大大减少网络传输流量,提高应用程序性能和安全性,而且由于它只在第一次执行时被优化、编译。因此,使用存储过程不仅可以极大地降低应用程序的实现难度,而且还可以极大地提高系统的运行速度、效率。存储过程的设计一定要符合逻辑业务规则和要求,根据实际,对一些常规、频繁使用的查询、插入数据操作使用存储过程来完成。以下操作可以考虑使用存储过程来完成:
① 对系统的初始化数据时录入各种基本信息操作。
② 查询个人、部门科研信息时的查询操作。
③ 科研处的其他常规操作。
下面以查询部门科研信息为例介绍存储过程使用方法,在此查询某一部门的论文、论著信息。描述代码:
CREATE PROCEDURE 论文论著
@a char(20)
as
select 姓名,论文名称,刊物名称,刊物类别,刊物级别,发表时间,备注
from 科研人员信息表,论文信息表
where 科研人员信息表。职工号=论文信息表。职工号 and 所在部门=@a
select 姓名,著作名称,出版社,出版时间,版次,备注
from 科研人员信息表,论著信息表
where 科研人员信息表。职工号=论著信息表。职工号 and 所在部门=@a
其它操作不再做列述。从提高执行效率、提高安全性、共享性方面考虑,尽可能多的使用存储过程来提高数据库的整体性能。
3.3 触发器的使用
使用触发器来实现表间的数据自动操作,提高系统效率,校级鉴定专家表中的信息主要来源于科研人员信息表中具有副高职称以上的人员,在输入或修改科研人员信息时,只要是具有副高级职称以上的人员,就可以自动添加到校级鉴定专家表中,该操作可以使用触发器来实现,代码描述如下:
Create Trigger ptz
On 科研人员信息表
For insert,update
As
Insert into 校级鉴定专家表(姓名,性别,出生日期,工作单位,学历,学位,所学专业,现从事专业,职称职务,备注) Select (姓名,性别,出生日期,所在部门,学历,学位,所学专业,现从事专业, 职称职务,备注)。
From 科研人员信息表,其中,校级鉴定专家表中的序号是自动生成的标识列。
同时,可以用触发器来检验校级项目负责人是否在科研人员信息表中,其中,用事务以验证合法性以控制该项操作是否完成。
代码描述如下:
Create Trigger check1
On 校级项目管理表
For insert
As
begin tran
declare @a char(12)
select @a=负责人 from Inserted
If ( select count(*) from科研人员信息表where 姓名=@a)=0
begin
Print '负责人不合法'
rollback tran
end
commit tran
其它类似操作不做描述。
在设计中,坚持使用触发器实现尽可能多的实现前台操作,不仅提高了操作效率、更提高了代码的安全性和共享性。
3.4 数据库安全设计
网络的安全非常重要,从数据库级、服务器级和应用程序级综合考虑,在科研管理系统中要根据不同用户,设置不同的权限、不同的初始化菜单。在本系统中,数据库的安全主要通过数据库的存取控制机制实现的。首先定义各类管理人员的操作权限即角色,其次定义数据库登录,最后依据用户权限表将登录分配为相应的角色。由于人员的复杂性,角色分为三个层次:科研处级别、二级部门级别、普通教师级别。用户属于某一角色,即使用户职务调动时,对用户增删,不影响其他用户的操作,只是角色中用户数量的变化。建立专门的系统使用权限表来记录用户和权限,同时也兼容部门设置信息,对不同部门分配相应的权限和账号,科研处是最高管理级别部门。
为了进一步保护数据库,建立备份数据库服务器,定期进行数据库备份和复制,本系统数据库主要采用SQL Server数据库管理工具进行设计,它具有强大的管理、安全、登陆、网络支持功能,且可以和其它数据库进行转换,是一种网络数据库管理软件,符合设计要求。
4 结束语
该系统数据库主要适用于C/S和B/S混合模式的数据库系统,设计中从整体考虑,建立严格的参照完整性和科学数据库结构,将存储过程、触发器应用到数据库设计中,加大了后台的功能和效率,对数据库的安全进行分级、分类设置和管理,提高了数据库的安全访问能力;它的数据冗余少,具有更高的数据一致性、可操作性和安全性,结合前台开发工具和平台,可以实现强大的功能设计和系统实现。结合本校实际已经开发了一个实用的高校科研管理系统并被科研处立项。
参考文献
中图分类号:TP315文献标识码:A文章编号:1009-3044(2008)35-2049-02
A Teaching Model Research Based on Internet/Intranet in the Information Technology Course
CHEN Fang1, CHEN Zhao2
(1. Pharmacy of East China University and Technology, Shanghai 200237, China; 2. Faculty of Mechanical & Electronic Information of China University of Geosciences, Wuhan 430074, China)
Abstract: At present, colleges for large-scale expansion caused management more difficult, the quality of thesis papers and the value of Paper documents are not to make full use of, this article statements a management system based on B/S model Three-tier architecture, in the middle using ASP technology, background database to SQL Server2000 designed to achieve. The system is reliable, safe, convenient and better able to meet the college paper's management of the basic requirements.
Key words: thesis; B/S module; ASP; SQL server
1 引言
在高等学校的教务管理系统中,毕业论文的选题大都采用人工方式,面对不断增加的生源,这样不仅工作量大,而且效率低下,容易出错,更不方便教师查阅和管理人员的管理。利用计算机辅助设计加强毕业论文课题的管理工作,既提高了论文选题的科学性,又可大大减轻管理人员的工作强度,提高了工作效率,从而使得管理工作逐步实现制度化、规范化和程序化。本文设计与实现的论文管理系统采用B/S的模式,中间采用ASP编程技术,后台选用SQL Server2000得以实现。
2 系统的总体设计
2.1 设计思路
系统以SQL Server2000作为后台数据库,采用B/S结构即浏览器/服务器结构,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成浏览器、Web服务器与应用服务器、数据库服务器组成的三层体系结构。主要采用ASP动态网页技术,通过ASP,结合HTML网页、ASP指令和ActiveX元件,建立动态、交互且高效的Web服务器应用程序。数据库的访问通过ODBC(开放式数据库互联技术)用SQL实现。系统通过ADO与数据库连接,实现数据库的相关操作。
2.2 工作流程
实践论文管理工作中,基本的工作流程分为:1)教师出题;2)学生选题;3)中期检查;4)论文答辩;5)论文评优五个阶段。
毕业论文管理系统实现论文的出题、审核、选题、、检索、统计等多项功能。该系统既能让学生网上论文选题,又能实现提交论文,这样为老师和学生对论文资源的查阅和检索提供了方便。
系统中主要设置了八个模块,分别为:登录模块、论文出题模块、论文选题模块、论文提交模块、论文加工模块、论文查询模块、论文统计模块及系统配置模块,每个模块又具有各项多种功能。管理系统结构图如图1所示。根据基本工作流程和各功能模块,该系统设置四个角色进行分配管理,包括:系统管理员、教师、学生、教师管理员这四类。各个角色都具有不同的功能,依据基于角色的访问控制理论对每个教师进行分配角色,以实现相应的管理权限。
2.3 功能模块的设计
2.3.1 系统管理员角色
1) 日常管理:日常公告的管理,常用表格的管理,师生上传文档的管理,教师出题变更申请受理;
2) 论文选题:论文选题时间设置,论文选题锁定情况统计;
3) 中期检查:中期检查表审阅,中期评审分组;
4) 后期管理:论文成绩评审表审阅,论文上传情况统计,评阅,答辩,二次答辩,师生最终上传文档情况汇总,学生成绩分析与统计;
5) 论文加工:对当年度提交的所有论文进行标引工作,以便查阅和检索;论文格式转换管理,将所有论文由原来的文档形式转换成PDF格式,以便保存;
6) 信息维护:管理员、教师、学生信息的维护,系主任、教学副院长角色的分配,院系、班级信息的维护,系统数据的初始化等。
2.3.2 教师角色
1) 论文出题:教师上传论文题目,所需学生人数,课题的来源等相关信息;
2) 论文选题:对自己提交的课题进行学生的锁定和退选;
3) 任务相关:公告浏览,论文基本格式的样张下载;
4) 表格提交:中期检查表的管理,成绩考核表的管理,其他相关文档的管理;
5) 学生文档管理:对学生提交的文档进行审阅和管理;
6) 成绩管理:对进行指导的学生进行论文成绩的评定。
2.3.3 学生角色
1) 论文选题:对于教师的出题情况进行查看,并选择论文;
2) 任务相关:公告浏览,论文基本格式样张下载;
3) 论文管理:开题相关文档管理、论文相关文档管理、设计相关文档管理;
4) 论文提交:提交毕业论文管理;
5) 成绩管理:查看中期检查表、成绩考核表,其他相关文档。
2.3.4 教师管理员角色
除了具有教师模块中的所有功能外,教师管理员角色主要添加两项功能:
1) 论文审核:对教师论文出题质量进行审核;
2) 统计功能:统计当(历)年度的毕业论文提交的数量,学生成绩的统计。
2.4 数据库的设计
毕业论文管理系统结构图
本系统在设计过程中,尽量考虑到各个模块中的相似之处,减少表格数量,提高表格的关联程度,以及减少数据库中数据的冗余。根据数据的流程和功能需求,数据库主要包含以下工作表格:
1) 教师数据表:存放教师基本信息,数据项包括教师工号、密码、教师姓名、职称、专业、联系方式、教师个人简介、系所编号、学院编号、论文编号;
2) 学生数据表:存放学生基本信息,数据项包括班级、学号、姓名、密码、论文编号、成绩、综合排名、兴趣爱好、备注;
3) 论文数据表:学年度、论文编号、论文题目、出题教师工号、选题学生学号、课题来源、成绩;
4) 论文审核表:学年度、论文编号、审核状态、修改意见、次数;
5) 论文选题表:学年度、学生学号、论文编号、论文选择状态、选择时间;
6) 论文成绩表:学年度、论文编号、教师工号、学生学号、成绩、评语、评阅时间;
7) 选题管理表:序号、职称、论文数量、学生人数。
2.5 数据库访问控制的实现
在数据库中为了实现权限设计的安全问题,建立以下七个基本表:
1) 用户表:序号、用户名(取教师工号或学生学号);
2) 角色表:角色名、用途说明;
3) 权限控制表:角色名、用户名;
4) 数据库访问权限表:操作权限、角色名、基本表名、权限说明;
5) 数据库基本表:基本表名、基本表说明;
6) MIS子功能模块表:子功能代码、功能说明;
7) 功能模块访问权限表:子功能模块代码、角色名;模块菜单名、功能说明;
各个表项联合起来形成系统的授权机制,其运行机制是:当用户通过系统登陆界面后,系统首先利用权限控制表找出用户所对应的角色,然后利用数据库访问权限表和功能模块访问权限表找出该角色所能进行的操作(即基本表单名和子功能项代码),并在角色表中查看该角色的状态,如果角色处于被激活的状态,该用户就可使用该系统,如果该角色处于被禁止的状态,即使该用户拥有该权限仍不能执行。这样,系统管理员在进行维护时,若更改功能角色,则只需修改数据库访问权限表,功能模块访问权限表和权限控制表中的记录即可,而不需修改表的结构,大大方便管理员的维护工作。
这个完整的基于角色的多层应用系统安全控制有效地将前端的“菜单层的权限管理”和后台的“数据库基本表及相应操作权限”统一起来,实现了权限设计的授权机制。
3 系统的主要功能实现
系统通过B/S三层结构实现论文的选题管理与论文的提交和评阅,采用浏览器、Web服务器和数据库的三层结构,当用户通过浏览器提交和评阅时,向Web服务器发出请求,Web服务器访问用户的指令后开始执行程序,根据请求从数据库中取出相应的数据,并将数据以一定格式返回到客户端。
3.1 教师论文出题功能的实现
每个教师使用自己的工号和密码进入管理界面,点击论文出题模块,系统将根据论文审核表中的有关信息查看该教师是首次登录还是重复登录,如果为首次登录,页面上将出现相应的论文数据表,填写各个字段,包括论文题目,课题来源,学生要求(比如专业限制等)、其他要求(比如性别要求等),填写完毕后选择提交按钮实现出题的功能。其中要注意的是管理员在选题管理表中根据每个教师的职称对教师的出题数目和所带学生人数进行了限制,比如根据副教授职称只能带两个毕业论文题目,一个课题只能有一个学生选择等。如果为重复登录,将根据论文审核表中的相关信息查看该教师有无被退回的题目,如果有,页面显示该教师被退回题目的相关信息,如果没有,提示该教师出题成功,无需再次出题。
3.2 教师论文选题功能的实现
当教师使用自己的工号和密码进入管理界面,点击论文选题模块,页面上将出现论文课题、学生姓名(点击学生姓名链接将出现学生的有关信息)并同页面预设置有锁定和退回功能键,当教师查看符合要求时点击锁定功能即能实现双向选定,否则点击退回功能,此课题呈现空置状态,以供其他学生选择。
3.3 学生选题功能的实现
每个学生使用自己的学号和密码进入相应界面,点击论文选题模块,页面上将出现还没有被选择的毕业论文选题列表,分别有论文数据表中以下字段:论文编号、论文题目、出题教师工号(点击教师工号可出现链接教师的有关信息),并同页面预设置有锁定和撤销功能键,如果该生已经选题,系统将其视为修改选题,修改学生数据表中该学号学生记录中论文编号数据即可。
3.4 论文审核功能的实现
教师填写论文选题之后,系主任要对论文题目进行审核。当系主任使用自己的工号和密码进入管理界面后,点击论文审核模块,页面上将出现已经上传的论文题目,并同页面预设置确定和修改的功能键,如果论文题目不符合要求,系主任点击修改,并给出修改意见,否则点击确定通过,这样教师论文出题成功。此时将该教师工号记录入此论文数据表中,将论文编号记录入教师信息表中。
4 结束语
该系统结合ASP开发平台和SQL Server2000 技术,实现了毕业论文(设计)阶段从选题管理、论文写作、中期检查、论文提交等方面进行综合管理的一个系统平台。整个系统在设计上保持了各个部分的相对独立性同时又是有机地融合在一起的,体现了各自的特点。在教学管理应用中收到了较好的效果。
根据目前的管理思路我们也有进一步的设想:1) 逐步实现毕业论文的网上归档功能,和档案馆归档软件形成对接,实现毕业论文的电子归档;2) 通过和图书馆数据检索平台的功能对接,实现毕业论文在数据库平台的电子查阅,由图书馆专业人员作标引工作,实现有序的存储和高效利用。
参考文献:
[1] 陈芳, 陈朝. RBAC在MIS中的应用[J]. 计算机系统应用,2003(1):43-44.
[2] 李杰. 基于ASP毕业论文选题系统的设计[J]. 湖南环境生物职业技术学院学报,2007,13(2):30-32.
[3] 崔盟. 基于Struts+Ajax的学位论文管理与服务系统的设计和实现[J]. 现代图书情报,2007(11):7-12.
[4] 严国丽, 等. 基于.NET的论文管理系统的设计与实现[J]. 电脑学习,2007,10(5):10-12.
中图分类号:TP392:J642.477文献标识码:A 文章编号:1009-3044(2007)17-31327-02
Design and Implementation of Thesis Searching System Based on B/S structure
LIU Qun-Yan,ZHANG Da-Wei
(Library Xi'an Polytechnic University ,Xi'an 710048,China)
Abstract:Based on the B/S structure, a thesis searching system is designed and developed for academic thesis searching by the ASP technique and SQL database. The system can run very stably, has complete functions and satisfies all requirements of thesis search excellently, which provides a good platform for sufficient using of academic thesis.
Key words:thesis search; ASP technology; SQL SERVER; B/S structure
1 前言
学位论文是高等院校或科研机构的学生为获得某一级别的学位而向学校或其它学术单位提交的学术研究论文,是围绕某一学科的重点或前沿课题进行的创造性研究和探讨并加以总结的产物,所以它是具有较高学术价值的科技文献。但很多高校多年来的博士和硕士论文因查询不便而不能为教学和科研充分利用,所以建立基于网络的、不受时间和空间约束的论文检索系统已成为提高高校学位论文利用率的关键。而购买商业公司开发的检索系统虽然其功能齐全、性能稳定,但不仅代价昂贵,而且其过于广泛,不适合某一高校的学科特点和该校图书馆的具体情况。所以开发高校学位论文检索系统非常必要,而且具有实际应用意义。本文讨论了该系统的开发过程和核心难点技术。
2 系统技术分析及开发环境
本系统采用三层B/S体系结构为其基本框架,运用当前应用广泛的动态web技术ASP实现其与数据库的强大操作和远程客户端的交流。下面对这些技术和开发环境进行分析介绍。
2.1 B/S结构
B/S(Browser/Server)结构即浏览器/服务器结构,是把web 技术和数据库技术结合起来的技术,其实现了开发环境和应用环境的分离,即用户端利用相对统一的浏览器( IE、Netscape 等) 代替客户端软件,实现跨平台的应用服务,B/S通常采用三层分布式体系结构,如图1所示。
图1 B/S结构
三层B/S结构的工作方式主要是用户通过浏览器表单形式把客户请求以HTTP 协议方式发送到web服务器,web服务器向数据库服务器发送数据请求,数据库服务器经过数据处理后将符合条件的数据返回到web服务器,web服务器把结果翻译成HTML模式或各类Script 格式, 返回浏览器供用户阅读。
本系统采用三层B/S体系结构,用户只要能连接到Internet网络,就能很方便的在任何时间任何地点查询学位论文。
2.2 ASP技术
ASP(Active Server Page) 是Microsoft 提出的基于服务器端的脚本执行环境,通过在普通HTML页面中嵌入的ASP脚本语言(VBScript 、Jscript),就可以建立和执行动态的、交互的、高性能的Web应用程序。由于ASP脚本是在服务器端解释执行的,所以用其设计的程序独立于客户端浏览器且保密性较高;ASP采用ADO技术访问数据库,ADO是一组优化的访问数据库专用对象集,提供了完整的站点数据库访问方案,使ASP访问数据库十分方便。基于以上原因,本系统采用ASP技术来实现其功能。
2.3 系统开发平台和环境
本系统服务器端采用高性能、高可靠性和高安全性的Microsoft Windows 2003 Server为其操作系统,并配置IIS6.0;选取可扩充的、高效的关系型数据库管理系统SQL SERVER 2000为后台数据库;采用专业网站开发编辑器Macromedia Dreamweaver MX 2004为系统开发工具;开发语言为HTML和VBScript;客户端只需要安装 IE4.0 或Netscape3.0 以上版本的浏览器即可使用本系统。
3 系统的总体结构设计
在开发此系统之前,作者做了大量的需求分析,充分了解掌握了系统所必需具有的功能,并考虑了人机功效方面的问题进行系统设计。下面对该系统的功能模块、web页面、数据库作总体的设计。
3.1 功能模块分析与设计
根据用户对论文检索精度要求的不同,该系统主要分为两大模块,(1)基本检索模块,(2)高级检索模块,如图2所示。
图2 系统工作流程图
基本检索模块:主要适用于对检索精确度要求不高、对论文库按某一条件字段进行简单分类检索的用户。该模块的功能要求主要有:用户选择某一检索项并输入检索词,就可检索到符合该条件的所有记录,并将检索结果分页显示;可以浏览某一纪录的详细内容,包括摘要。
高级检索模块:该模块适用于对检索结果要求精确、多条件查询的用户。该模块的功能要求主要有:可以实现多个条件的与、或、非复杂查询;将检索结果分页显示;可浏览某一纪录的详细信息,包括摘要。
根据学位论文的特点和用户的检索需求,其检索选择项分为七类:论文题名、论文作者、论文导师、关键词、学科专业,中文摘要、分类号。
3.2 Web页面设计
根据该系统的模块及功能,实现该系统需要4个页面。检索首页index.asp,该页面采用HTML表单的形式收集用户输入的检索词及检索选择项条件;基本检索Bsearch.asp,该页实现基本检索的功能页面,并将查询结果分页显示;高级检索Hsearch.asp,该页实现高级检索多选项、多条件的与、或、非查询功能,并将查询结果分页显示;记录详细显示Show.asp, 该页实现浏览某一纪录的详细信息,本校用户可查看全文。其页面间的关系如图3所示。
图3 页面关系图
3.3 后台数据库设计
本系统采用SQL SEVER 2000来创建后台数据库。为了提高数据库服务器的响应速度并确保数据安全,本系统采用文件实体和文件参数分别存放的方法,即在数据库中只保存论文的文件名、存放路径、文件格式和大小,而在WEB服务器指定目录存放学位论文全文。根据学位论文的构成特点和用户的查询需求,创建的数据库表的字段如下:姓名、学号、专业、培养单位、论文题名、分类号、学位级别、导师姓名、导师单位、提交日期、关键词、论文页数、中文摘要、英文摘要、全文文件名,全文路径、全文大小、全文格式。
4 系统功能实现及核心技术
在本系统的开发过程中,主要解决了三个核心技术问题。ASP与WEB数据库的连接、多条件的与、或、非复杂查询问题和查询结果分页显示问题。下面来阐述这些问题的解决方法。
4.1 ASP与WEB数据库的连接
ASP与数据库的连接一般有三种方法:(1)通过ODBC DSN建立连接,(2)通过OLE DB建立连接,(3)通过Driver建立连接,本系统选用通过Driver建立连接的方法,使用该方法,程序的可移植性比较好。系统建立连接的过程如下:(1)建立数据库连接对象:set conn = server.createobject ("adodb. connection ");(2)打开要访问的数据库:conn.open"Driver;Server=;Database=;Uid=;Pwd= "(3)建立记录集对象:set rs= server. createobject("ADODB.recordset");(4)打开记录集对象:rs. open strsql,conn,"3","1";(5)利用记录集对象所提供的属性对Web 数据库实施操作;(6)关闭记录集对象:rs.close;(7)关闭数据连接对象:conn.close;
4.2 检索功能实现
本系统两大检索模块中,基本检索模块中的SQL查询比较简单,在这里不予熬述。重点来阐述高级检索模块中的动态多选项、多条件的与、或、非查询,这是开发本系统的核心技术和难点之一。本文采用VBScript中的select case语句来识别用户的动态检索项,用IF语句来控制多条件的查询,专门设置变量strhigh2接受用户所选取的与、或、非条件。SQL查询语句用变量strsql来保存,而最初的查询语句是:strsql= "select * from table1 where 1=1 ",后面依据条件对查询语句进行叠加,如:strsql=strsql& "select * from table1 where name = "liuyan" ",直到条件判断完毕,最后形成SQL查询语句,并保存在strsql变量中,执行rs.open strsql,conn,"3","1"语句。系统查询功能实现。
为了提高系统的简单易用性和查询结果的命中精度,本系统支持作者姓名、导师姓名字段的精确查询,而对字段论文题名、关键词、论文摘要、提交年份、学科专业、分类号实施模糊查询,如:用SQL语句seletc * from table1 where name like %"& yan & "%实现模糊查询。
4.3 查询结果分页显示
在显示查询结果时,如果所有检索的命中记录在一页显示,将不方便用户浏览,所以系统要求将查询结果分页显示。而实现查询结果分页显示关键要解决两方面的问题:(1)循环显示本页记录,(2)翻页控制。
循环显示本页记录:即当前页记录的显示问题。本系统采用双重嵌套的Do WhileLoop语句来控制当前页记录的显示,用 rs.("字段名")显示记录字段;采用ADO中数据集RecordSet对象的一些属性来进行参数设置:用PageSize属性设置每页显示的记录数;用PageCount 、RecordCount属性分别显示检索命中的总记录数和页数;用AbsolutePage属性表示当前页码;用MoveNext方法来移动记录指针;并用到了BOF 属性和EOF 属性。通过运用以上的语句控制与属性设置,实现了当前页记录的显示。
(2)翻页控制:系统要求将查询结果分多页显示,而在进行翻页时,涉及到对页面bsearch.asp或hsearch.asp(实现检索和分页显示的功能页)的自身连接,也就是web服务器端要重新执行该页面程序,重新接收用户输入的检索词和重新执行SQL查询语句,并且要求正确显示目标页记录。所以,在系统进行翻页时,要对两类参数进行传递,分别是用户输入的检索词、检索项和当前页数。本系统采用表单的隐藏域来对这两类参数进行传递,选取Request.form("")来接收用户从表单输入的检索词和检索项,而采用Request.querystring("")来接收翻页时由表单隐藏域传递的检索词、检索项参数和当前页数参数,并用IF语句来判断使用前者还是后者;翻页的自身连接采用URL方式传递目标页数。参数传递正确,系统成功实现翻页功能。
5 结束语
采用web技术、数据库技术、ASP技术实现了基于B/S结构的高校学位论文检索系统。在此系统开发过程中,重点研究解决了动态多选项、多条件的与、或、非复杂查询问题,以及检索结果分页显示的问题。经过测试,本系统性能稳定、界面友好、易于使用,现已应用于西安工程大学图书馆,解决了高校学位论文的检索难题,使得博士、硕士论文能够被科研和教学充分利用,提高了学问论文的利用率,这也是开发本系统的真正意义所在,作者感到欣慰!
参考文献:
[1]陈健伟,李美军,施建强,等. ASP动态网站开发教程[M].北京:清华大学出版社,2005.188-206.
[2]张固,汪晓平.ASP网络应用系统典型模块开发实例解析[M].北京:人民邮电出版社,2005.53-95.
[3]龙马工作室.ASP+SQL Server组建动态网站实例精讲[M]. 北京:人民邮电出版社,2005.73-96.
高校科研管理所设计的事务非常繁杂,涉及到校科研处、各个系的科研管理以及个人对科研信息的查询统计等。所设计的系统既要有利于科研处的监督管理又要有利于各个系及教师的分工协作。系统功能主要包括校科研处科研管理、院系(或部门)科研管理、个人科研信息查询、校级科研项目整体信息管理。可以划分为科研信息维护、科研信息查询与统计、科研信息报表、科研信息分析、校级课题申报、审批、合同签定、结题、其它处理等操作;其中科研信息应细分为学术论文、著作、科研项目、科研成果、科研奖励等信息。
2用户需求分析
由于本系统是直接面向网上办公的,必须适应所服务环境的各类操作人员,主要包括学校科研处、各院系(或部门)、普通教师个人(或其他浏览者)。
2.1普通教师个人(或其他浏览者)
普通教师个人(或其他浏览者)只能按姓名来浏览个人的科研信息、进行统计打印,个人的科研信息(论文、著作、项目成果等)必须提交本部门审核入录。
2.2各院系(或部门)
各院系(或部门)主要职责是对本部门员工的论文、著作、项目、成果、奖励等信息进行审核后输入到本系统数据库中,查询本部门在某时间内的科研信息、统计科研情况、打印相关资料等,同时对本部门的错误录入信息进行修改和维护。
2.3科研处
主要管理本校的员工信息、论文、著作、各级各类科研项目和成果、科研奖励等常规工作,同时,管理校级课题的申报、审批、合同、检查、结题等管理,同时,监控系统运行和各部门的情况。
3数据库设计及关键技术实现
3.1数据库表创建
根据系统需求分析,将系统的实现直接定位在更好的适合各层次人员的需求和操作,系统的所有初始化数据均采用界面录入的方法,由各类人员分工完成。根据我校的实际情况,笔者将科研人员基本信息、论文信息、科研项目信息、成果信息、获奖情况信息等作为系统的初始化数据,为个人和院系查询、统计、打印,科研处操作、加工、管理、集成等工作提供基本的数据平台。主要数据表格设计如下:
科研人员信息表(职工号,姓名,性别,职称,出生日期,所学专业,现从事专业,学历,学位,工作时间,所在部门,备注)。
论文信息表(序号,论文名称,刊物名称,刊物类别,刊物级别,主办单位,作者,职工号,发表时间,刊号,备注)。
论著信息表(序号,著作名称,图书编号,著作类别,出版社,学科类别,作者,职工号,出版时间,版次,备注)。
科研项目表(序号,项目编号,项目名称,项目来源,项目类别,完成单位,负责人,课题组成员,立项时间,拟定期限,经费金额,是否鉴定,鉴定时间,鉴定单位,备注)。
科研成果表(序号,成果名称,成果类别,成果经费,完成时间,负责人,完成单位,是否投入生产,经济效益,备注)。
科研奖励表(序号,获奖人员,项目名称,奖励名称,授予单位,时间,备注)。
校级项目管理表(项目编号,项目名称,课题名称,负责人,所在部门,职务或职称,联系电话,申报表,申报时间,申报经费,是否批准,批准日期,批准经费,合同时间,合同内容,是否结题,结题时间,鉴定技术负责人,项目成果效益,备注)。
校级鉴定专家表(序号,姓名,性别,出生日期,工作单位,学历,学位,所学专业,现从事专业,职称职务,备注)。
在上述表格中,加下划线字段代表主键,加双划线字段代表外键。其中科研人员信息表之所以选择(职工号,姓名)作为主键,考虑到姓名经常作为查询、操作条件,并在相关表中作为科技人员的重要描述和限制;为了避免数据录入的无序状况,数据库表之间建立了严格的参照完整性,并且对所有表都分配了操作权限,并将错误信息及时反馈给操作人员,科研人员信息表、论文信息表、论著信息表通过“职工号”建立参照完整性关系,在录入论文、论著时,作者必须是本单位职工,如果科研人员信息表不存在该员工,便给出错误提示,提示检查是否是合法职工,如果是,便可以在科研人员信息表中添加该员工信息后录入论文、论著信息,否则,拒绝录入,“职工号”又为组合查询提供了连接条件支持;同时将科研项目表、科研成果表、校级项目管理表中“负责人”和科研人员信息表中的“姓名”建立主键、外键参照完整性关系,校级课题的申报负责人也必须是本单位某部门的职工;获奖人员,必须是科研人员信息表中某一职工;将校级鉴定专家表和校级项目管理表通过“鉴定技术负责人”、“姓名”建立参照完整性管理,限定了鉴定技术负责人必须是本校专家表中的专业人员;所有表的主键设置都加上“姓名”字段,目的是为了符合人们的常规习惯,常以某个专业人员姓名作为操作、查询条件,科研人员信息表与其他相关表格建立参照完整性为了限制科研、论文、论著、成果、奖励等信息的科学合法性,同时有利于统计和查询;只有完善的参照完整性,才能使得数据库中数据具有一致性和互操作性。
3.2存储过程的设计
存储过程是Transact-SQL语句的集合,它是实现事务或业务规则的极好途径,是在数据库服务器上存储与执行的。使用它,可以大大减少网络传输流量,提高应用程序性能和安全性,而且由于它只在第一次执行时被优化、编译。因此,使用存储过程不仅可以极大地降低应用程序的实现难度,而且还可以极大地提高系统的运行速度、效率。存储过程的设计一定要符合逻辑业务规则和要求,根据实际,对一些常规、频繁使用的查询、插入数据操作使用存储过程来完成。以下操作可以考虑使用存储过程来完成:
①对系统的初始化数据时录入各种基本信息操作。
②查询个人、部门科研信息时的查询操作。
③科研处的其他常规操作。
下面以查询部门科研信息为例介绍存储过程使用方法,在此查询某一部门的论文、论著信息。描述代码:
CREATEPROCEDURE论文论著
@achar(20)
as
select姓名,论文名称,刊物名称,刊物类别,刊物级别,发表时间,备注
from科研人员信息表,论文信息表
where科研人员信息表。职工号=论文信息表。职工号and所在部门=@a
select姓名,著作名称,出版社,出版时间,版次,备注
from科研人员信息表,论著信息表
where科研人员信息表。职工号=论著信息表。职工号and所在部门=@a
其它操作不再做列述。从提高执行效率、提高安全性、共享性方面考虑,尽可能多的使用存储过程来提高数据库的整体性能。
3.3触发器的使用
使用触发器来实现表间的数据自动操作,提高系统效率,校级鉴定专家表中的信息主要来源于科研人员信息表中具有副高职称以上的人员,在输入或修改科研人员信息时,只要是具有副高级职称以上的人员,就可以自动添加到校级鉴定专家表中,该操作可以使用触发器来实现,代码描述如下:
CreateTriggerptz
On科研人员信息表
Forinsert,update
As
Insertinto校级鉴定专家表(姓名,性别,出生日期,工作单位,学历,学位,所学专业,现从事专业,职称职务,备注)Select(姓名,性别,出生日期,所在部门,学历,学位,所学专业,现从事专业,职称职务,备注)。
From科研人员信息表,其中,校级鉴定专家表中的序号是自动生成的标识列。
同时,可以用触发器来检验校级项目负责人是否在科研人员信息表中,其中,用事务以验证合法性以控制该项操作是否完成。
代码描述如下:
CreateTriggercheck1
On校级项目管理表
Forinsert
As
begintran
declare@achar(12)
select@a=负责人fromInserted
If(selectcount(*)from科研人员信息表where姓名=@a)=0
begin
Print''''负责人不合法''''
rollbacktran
end
committran
其它类似操作不做描述。
在设计中,坚持使用触发器实现尽可能多的实现前台操作,不仅提高了操作效率、更提高了代码的安全性和共享性。
3.4数据库安全设计
网络的安全非常重要,从数据库级、服务器级和应用程序级综合考虑,在科研管理系统中要根据不同用户,设置不同的权限、不同的初始化菜单。在本系统中,数据库的安全主要通过数据库的存取控制机制实现的。首先定义各类管理人员的操作权限即角色,其次定义数据库登录,最后依据用户权限表将登录分配为相应的角色。由于人员的复杂性,角色分为三个层次:科研处级别、二级部门级别、普通教师级别。用户属于某一角色,即使用户职务调动时,对用户增删,不影响其他用户的操作,只是角色中用户数量的变化。建立专门的系统使用权限表来记录用户和权限,同时也兼容部门设置信息,对不同部门分配相应的权限和账号,科研处是最高管理级别部门。