2.1. CƠ SỞ DỮ LIỆU TÍCH CỰC
2.1.2.2. Điều kiện (Condition)
Vai trò của một điều kiện biểu thị đã quy định hay chƣa. Trong các quy tắc ECA, điều kiện thông thƣờng là tùy chọn. Khi không điều kiện nào đƣợc quy định cho một quy tắc ECA, dẫn đến một quy tắc sự kiện – hành động. Trong các hệ thống mà ở đó cả sự kiện và điều kiện là tùy chọn, thì đó luôn là trƣờng hợp mà ít nhất một cái đƣợc quy định [5].
Ngữ cảnh biểu thị sự thiết lập mà trong đó điều kiện đƣợc đánh giá. Các thành phần khác nhau của một quy tắc không đƣợc đánh giá trong sự độc lập trong cơ sở dữ liệu hoặc từ mỗi thành phần khác, và hơn nữa cũng có thể không đƣợc đánh giá lần lƣợt. Kết quả là, việc xử lý một quy tắc đơn lẻ có thể đƣợc liên kết với ít nhất 4 trạng thái cơ sở dữ liệu khác nhau: – cơ sở dữ liệu ở thời điểm bắt đầu của sự thực thi hiện thời; – cơ sở dữ liệu khi sự kiện đã diễn ra, – cơ sở dữ liệu khi điều kiện đƣợc đánh giá; và – cơ sở dữ liệu khi hành động đƣợc thực hiện. Hệ thống quy tắc tích cực có thể hỗ trợ các công cụ bên trong điều kiện của quy tắc mà cho phép nó có thể không truy cập tới hoặc nhiều hơn các trạng thái và, , và có thể cũng cho phép truy cập tới các ràng buộc liên kết với sự kiện . Các thông tin có sẵn đƣợc dùng với các thành phần khác nhau của một quy tắc đƣợc minh họa ở Hình 2.1. Nhìn chung, vị trí của các thành phần còn phức tạp hơn trong miêu tả ở Hình 2.1, bởi
vì trạng thái trƣớc và sau một sự kiện diễn ra có thể khác nhau, và bởi vì nhiều sự kiện có thể đƣợc bắt đầu và có thể thực hiện tới khi hoàn thành trong khi thực hiện một hành động đơn lẻ. Nhƣ là một ví dụ tính tiện ích của thông tin đó, quy tắc sau đƣợc sử dụng để phản hồi lại tình huống trong đó giá trị của cổ phần nắm giữ bởi cổ đông (Holder) giảm về 0.
on update tovalue of Holder If new.value = 0
do (action)
Trong quy tắc này, thông tin từ sự kiện ( đƣợc sử dụng để xác định khi nào trƣờng value đƣợc thiết lập bằng 0, do đó việc phản hồi thích hợp có thể đƣợc tạo ra (ví dụ, cổ đông Holder đƣợc xóa, thông tin về cổ đông Holder đƣợc gửi tới ngƣời quản lý quỹ). Một ví dụ khác, các điều kiện hay hành động truy cập tới tham số sự kiện sử dụng old chuyển đến giá trị mà một mục dữ liệu nắm giữ trƣớc một sự kiện cập nhật nó, insert dẫn tới giá trị mới đƣợc chèn vào, delete là việc dẫn tới một giá trị hiện tại bị xoá và cập nhật liên quan tới các thuộc tính của một mục dữ liệu mà chúng không bị ảnh hƣởng bởi sự kiện cập nhật.