CHƯƠNG II: CƠ SỞ DỮ LIỆU SUY DIỄN
2.2 Các vấn đề của hệ quản trị cơ sở dữ liệu suy diễn
2.3.2 Ngữ nghĩa của DATALOG
2.3.2.3 Lý thuyết điểm cố định
Một phương pháp khác để tính ngữ nghĩa của một chương trình DATALOG, tức là các vị từ mục đích, bao gồm việc giải thích chương trình nhƣ một tập hợp các quy tắc sản xuất và thực hiện các quy tắc cho đến khi không thể sinh ra một sự kiện mới nào. Thủ tục này tương ứng với việc áp dụng của phép toán “hệ quả ngay tức khắc”(consequence immediate), nó thêm vào cơ sở các sự kiện một cách liên tiếp, mỗi sự kiện đƣợc sinh ra bởi một quy tắc mà điều kiện của nó đƣợc thoả mãn.
Trong ngữ cảnh các cơ sở dữ liệu, nói chung người ta thích tính các tập hợp sự kiện bằng cách áp dụng các phép toán của đại số quan hệ nhƣ là phép chọn, phép nối, phép hợp và phép trừ. Ở vị trí của phép nối và để đơn giản hoá việc dịch các quy tắc thành các biểu thức quan hệ chúng ta sử dụng tích đề các tiếp theo sau là một phép chọn. Để dịch một cách đơn giản một quy tắc DATALOG thành biểu thức đại số quan hệ, đầu tiên ta đặt tên lại các biến bằng các tên cũ và đƣa thêm vào các vị từ bằng nhau giữa các biến. Ví dụ, quy tắc R(x,y) B(x,z) , C(z,y) sẽ đƣợc viết lại R(x,y) B(x,z1), C(z2,y), z1 = z2. Một quy tắc nhƣ vậy đƣợc gọi là một quy tắc đƣợc đính chính.
Mỗi một điều kiện của một quy tắc đƣợc đính chính dạng : Q R1,R2,…Rn,P1,P2…Pn
(Rilà các vị từ quan hệ và Pj là các vị từ ràng buộc trên các biến) có thể đƣợc dịch thành một biểu thức đại số quan hệ P1,P2,…Pn (R1R2…Rn), trong đó ký hiệu phép chiếu qua tiêu chuẩn ở chỉ số và là phép toán tích Đề các. Biểu thức này tính một vị từ mà các cột của nó tương ứng với tất cả các biến xuất hiện trong quy tắc đƣợc đính chính. Một phép chiếu cuối cùng phải đƣợc thêm vào để giữ lại chỉ những biến tham chiếu trong đầu của quy tắc.
Nhƣ vậy, giả sử Er là biểu thức đại số quan hệ là kết quả của việc chuyển đổi một điều kiện của một quy tắc r có dạng Q R1, R2, … Rn, P1, P2, … ,Pn. Quy tắc được thay thế bằng phương trình đại số quan hệ Q = Q Er. Như vậy, mỗi một chương trình DATALOG P được thay thế bằng một chương trình đại số quan hệ được ký hiệu là Tp.
Ví dụ 2.7: Chuyển từ các chương trình DATALOG sang chương trình của đại số quan hệ:
NHANVIENINF(x,y) NHANVIEN(x,y), x = informatic ; NHANVIENINF = NHANVIENINF A1= informatic(NHANVIEN)
Xuất phát từ chương trình đại số Tp nhận được bằng việc dịch từng dòng một của chương trình P sang đại số quan hệ, có thể định nghĩa ngữ nghĩa của chương trình DATALOG. Giả sử là các sự kiện chứa trong cơ sở dữ liệu (các bộ của cơ sở ngoại diện). Ngữ nghĩa của c hương trình có thể đƣợc định nghĩa qua việc áp dụng tuần tự từ Tp với , sau đó với kết quả Tp(), sau đó với kết quả Tp(Tp()), v v…cho đến khi nhận đƣợc một điểm cố định Tpn().Ta nói rằng ta đã nhận đƣợc một điểm cố định khi một áp dụng mới của Tp không làm thay đổi kết quả. Việc tồn tại một điểm cố định đƣợc đảm bảo bởi vì Tp là một toán tử đơn điệu, nó chỉ làm việc thêm các sự kiện vào các vị từ mục đích; điều đó bị chặn bởi tích Đề các của các miền giá trị của chúng, quá trình là hội tụ.
Khái niệm 2.9 Ngữ nghĩa điểm cố định (Fixpoint Semantics)
Ngữ nghĩa mà theo đó một sự kiện là đúng nếu nó thuộc về điểm cố định của một toán tử, nó có thể được định nghĩa như là chương trình đại số quan hệ nhận được bằng việc dịch lần lượt các quy tắc của chương trình DATALOG.
Ví dụ 2.8 : Với chương trình DATALOG : P = { THANSINH(x,y) BO(x,y);
LANHDAO2(x,y) LANHDAO1(x,z), LANHDAO1(z,y) ; LANHDAO2 = LANHDAO2 A1,A4(A2=A3(LANHDAO1
LANHDAO1))
LANHDAO(x,y) LANHDAO1(x,y);
LANHDAO = LANHDAO LANHDAO1
LANHDAO(x,y) LANHDAO1(x,z), LANHDAO(z,y) ; LANHDAO = LANHDAO A1,A4(A2 = A3(LANHDAO1 LANHDAO))
THANSINH(x,y) ME(x,y);
TOTIEN(x,y) THANSINH(x,y);
TOTIEN(x,y) THANSINH(x,z), TOTIEN(z,y);}
Ta tính toán:
Tp = {THANSINH = THANSINH BO;
THANSINH = THANSINH ME;
TOTIEN = THANSINH ;
TOTIEN = TOTIEN A1,A4(A2=A3THANSINH TOTIEN);}
Giả sử = {BO(Ha, Nam); ME(Nam, Lan);} là các sự kiện của cơ sở dữ liệu. Ta tính toán:
Tp() = { BO (Ha, Nam) ; ME(Nam, Lan);
TOTIEN (Ha, Nam); TOTIEN(Nam, Lan);
TOTIEN(Ha, Lan);}
Tp(Tp() = Tp() . Nhƣ vậy nó là một điểm cố định