Active rule management system is an advanced facility which enhances traditional database functionality by providing not only database-related triggers but also application-related rule management. In the active rule management systems, operations are executed automatically by executing a set of pre-defined rules in response to events, such as database events, application events, etc. Active rules typically consist of event, condition, and action which are generally referred to as ECA rules. During the active rule executions, it is usual that rules fire other rule. In some undesirable situations, rules ate fired infinitely forming cycles. This phenomenon is said to be a non-termination of rules and should be avoided . The goal of rule termination analysis is to detect rule subsets that may potentially lead to infinite firing of rules. In this thesis, we present an efficient rule termination analysis method that can be used to verify the termination of fired rules in active rule based systems. We also present a development of a graphical user interface which allows the rule developer to be able to easily identify undesirable design of event-rule firing chain. With the identified cyclic rule chains. the rule developer can modify the specification of event and rules, and then, apply the rule termination analysis method again. This iterative process should be performed until termination analysis guarantees that the rule set will never manifest a non-terminating rule behavior. Many event-trigger-rule processing systems adopt composite events to give more expressiveness in defining application rules. Rule firing by composite events makes the rule termination much more complicated and thus hard to analyze . Most of existing termination analysis methods do not handle this problem properly. Some method reports the capability of detecting cyclic rule firing caused by composite events. However, they still have difficulty to tell genuine cycles from spurious ones. The rule termination analysis algorithm proposed in this thesis employs transformation of event-rule triggering structure in to Atomic Event-Rule trees. The decomposed Atomic Event-Rule trees are then gradually merged into a Global Event-Rule tree showing potential cyclic rule chains. The contribution of the work reported in this thesis are; (1) to design a new static rule-termination analysis method to support not only primitive events but also composite events, and(2)to provide rule developers with graphical user interface which enables them to easily identify potential unterminated rule firing chains to be corrected in the course of rule debugging.
방대한 용량의 데이터를 여러 사용자가 데이터의 일관성을 유지하면서 저장, 삭제 , 변경의 기능을 제공하던 기존의 데이터 베이스 관리 시스템이 사용자의 요구에 의해서 수행되는 수동적인 형태였다면, 능동형 데이터베이스 관리 시스템 (이하 Active DBMS)은 사용자의 요구가 없어도 일정한 조건을 만족하는 상황이 발생하면 스스로 특정 작업을 수행하는 기능을 제공하는 시스템이다. 이러나 기능의 제공을 위해 Active DBMS에서는 각각의 능동적인 작업의 단위를 rule을 통해 표현하고 있으며, 이러한 rule들을 실행시키기 위한 동기의 부여를 event 의 발생을 통함으로써 능동적인 기능을 제공하고 있는 것이다.
능동적 rule의 수행중, 다른 rule을 발생시킬 수 있다. 이러한 rule의 수행이 무한하게 다른 rule을 발생시킬 수 있다. 이러한 rule의 수행이 무한하게 다른 rule을 발생 시키며 순환될 수 있는 상황이 발생할 수 있다 . 이런 현상을 non-termination 이라하며 반드시 피해야한다. Termination analysis의 목적은 이러한 무한수행을 일으킬 것으로 예상되는 rule의 집합을 찾아내는 것이다. 이러한 과정을 통해 개발자는 rule의 집합을 알맞게 수정한 후 다시한번 termination analysis를 해야한다. 이런 순환적인 작업은 rule이 종료됨을 보장할때까지 반복되어야 하는 것이다. 또한, event의 구동으로 인한 rule을 수행하는 여러시스템에서 효율적인 rule의 표현을 위해 composite event를 도입하여 사용하고 있다. Composite event의 사용은 rule의 종료 분석을 하는데 있어 더욱 복잡하게 되었으며 그로인하여 정확한 분석을 수행하기가 어렵게 되었다. 기존의 종료 분석 방법은 이러한 문제를 정확히 처리하지 못하고 있으며, composite event를 고려하더라 하여도 정확한 종료분석을 하지 못하여, 불필요한 rule cycle을 발견하고 있다. 본 논문에서는 기존의 TG에서 rule의 무한 수행을 찾는 방법에서 벗어나, 각각의 event 와 rule을 기반으로 Atomic Event-rule Tree를 생성하여 접근하는 방법을 시도하였다. Atomic tree는 해당 event의 발견으로 자동적으로 수행될 수 있는 rule들과의 관계와 rule의 수행 과정에 발생시킬 수 있는 event 의 관계를 tree의 형태로 표현한 두 가지 유형을 나눌 수 있다. 이러한 접근 방법은 기존의 termination analysis 방법에서 고려하지 못했던 composite event의 경우를 compile time에 rule의 연속적인 수행을 예측할 수 있도록 확장시키기 위한것으로, 위의 atomic tree를 연속적으로 병합하는 과정을 통해 Global Event-Rule Tree 를 생성하게 된다. Global tree는 기존의 termination analysis에서 제공하는 rule의 무한 수행을 예측하는 기능 뿐만이 아니라, rule 개발자에게 rule의 예상되는 수행과정을 보여줌으로써 개발과정에서 발생할 수 있는 rule의 재수정시 보다 유용한 정보를 제공할 수 있다는 장점을 가지고 있다.