Sự kiện (Event)

Một phần của tài liệu Nghiên cứu, xây dựng cơ sở dữ liệu tích cực (Trang 45)

Một sự kiện là một điều gì đó xảy ra ở một thời điểm. Bởi vậy, việc xác định một sự kiện bao gồm cả việc mô tả sự việc xảy ra đƣợc giám sát. Bản chất của việc mô tả và cách thức mà theo đó sự kiện có thể đƣợc phát hiện rộng rãi phụ thuộc vào nguồn (Source) hoặc đối tƣợng phát sinh sự kiện [5]. Các lựa chọn có thể là:

- Các hành động cấu trúc, trong trƣờng hợp sự kiện đƣợc sinh ra bằng một hành động ở một phần của cấu trúc (ví dụ nhƣ: thêm bản ghi, sửa một thuộc tính, truy cập vào 1 bản ghi).

- Lời kêu gọi hành vi, trong trƣờng hợp sự kiện đƣợc sinh ra bởi việc thực hiện một vài hành động của ngƣời dùng (ví dụ, thông điệp hiển thị đƣợc gửi tới một đối tƣợng kiểu widget). Đối với các ngôn ngữ sự kiện thƣờng cho phép các sự kiện xuất hiện trƣớc hoặc sau một hành động nào đó thực thi.

- Sự thực thi (giải quyết), trong trƣờng hợp khi sự kiện đƣợc sinh ra bằng các lệnh thực thi (ví dụ, từ chối abort, ủy thác commit, bắt đầu thực thi begin – transaction)

- Trừu tƣợng hoặc ngƣời dùng định rõ, trong trƣờng hợp một cơ chế lập trình đƣợc sử dụng cho phép một chƣơng trình ứng dụng báo hiệu sự xuất

hiện một sự kiện rõ ràng (ví dụ trong phản hồi một vài thông tin mà ngƣời dùng nhập vào).

- Ngoại lệ (loại trừ ra), trong trƣờng hợp sự kiện đƣợc sinh ra nhƣ là kết quả của một vài ngoại lệ phát sinh (ví dụ nhƣ, sự cố gắng truy cập một vài dữ liệu mà không có sự cho phép thích hợp).

- Đồng hồ, trong trƣờng hợp sự kiện đƣợc sinh ra ở một điểm thời gian, sự kiện thời gian tƣơng đối và chu kỳ đƣợc báo cáo trong tài liệu

- Ngoài ra, trong trƣờng hợp sự kiện đƣợc sinh ra bởi sự việc xảy ra bên ngoài cơ sở dữ liệu (ví dụ, nhiệt độ dọc lớn hơn 30 độ).

Một sự kiện biểu thị một sự kiện đƣợc xác định cho tất cả các đối tƣợng trong một tập hợp hay không (ví dụ, tất cả các đối tƣợng thuộc một lớp), đối với các tập hợp con đã cho (ví dụ nhƣ, tất cả các nhân viên trừ giáo sƣ) hoặc đối với một số thành viên nhất định của tập hợp (ví dụ, để tránh việc truy cập trái phép tới các đối tƣợng xác định, hoặc cho phép cập nhật các đối tƣợng cụ thể hiển thị trên màn hình).

Các kiểu sự kiện có thể là:

- Gốc (nguyên thủy), trong trƣờng hợp này sự kiện đƣợc sinh ra bởi sự việc đơn lẻ ở tầng thấp thuộc một trong những loại đƣợc mô tả ở nguồn (Source). Ví dụ, sự kiện “on insert to Owns” theo dõi việc thêm những bản ghi mới vào quan hệ “Owns”.

- Hỗn hợp, trong trƣờng hợp này sự kiện đƣợc sinh ra bởi sự kết hợp các sự kiện hoặc hỗn hợp bằng cách sử dụng một loạt các toán tử cấu thành lên sự kiện.

Các toán tử sự kiện khác nhau tùy vào hệ thống. Phổ biến là:

Toán tử tách rời(disjunction) – E1 or E2 xuất hiện khi một trong các thành phần E1 hoặc E2 xuất hiện;

Toán tử kết hợp (conjunction) – E1 and E2 xảy ra khi cả hai E1 và E2 đều xảy ra theo thứ tự bất kỳ;

Toán tử nối tiếp (sequence)– seq(E1,E2) xuất hiện khi E1 xuất hiện trƣớc E2; toán tử đóng kín – “closure E in Int” xuất hiện chỉ một lần lần

đầu tiên E ra tín hiệu, không cần chú ý tới sự xuất hiện sau đó của E trong một khoảng thời gian Int,

Toán tử sử học (history) – times(n,E) in Int báo hiệu khi sự kiện E xuất hiện n lần trong khoảng thời gian Int;

Phủ định (not) – not E1 in Int phát hiện sự không xuất hiện của sự E1 trong khoảng thời gian Int.

Nhƣ một ví dụ của của quy tắc với sự kiện hỗn hợp, quy tắc sau thực hiện sự ràng buộc mà thuộc tính qty của stock là nhƣ nhau bằng số lƣợng đƣợc ghi vào quan hệ Owns:

on update to qty of Holder or update to qty of Stock or insert to Stock or delete to Stock or insert to Holder or delete to Holder If exists (select * from Stock where qty # (

select sum (qty) from Owns

where Owns.reg# =Stock-.reg#) )

do abort

Nhƣ một ví dụ thêm, để xác định giá cổ phiểu bị thay đổi hay không trong ngày làm việc sự kiện có thể đƣợc sử dụng: on update to price of Stock in [09:00, 17:00].

Đại số sự kiện phong phú có thể đề xuất cho một loạt các hệ thống, bao gồm HiPAC [Dayal et al. 1988], SAMOS [Gatziu và Dittrich 1994], ODE [Gehani et al.1992] và Sentinel [Chakravarthy et al.1994].

Khi phát hiện những sự kiện hỗn hợp, có vài sự kiện xuất hiện (của cùng một loại sự kiện) có thể đƣợc sử dụng để hình thành nên một sự kiện hỗn hợp. Ví dụ nhƣ, hãy xem xét một sự kiện hỗn hợp CE mà là sự nối tiếp của hai sự kiện EV1

EV2. Nếu cả hai sự xuất hiện của sự kiện EV1, đầu tiên là ev1 và sau đó là

ev1’, đƣợc báo hiệu, và sự xuất hiện của sự kiện EV2 (ví dụ, ev2) bây giờ đƣợc tạo ra, có một câu hỏi là trƣờng hợp nào của CE sẽ đƣợc tạo ra. Khả năng bao gồm sequence(ev1,ev2) hoặc sequence(ev1’,ev2) hoặc sequence(ev1,ev2)

sequence(ev1’,ev2) . Các sự lựa chọn là phân biệt với nhau bằng cách sử dụng các điều khoản tiêu thụ. Trong Chakravarthy et al.[1994] tồn tại 4 điều khoản tiêu hủy đƣợc trình bày là: ngữ cảnh gần đây, xem xét phần lớn tập hợp sự kiện gần đây mà có thể đƣợc sử dụng để xây dựng lên sự hỗn hợp ( trong ví dụ trƣớc,

sequence(ev1’,ev2) đƣợc phát hiện khi ev2 xuất hiện, sau khi ev1’ và ev2 không còn đƣợc xét để phát hiện CE nữa); ngữ cảnh liên tục, nó xác định cửa sổ trƣợt và bắt đầu kết hợp với mỗi sự kiện nguyên thủy diễn ra (2 sự kiện nối tiếp bắt đầu đƣợc hình thành khi ev1 ev1’ xuất hiện, và cả hai sự kiện nối tiếp sẽ đƣợc báo hiệu nhƣ là ev2 đƣợc phát hiện); và ngữ cảnh tích lũy, chất đống tất cả các sự kiện nguyên thủy đến khi sự kiện ghép lại xuất hiện (sự kiện nối tiếp đƣợc báo chỉ một lần khi ev2 sinh ra, ở nơi tham số đầu tiên của sự nối tiếp chứa các tham số của tất cả sự xuất hiện của EV1, tức là ev1 ev1’). Nhân tố cơ bản cho mỗi ngữ cảnh có thể đƣợc tìm thấy ở Chakravarthy et al.[1994].

Vai trò của một sự kiện biểu thị các sự kiện phải luôn đƣợc định sẵn cho các quy tắc tích cực hay không, hoặc việc đặt tên rõ ràng của một sự kiện có cần thiết hay không. Nếu vai trò là tùy ý, thì khi mà không một sự kiện nào đƣợc xác định thì các quy tắc điều kiện - hành động đƣợc hỗ trợ, các quy tắc đó có chức năng khác nhau đáng kể và thực thi từ quy tắc sự kiện - điều kiện - hành động (ECA). Nếu nhƣ vai trò là none thì các sự kiện có thể không đƣợc định rõ, và tất

cả các quy tắc là quy tắc điều kiện – hành động. Nếu vai trò là bắt buộc, thì chỉ quy tắc ECA đƣợc hỗ trợ.

Hình 2.1 Ngữ cảnh mà trong đó một quy tắc đƣợc xử lý

Một phần của tài liệu Nghiên cứu, xây dựng cơ sở dữ liệu tích cực (Trang 45)