Lý thuyết điểm cố định

Một phần của tài liệu Nghiên cứu lý thuyết xây dựng cơ sở dữ liệu suy diễn và ngôn ngữ datalog (Trang 50)

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 (R1R2…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) LANHDAO1(x,y)  PHONG(z,x), NHANVIEN(z,y) ;

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); (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Nghiên cứu lý thuyết xây dựng cơ sở dữ liệu suy diễn và ngôn ngữ datalog (Trang 50)