结束语
本文论述了主动数据库在装备仓库管理系统中的应用的构想和简单的示例,要将主动数据库完全应用于装备仓库管理系统中,还需做大量的调查和研究工作。近年来,随着军队对人员和机构的不断精减调整,装备仓库管理系统和维护人员也逐渐减少,但工作量并没有减少,甚至较以前有所增加。减少装备仓库管理系统工作量、尽量避免在日常工作中出现失误成为当前急需解决的问题。主动数据库系统的应用可以使得装备仓库的日常管理变得方便而简便,对管理人员的进行管理的应用程序操作培训和数据库基础知识的简单学习就可胜任管理工作,保证了装备仓库在人员减少、工作量不变甚至增加的情况下依然可以较好的完成日常工作。
三、主动数据库在装备仓库物资管理中的应用
主动数据库要求把主动性功能用统一的方法与原有数据库集成在同一数据库系统中。它除了强调“主动服务”之外,更强调用“统一机制”来实现,这种“统一机制”就是规则机制。
1.规则库
主动数据库常采用事件驱动的ECA规则模型,即事件-条件-动作(Event-Condition-Action)规则。事件驱动的“事件-条件-动作”的一般形式为:
WHEN<事件表达式>
IF<条件1>THEN
<动作1>
ENDIF
ECA规则由事件、条件、动作三部分组成。其中事件、条件、动作的描述如下:
(1)事件(Event)一引发规则执行的原因。
(2)条件(Condition)一规则被执行后要检查的内容。
(3)动作(Action)一规则被触发且条件为“真”时要执行的动作。
上述事件驱动的“事件一条件一动作”规则的语义是:当ECA规则规定的事件发生时,计算机就主动触发执行IF一THEN规则,即当条件满足时执行相应的动作,约束项规定执行规则动作的约束条件,并且接着逐个检查下一个IF-THEN规则,直到执行完为止。
下面以装备仓库中一些对主动数据库的需求和应用的例子说明规则库的定义:
装备仓库存储的物资不但包括成品装备,还包括各种装备的零部件、维修器材等,其中很多装备和器材都有存储期限,超过存储期限被将列为待报废物品,如橡胶制品、塑料制品等,如不及时对其进行处理,将造成极大浪费;为延长物资的存储时间和保持其良好的状态,应定期对其进行保养,如车辆季节性开启、封存、试运转,在装备器材种类数量繁多,管理人员无法兼顾时,如不及时提示管理人员进行保养,会造成一定的损失;为保证一些常用装备和器材的及时供应,其库存数据不应低于一定限度,低于一定数量时应及时采购。
将上述需求定义成“事件—条件—动作”规则如表1所示。
本文提出的规则的外部表现形式为图表的形式,而在装备仓库管理系统thldl.org.cn数据库中,需先将规则的图表转化成统一的表格形式,将每一条规则都视为一条记录存入装备数据库中对应的规则表中。

2.规则执行流程
事件检测:确定规则所关心的事件是否发生,事件检测可以在用户进行操作时进行,可以通过触发器,设定事件发生的条件,自动执行。
事件分析:分析与发生的事件有关的规则,确定规则是否被触发。
动作执行:执行被触发规则中的动作部分。如规则(1)中,如用户同意将过期装备器材列为待报废,动作执行将对数据库进行修改。
结果显示:是动作执行的后续部分,显示出动作执行的结果,如上述三个规则中向用户发生提示信息。
3.实现的途径
1)原有数据库仓库管理系统之上增建一个经常有机会运行的事件监测器
由于仓库管理系统已广泛应用了数据库仓库管理系统,为避免重复开发和浪费,最简单实现方案就是在原有仓库管理系统数据库的基础上进行改造。在原有数据库仓库管理系统之上增建一个经常有机会运行的事件监测器。此时,事件规则库是统一的一个库,由用户预先设置好,在应用程序运行的同时,由事件监视器来监视事件的发生。
2)使用触发器
在标准SQL3和商用数据库仓库管理系统中,引进了“触发器”概念,从某种意义上引入了主动数据库的主动处理功能。SQL触发器遵循主动数据库“事件—条件—动力(ECA)”的规则。因此使用触发器也是实现主动数据库的一种途径。
根据触发器触发事件的级别可分为数据库级触发器和表级触发器,表级触发器又可分为行级触发器和语句级触发器,行级触发器对处理中每一行都执行一次。语句级触发器对每个处理执行一次,可以同时执行多行语句。
电话:400-658-1599
传真:010-62798843-20
邮箱:unitraining@tsinghua.edu.cn
地址:北京海淀区清华大学华业大厦3608室
邮编:100084