Vấn đề thiết kế và cài đặt cho các cơ sở dữ liệu tích cực

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU, XÂY DỰNG CƠ SỞ DỮ LIỆU TÍCH CỰC pdf (Trang 58 - 60)

Phần trước đã cho tổng quan về các khái niệm chính để chỉ ra các quy tắc tích cực. Trong phần này đưa các vấn đề bổ sung liên quan đến việc thiết kế và cài đặt các quy tắc như thế nào. Vấn đề thứ nhất liên quan đến việc kích hoạt, thôi kích hoạt và nhóm các quy tắc. Thêm vào việc tạo ra các quy tắc, một hệ thống cơ sở dữ liệu tích cực phải cho phép những người sử dụng kích hoạt, thôi kích hoạt và bỏ các quy tắc bằng cách tham chiếu đến các tên quy tắc của chúng. Một quy tắc thôi kích hoạt sẽ không bị kích hoạt bởi sự kiện kích hoạt. Tính chất này cho phép các người sử dụng lựa chọn các quy tắc thôi kích hoạt đối với một chu kỳ thời gian nào đó khi chúng là không cần thiết. Các lệnh kích hoạt sẽ làm cho các quy tắc tích cực trở lại. Lệnh drop loại bỏ các luật ra khỏi hệ thống. Một tùy chọn khác là nhóm các quy tắc vào một cái gọi là thiết lập quy tắc, như vậy toàn bộ tập hợp các quy tắc có thể được kích hoạt, ngừng kích hoạt hoặc loại bỏ. Việc có một lệnh có thể kích hoạt một quy tắc hoặc một tập quy tắc thông qua một lệnh PROCESS RULES do người sử dụng đưa ra cũng là một điều có lợi.

Vấn đề thứ hai liên quan đến liệu hành động được kích hoạt có thể được thực hiện trước, sau, hoặc đồng thời với sự kiện kích hoạt được hay không. Vấn đề liên quan là liệu hành động được kích hoạt có thể được xem như một giao tác tách rời hay không hay nó phải là một phần của cung giao tác kích hoạt quy tắc. Trước tiên chúng ta phải cố gắng phân loại các tùy chọn khác nhau.

Điều quan trọng là không phải tất cả các tùy chọn có thể sẵn sang sử dụng đối với một hệ cơ sở dữ liệu tích cực. Thật vậy, hầu hết các hệ thống thương mại được giới hạn đến một hoặc hai tùy chọn.

Giả thiết rằng sự kiện kích hoạt xảy ra như là một phần của việc thực hiện giao tác. Trước hết chúng ta xét các tùy chọn khác nhau với việc sự kiện kích hoạt liên kết với việc tính giá trị của các điều kiện của quy tắc như thế nào. Việc tính giá trị của các điều kiện của quy tắc cũng được xem như xem xét quy tắc bởi vì hành động chỉ được thực hiện sau sự xem xét lại điều kiện tính giá trị đến true hoặc fasle. Có ba khả năng chính đối với sự xem xét quy tắc:

[1]. Sự xem xét tức khắc (immediate consideration): Điều kiện được tính giá trị như là một phần của cùng giao tác như là sự kiện kích hoạt và được tính toán ngay tức khắc. Trường hợp này có thể được phân loại thành ba tùy chọn:

- Tính giá trị điều kiện trước khi thực hiện sự kiện kích hoạt - Tính giá trị điều kiện sau khi thực hiện sự kiện kích hoạt - Tính giá trị điều kiện thay vì thực hiện sự kiện kích hoạt

[2]. Sự xem xét chậm: Điều kiện được tính giá trị ở cuối giao tác chứa sự kiện kích hoạt. Trong trường hợp này có thể có nhiều quy tắc được kích hoạt chờ để có các điều kiện của chúng được tính.

[3]. Sự xem xét riêng rẽ: Điều kiện được tính giá trị như là một giao tác riêng rẽ, tách rời khỏi giao tác kích hoạt.

Tập hợp các tùy chọn tiếp theo liên quan đến mối quan hệ giữa việc tính giá trị điều kiện của quy tắc và việc thực hiện hành động của quy tắc. Ở đây, một lần nữa có ba tùy chọn có thể có: thực hiện tức khắc, thực hiện chậm và thực hiện tách rời. Tuy nhiên, hầu hết các hệ thống tích cực sử dụng tùy chọn thứ nhất. Nghĩa là, khi điều kiện được tính giá trị, nếu nó trả lại giá trị true, hành động được thực hiện ngay tức khắc.

Một vấn đề khác liên quan đến các quy tắc của cơ sở dữ liệu tích cực là sự phân biệt các quy tắc mức dòng (row-level rule) và các quy tắc mức lệnh (statement-level rule). Bởi vì các lệnh cập nhật của SQL (được xem như các sự kiện kích hoạt) có thể chỉ ra một tập hợp các bộ, ta phải phân biệt giữa liệu quy tắc có thể xem xét một lần đối với toàn bộ lệnh hay không hay liệu nó có thể được xem xét một cách tách biệt đối với từng hàng bị ảnh hưởng bởi lệnh. Hệ

thống Oracle cho phép người sử dụng chọn một trong hai tùy chọn trên sử dụng với từng quy tắc.

Một trong các khó khăn có thể hạn chế việc sử dụng rộng rãi các quy tắc tích cực, mặc dù khả năng của chúng lầm đơn giản việc phát triển cơ sở dữ liệu và phần mềm, là ở chỗ không có các kỹ thuật dễ sử dụng để thiết kế, viết và kiểm tra các quy tắc. Ví dụ, rất khó khăn để kiểm tra rằng một tập hợp các quy tắc là tương thích, nghĩa là hai hoặc nhiều quy tắc trong tập hợp không mâu thuẫn với nhau. Cũng rất khó khăn để đảm bảo sự kết thúc của một tập hợp các quy tắc dưới mọi hoàn cảnh. Để minh họa ngắn gọn vấn đề kết thúc, hãy xem xét các quy tắc dưới đây:

R1: CREATE TRIGGER T1 AFTER INSERT ON TABLE1 FOR EACH ROW

UPDATE TABLE 2

SET ATTRIBUTE 1 = ……..; R2: CREATE TRIGGER T2

AFTER UPDATE OF ATTRIBUTE1 ON TABLE 2 FOR EACH ROW

INSERT INTO TABLE 1 VALUE (….);

Ở đây quy tắc R1 được kích hoạt bởi một sự kiện INSERT trên bảng 1 và hành động của nó gồm một sự kiện UPDATE trên thuộc tính 1 của bảng 2. Tuy nhiên, sự kiện kích hoạt của quy tắc R2 là một sự kiện UPDATE trên thuộc tính 1 của bảng 2 và hành động của nó bao gồm một sự kiện INSERT trên bảng 1. Dễ dàng nhìn thấy trong ví dụ này hai quy tắc có thể kích hoạt lẫn nhau không ngừng, dẫn đến sự không kết thúc. Vì vậy, nếu hàng chục quy tắc được viết thì sẽ rất khó khăn để xác định sự kết thúc có được đảm bảo hay không.

Nếu các quy tắc tích cực đạt đến khả năng của nó thì cần phải phát triển các phương tiện để thiết kế, sửa lỗi và hướng dẫn các quy tắc tích cực nhằm giúp các người sử dụng trong việc thiết kế và sửa lỗi các quy tắc đó.

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU, XÂY DỰNG CƠ SỞ DỮ LIỆU TÍCH CỰC pdf (Trang 58 - 60)