CHƢƠNG II : CƠ SỞ DỮ LIỆU SUY DIỄN
2.3 Ngôn ngữ 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
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
(Ri là 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
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