基于主动数据库教务系统模型的研究

时间:2022-09-14 03:33:57

基于主动数据库教务系统模型的研究

摘 要 分析了传统教务管理系统的不足,提出通过在程序中嵌入规则库的方式实现基于主动数据库的教务管理系统,通过实践研究证明该系统能够主动提供实时,全方位的服务,并且主动服务机制是高效的、可行的。

关键词 主动数据库;EAC;触发器

中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2013)15-0021-02

随着高校信息化的深入,越来越多的工作需要用计算机来完成,教务管理软件系统或类似的软件已被许多高校使用。一般来说,系统具备学生信息管理、学生成绩管理、学籍管理、学生选课管理等功能,能够满足教务管理的基本要求。但是因为承载数据量大,处理事务繁多,一些隐性的关键性问题却被忽视。基于主动数据库的高校教务管理系统采用EAC机制,SQL3触发器技术,在对信息进行整合的基础上,实现了各种主动服务功能,能够满足师生不同层次多方面的需求,为学校教务管理提供了有力的技术支持。

1 主动数据库及实现方法

主动数据库是相对于传统的数据库而言的。传统数据库系统只能被动的执行插入,删除,更新操作,而不会灵活地根据数据库的外部环境或内部状态等情况主动做些什么,而主动数据库系统是一种能根据各种事件的发生主动给用户提供相应服务的数据库系统。

1.1 主动数据库系统结构

主动数据库系统是在传统数据库系统基础上,添加一个由事件驱动的ECA(Event-Condition-Action)规则库和事件监视器来实现的,用以下形式来表示:

ADBS=DBS+EB+EM

DBS(Database System)等同于一般的传统数据库系统。

EB(Event Base)由事件驱动的规则库,存放当某一事件发生时,系统会执行的相应动作。

EM是一个随时监视EB中的事件是否已经发生的监视模块,一旦监视到某事件已经发生时就主动地触发系统,按照EB中指明的相应知识执行其中预先设定的动作。

1.2 主动数据库系统的实现

可通过三种途径:

1)在原有数据库系统上改造,在传统数据的基础上添加规则库和事件监视模块,使其构造为主动数据库系统。

2)把一般程序设计语言改造成一种主动的程序设计语言,然后按传统方法把数据库操作嵌入在其中执行。由主动程序设计语言将事件规则库分成块,分布在各个过程或对象中,主动程序作为人机接口。

3)从无到有构建主动数据库服务系统,不依赖于原先的数据库及程序。

第一种方法比较简单,可以充分利用现有的技术和资源,但效率较差;第二种方法除了在两种语言的接口部分可能损失一定的效率之外,运行效率较好;第三种方法是一种最彻底的方案,运行效率高,但是开发较为复杂,开发时间也需要较长。因此应根据具体情况对上述三种实现途径进行具体的选择。

2 基于主动数据服务的教务系统

2.1 目标

1)在管理学生、教师信息时,满足完整性约束条件,保证数据的一致性。即当一个学生不存在时,不会有他的成绩、奖惩等相关信息;当一个教师调整工作岗位后,他的相关信息也会调整。

2)在录入某位学生成绩时,会统计他的不及格的课程数,据此给出能否评优信息,并统计班级不及格人数;如果不及格人数大于规定值,会触动班主任服务事件,提醒根据班内成绩主动为学生服务,同时还会触发班主任考核事件。

2.2 基于主动数据库的教务管理系统模型

高校教务管理系统一般包括:学生信息管理、学生成绩管理、学籍管理、学生选课管理等模块,现以学生成绩管理模块为例,按照ECA主动服务的机制来设计,当录入学生成绩事件发生时,触发了学生成绩管理事件,进行成绩表的更新和并统计该生不及格的门数;当不及格门数大于规定阀值时,触发学生评优管理事件,进行班级评优表的更新并统计不及格人数,如一位学生不及格门数过多,将取消评优资格;当班内不及格人数大于规定阀值时,触发班主任服务事件,说明不及格不是个别现象,班主任需要分析学生学习情况,找出问题,主动服务于学生。同时触发班主任考核事件,依据学生情况,更新对该班主任的评价。

2.3 实现方式

使用规则库嵌入程序设计语言的途径来实现。通过程序设计语言来描述ECA规则,而不需另外的表来存储。具有主动功能的程序将传统数据封装起来,利用标准SQL中的触发器机制,使主动程序成为人机接口,从而实现主动数据库服务系统。这种途径减少了规则匹配时间,系统运行效率可以得到大大提高。

3 实例研究

3.1 基础数据

该模块涉及的基本数据如下:

S1---学生成绩表(学号,班号,课程号,成绩)――学号主键,班号外键

S2---成绩情况统计表(学号,不及格课程数)――学号

主键

S3---学生评优表(学号,是否具备评优资格)――学号

主键

S4---班级成绩统计表(班号,班主任编号,不及格人数)――班号主键,班主任编号外键

S5---班主任考核表(班主任编号,考核得分)――班主任编号主

3.2 实现步骤

1)录入学生成绩事件发生后,触发更新成绩情况统计表

行为。

CREATE TRIGGER INSET_S1 ON S1

FOR INSERT

AS

DECLARE @NUM INT,@SNO CHAR(10)

SELECT @SNO FROM INSERTED

SELECT @NUM=(SELECT COUNT(学号) FROM S1 WHERE 成绩

UPDATE S2 SET 不及格门数=@NUM

2)不及格门数>3事件发生时,触发更新班级评优表行为,并更新班级成绩统计表。

CREATE TRIGGER UPDATE_S2 ON S2

FOR UPDATE

AS

DECLARE @BJ CHAR(4)

SELECT @BJ=班号 FROM DELETED

――对不及格门数大于3的学生取消评优资格

UPDATE S3 SET 是否具备评优资格=0 WHERE 学号=

(SELECT 学号WHERE 不及格门数>3 FROM S2)

――更新学生所在班级的不及格人数

UPDATE S4 SET 不及格人数=(SELECT COUNT(DISTINCT 学号 FROM 学生成绩表 WHERE 成绩

4 结束语

分析了传统教务管理系统不能主动提供信息服务的不足,提出通过在程序中嵌入规则库的方式实现主动服务型的教务管理系统,实例证明该系统能主动为教师、学生提供实时,全方位的教务信息服务,该服务机制是高效的、可行的。

参考文献

[1]毕利.主动数据库的模型及实现途径[J].计算机工程,2000,26(9):102-103.

[2]汤庸,叶小平,汤娜,数据库理论及应用基础[M].北京:清华大学出版社,2004:113-125.

[3]李同英.主动机制数据库技术应用研究[J].微计算机信息,2006,22(36):214-216.

[4]刘云生,胡国铃,舒良才.一个实时主动数据库的触发机制[J].计算机研究与发展,1997,34(1):33-37.

[5]张沪寅,陈珉,文小军.主动实时数据库系统触发器模型的研究[J].武汉大学学报(信息科学版),2002,23(6):642-646.

上一篇:发动机缸体再清洁装置的PLC控制 下一篇:房地产测绘与地理信息集成系统分析