oracle触发器在高职院办公自动化管理系统中的应用

时间:2022-07-12 02:57:03

oracle触发器在高职院办公自动化管理系统中的应用

【摘要】本文分析了oracle触发器技术,并将该技术应用到辽宁轨道交通职业学院办公自动化管理系统中,实践表明该技术是维护数据完整性的有效方法。

【关键词】触发器;办公自动化;数据完整性

随着现代网络信息技术的发展和高校教学改革的不断深入,高职院校办公自动化管理手段也发生了深刻而具体的变革,学校教学管理事务也日益繁杂,尤其是随着学分制的推行,应用教务管理系统已成为高校教学管理的必然选择;再有学院各系部的新闻系统、学生操行管理系统、学生舍务管理系统、学生健康管理系统、学院的招生管理系统、学院的设备管理系统、学院的政治学习管理系统、图书管理系统等都日趋完善和复杂。如在教务管理系统中学生、课程是最重要的基础数据,贯穿教学计划、排课、选课、考试、成绩、教材、学生基本信息等各个管理过程,几乎与教务系统中所有子系统存在密切的关联。

尽管目前使用的教学管理系统能很好地实现日常最基本的教学管理功能,但由于系统设计上的缺陷,导致在维护数据库完整性方面存在困难.比如现行系统中学生的选课数据与学生学籍信息是两个没有关联的独立的数据表,当一名学生因故退学,学籍异动时将删除其学籍基本信息,但与该生相关的选课数据还存放在选课数据库中,这就导致了内部数据不一致的错误,其结果是该生所选课程的整个教学班成绩都无法提交。目前教务管理系统却不能很好地解决这类数据完整性约束问题,作为教务系统管理员必须避免类似数据不一致情况的发生。再如学生经医务室诊断得病需回家治疗而教学的老师和学生管理部门不能第一时间知道这件事等。在此提出采用触发器技术来解决这类数据完整性问题。

1.oracle触发器

数据的完整性是指数据库中数据的正确性、有效性和相容性,是为了防止数据库中存在不符合语义规定的数据和防止系统输入/输出无效信息而提出的。在oracle数据库中的数据完整性包括实体完整性(Entity Integrity)、参照完整性(Referential Integrity)、用户自定义完整性(User-defined Integrity)、域完整性(Domain Integrity)。触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的,是自动执行的。触发器功能:允许/限制对表的修改;自动生成派生列,比如自增字段;强制数据一致性;提供审计和日志记录;防止无效的事务处理;启用复杂的业务逻辑。当数据的完整性出现问题的时候,可以利用触发器技术检测处理。它基于一个表来创建并和一个或多个数据修改操作(插入、更新或删除)相关联。在oracle中按照触发事件的不同,触发器可以分为两大类:DML触发器和DDL触发器。DML触发器的特点是当数据库中发生数据操纵语言事件时触发器被触发执行,其被广泛应用于数据被修改时的强制执行业务规则,以及数据完整性检查;DDL触发器则是在服务器或数据库中发生数据定义语言事件时被调用。根据触发时机来分,触发器可分为AFTER触发器和INSTEAD OF触发器:AFTER触发器是指相应的操作被执行完毕后触发,INSTEAD触发器是指在相应的操作被执行前触发并替代该操作。根据触发方式,触发器可以分为INSERT触发器、UPDATE触发器、DELETE触发器。在创建触发器时需要制定以下内容:触发器名称、触发器所基于的表或视图、触发器种类(AFTER或INSTEAD OF)、激活触发器的修改语句(INSERT,UPDATE和DELETE)、触发执行的语句,用T―SQL语句创建触发器的具体语法格式如下:

CREATE [OR REPLACE] TRIGGER 触发器名

{BEFORE|AFTER|INSTEAD OF} 触发事件1 [OR 触发事件2...]

ON 表名

WHEN 触发条件

[FOR EACH ROW]

DECLARE

声明部分

BEGIN

主体部分

END;

2.教务管理系统中触发器的设计

教务管理系统总体可分为学籍管理子系统、成绩管理子系统、选课管理子系统、排课管理子系统等,在学籍管理子系统中,学籍异动对数据的完整性就要求很高,学籍的变动涉及到学生的成绩和选课数据的变动。如果我们靠手工来变动这些数据,数据量大而繁杂,容易出错,如果靠程序本身来调用TransactionSQL语句会浪费系统开销,增加程序设计难度.而触发器的引人,将是一个理想方案.学籍的变动触发学生成绩和选课数据的自动更新,整个过程也将在数据库服务器上进行,能够提高系统的运行性能.以学生退学为例,在教务管理系统中,需要删除学生的学籍和选课信息。在没有使用触发器的情况下,需分别从学生信息表和学生成绩表中分别删除相应学生的记录,这样操作起来既麻烦又不能保证数据完整性.在引入触发器后,管理员只需删除学生信息表中该生信息,便可以通过触发器自动删除该学生的选课记录,这样既简化了操作,又可以保证数据完整性.

3.触发器的实现

下面以我院的学生数据库为例说明触发器在教务管理系统中的设计与实现.

数据库的主要表及关系模式如下:

学生(学号,姓名,性别,系别,专业,班级,出生日期,籍贯)课程(课程编号,课程名称,课程类型,专业,周学时,学分)成绩(学号,课程编号,成绩)

1)发生学生退学的情况。

这个时候教务系统管理员需要删除学生表中该同学的记录,同时也需要在成绩表中删除该同学相应的选课记录,保证数据完整性和一致性。

2)出现学号变更的情况。

此时教务系统管理员不仅要修改学生表中该生的学号,还要修改成绩表中的学号,保证数据完整性。

3)出现新开设专业必修课的情况。

此时在课程表中插入相应课程信息后,同时向成绩表中插入该专业所有学生的相关记录(成绩暂为空),实现了成绩表的自动填充,保证了数据完整性.

4.结束语

在教务管理系统中,数据的一致性和完整性非常重要,在开发和设计时,我们一定要充分了解教务管理系统对数据的操作规则,合理设计触发器来满足数据完整性的要求。本文以辽宁轨道职业学院的教务管理系统中数据完整性约束为例并进行了较为深入地探讨和分析,根据教务管理工作的特点和规律对教务管理系统的几类典型触发器进行了设计,并通过ORACLE得以实现。掌握数据完整性对数据库系统设计人员来讲非常重要,它保证系统能够正确、有效地运行,大大提高了系统的可靠性。在教务管理系统中运用触发器技术来解决的这些典型问题,也可以推广到办公自动化管理系统中其它数据库系统的运行和维护中去。

参考文献

[1]郑阿奇.Oracle实用教程[M].电子工业出版社.

[2][美] Karen Morton Kerry Osborne.精通Oracle SQL(第2版)[M].人民邮电出版社

[3]赵振平.Oracle数据库精讲与疑难解析(第2版)[M].电子工业出版社.

上一篇:瘦终端的应用和比较 下一篇:化工企业采购管理发展趋势研究