Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
1,25 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Vũ Hồng Sơn DATALOG VÀ CƠ SỞ DỮ LIỆU SUY DIỄN LUẬN VĂN THẠC SĨ Hà Nội - 2005 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Vũ Hồng Sơn DATALOG VÀ CƠ SỞ DỮ LIỆU SUY DIỄN Ngành: Công nghệ thông tin Mã số: 1.01.10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. Hồ Thuần Hà Nội - 2005 1 MỤC LỤC LỜI CAM ĐOAN Error! Bookmark not defined. LỜI CẢM ƠN Error! Bookmark not defined. MỤC LỤC 1 DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT 3 DANH MỤC CÁC HÌNH VẼ 4 MỞ ĐẦU 5 CHƢƠNG 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƢƠNG TRÌNH DATALOG 8 1.1. Ngôn ngữ cấp một (first order language) 8 1.2. Cơ sở dữ liệu suy diễn và chƣơng trình Datalog 9 1.2.1. Cơ sở dữ liệu suy diễn 9 1.2.2. Cú pháp của chƣơng trình Datalog 11 1.2.3. Giả thiết thế giới đóng và các tiếp cận để xác định ngữ nghĩa chƣơng trình Datalog 16 1.2.4. Các thuật toán xác định ngữ nghĩa chƣơng trình Datalog 19 1.3. Chƣơng trình Datalog có chứa phủ định 25 1.3.1. Ngữ nghĩa mô hình hoàn hảo 25 1.3.2. Ngữ nghĩa mô hình bền vững 32 1.4. Kết luận 34 CHƢƠNG 2. TỐI ƢU CÂU TRUY VẤN ĐỐI VỚI CHƢƠNG TRÌNH DATALOG 36 2.1. Định giá câu truy vấn theo kiểu trên xuống (top-down) 36 2.2. Định giá câu truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ 37 2.2.1. Định giá SLD 38 2.2.2. Định giá bảng 40 2.3. Định giá câu truy vấn theo kiểu dƣới lên (bottom-up) 45 2.3.1. Thuật toán định giá câu truy vấn theo phƣơng pháp dƣới lên 47 2.3.2. Thuật toán định giá chƣơng trình Datalog theo các thành phần liên thông mạnh 48 2.4. Định giá câu truy vấn theo cách kết hợp trên xuống và dƣới lên 53 2.5. Một số nhận xét so sánh về các phƣơng pháp định giá bảng và ma tập 55 2.6. Kết luận 56 CHƢƠNG 3. PHƢƠNG PHÁP MA TẬP 57 3.1. Phƣơng pháp ma tập 57 3.1.1. Tô điểm 57 3.1.2. Truyền thông tin sang ngang 58 3.1.3. Phép biến đổi ma tập (Magic set transformation) 60 3.1.4. Phƣơng pháp ma tập 61 3.2. Cải tiến phƣơng pháp ma tập trên một số lớp con của chƣơng trình Datalog 62 2 3.2.1. Phƣơng pháp ma tập cải tiến trên chƣơng trình Datalog tuyên tính phải 62 3.2.2. Phép biến đổi ma tập trên chƣơng trình Datalog không đệ qui 66 3.3. Phƣơng pháp ma tập cải tiến 70 3.3.1. Thuật toán tổ điểm chƣơng trình 71 3.3.2. Tối ƣu bƣớc tô điểm chƣơng trình 75 3.3.3. Cải tiến việc thực thi chƣơng trình Mag_P ad 77 3.3.4. Phƣơng pháp ma tập cải tiến 82 3.4. Kết luận 83 KẾT LUẬN 84 TÀI LIỆU THAM KHẢO 85 PHỤ LỤC 88 3 DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT CSDL: Cơ sở dữ liệu CWA: Closed World Assumption – Giả thiết thế giới đóng. EDB: Extensionl Database – CSDL Ngoại diên. GCWA: Generalized Closed World Assumption – Giả thiết thế giới đóng tổng quát. IDB: Intensionl Database – CSDL Nội hàm. mgu: most general unifier – Hợp nhất tử tổng quát nhất. SCC: Strongly Connect Component – Thành phần liên thông mạnh. Sips: Sideway Information Pausing - Truyền thông tin sang ngang. SLD: Linear Selection resolution for Definite clauses SLG: Linear Resolution with Selection function for General logic programs WGCWA: Weak Generalized Closed World Assumption – Giả thiết thế giới đóng yếu tổng quát. 4 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Đồ thị phụ thuộc của chƣơng trình trong ví dụ 1.5 16 Hình 1.2 Cây chứng minh của sự kiện p(a, d) 18 Hình 1.3 Đồ thị phụ thuộc của chƣơng trình trong ví dụ 1.12 28 Hình 1.4 Đồ thị phụ thuộc của chƣơng trình trong ví dụ 1.13 30 Hình 2.1 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.1 39 Hình 2.2 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.2 40 Hình 2.3 Định giá SLG của chƣơng trình P trong ví dụ 2.3 44 Hình 2.4 Đồ thị phụ thuộc của chƣơng trình trong ví dụ 2.5 49 Hình 2.5 Đồ thị phụ thuộc thu gọn của chƣơng trình trong ví dụ 2.5 50 Hình 2.6 Đồ thị phụ thuộc của chƣơng trình trong ví dụ 2.6 52 Hình 3.1 Đồ thị mở rộng của chƣơng trình trong ví dụ 3.5 68 Hình 3.2 Truyền thông tin sang ngang trong ví dụ 3.7 72 5 MỞ ĐẦU CSDL suy diễn, một sự mở rộng CSDL quan hệ, không những chỉ có các nguyên tố nền tƣơng ứng với các bộ của các quan hệ trong CSDL quan hệ mà còn có các quy tắc tổng quát (gồm các quy tắc suy diễn và các ràng buộc toàn vẹn). Những quy tắc này tạo thành phần mở rộng. So với các hệ CSDL quan hệ, các hệ CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là nó đƣợc xem xét nhƣ một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câu truy vấn hoặc làm thoả mãn một ràng buộc toàn vẹn có thể xem nhƣ chứng minh một công thức cấp một là hệ quả logic của lý thuyết đã cho. Sức mạnh biểu diễn của CSDL suy diễn là thật sự quan trọng trong nhiều lĩnh vực khác nhau. Các ứng dụng tiêu biểu của CSDL bao gồm hệ chuyên gia, hệ hỗ trợ quyết định, phân tích tài chính, phân tích ngôn ngữ, cú pháp Tuy vậy, trong lĩnh vực CSDL suy diễn, mặc dù đã có nhiều kết quả có giá trị nhƣng cũng có nhiều vấn đề cần nghiên cứu tiếp, đặc biệt là các vấn đề về ngữ nghĩa của phủ định và tối ƣu hoá câu hỏi (truy vấn). Luận văn nghiên cứu các kỹ thuật tối ƣu câu truy vấn trên CSDL suy diễn đƣợc viết trong Datalog, là ngôn ngữ chuẩn của CSDL suy diễn. Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn: Các phƣơng pháp trên xuống, các phƣơng pháp dƣới lên và các phƣơng pháp có sự kết hợp các đặc trƣng của phƣơng pháp trên xuống và dƣới lên. Các phƣơng pháp trên xuống (còn gọi là suy luận đích hoặc kết xâu lùi) có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích hợp với câu truy vấn. Tuy nhiên quá trình tính toán có thể kéo dài vô hạn. Các phƣơng pháp dƣới lên đảm bảo tính kết thúc trong quá trình tìm lời giải của câu truy vấn, nhƣng điều này không có nghĩa là nó hiệu quả. Chúng thƣờng không định hƣớng đích, nhiều sự kiện không thích hợp với câu truy vấn cũng đƣợc tính. Các chiến lƣợc dƣới lên không xem xét câu truy vấn trong suốt quá trình định giá, tức là việc tính 6 toán không đƣợc gắn liền với câu truy vấn nhƣ thƣờng xảy ra trong các phƣơng pháp trên xuống. Trong thời gian gần đây, một số phƣơng pháp mở rộng để trả lời câu truy vấn đƣợc đề xuất nhằm mục đích tạo ra một chiến lƣợc tìm kiếm hƣớng đích, đồng thời có tính hiệu quả là đảm bảo kết thúc quá trình tính toán câu trả lời truy vấn. Điển hình đó là phép biến đổi ma tập (magic set transformation) và định giá bảng. Các phƣơng pháp này đƣợc đánh giá là một trong những kỹ thuật tối ƣu câu truy vấn có hiệu quả trong CSDL suy diễn. Nó đã kết hợp đƣợc các ƣu điểm của kỹ thuật định giá theo kiểu trên xuống và dƣới lên, do đó giảm thiểu đƣợc số các sự kiện cần tính và tìm kiếm trên CSDL. Ở đây áp dụng hai phƣơng pháp này để xử lý vòng lặp vô hạn trong quá trình định giá câu truy vấn trên chƣơng trình Datalog. Ý tƣởng chính của phép biến đổi ma tập là mô phỏng sự lan truyền các trị buộc đƣợc tạo ra trong phƣơng pháp định giá câu truy vấn theo kiểu trên xuống. Sự lan truyền này nhận đƣợc bằng cách viết lại chƣơng trình gốc ban đầu. Trong mỗi quy tắc gốc một điều kiện mới đƣợc thêm vào để hạn chế việc tính toán trên quy tắc. Các điều kiện này đƣợc xem là các quan hệ lọc. Một quy tắc mới đƣợc tạo ra để mô phỏng sự lan truyền các trị buộc. Mặc dầu kỹ thuật ma tập đã đƣợc đánh giá là rất hiệu quả nhƣng nó chƣa hẳn là chiến lƣợc định giá câu truy vấn tốt nhất. Trong luận văn này đi sâu vào phân tích một số hạn chế của phƣơng pháp này và giới thiệu một số cải tiến. Luận văn gồm phần mở đầu, ba chƣơng nội dung, phần kết luận, tài liệu tham khảo và phần phụ lục. Chƣơng 1 trình bày khái quát về CSDL suy diễn và chƣơng trình Datalog. Nội dung chính tập trung vào cơ sở lý thuyết của ngôn ngữ cấp một, CSDL suy diễn và chƣơng trình Datalog. Hai dạng ngữ nghĩa phổ biến của chƣơng trình logic đƣợc thiết 7 kế lại để áp dụng trên lớp chƣơng trình Datalog có chứa phủ định là ngữ nghĩa mô hình hoàn hảo và ngữ nghĩa mô hình bền vững. Chƣơng 2 trình bày về các cách tiếp cận khác nhau để trả lời câu truy vấn trong CSDL suy diễn. Luận văn đã tiến hành thảo luận một cách chi tiết, phân tích làm rõ đặc trƣng, ý nghĩa của mỗi cách tiếp cận. Các phƣơng pháp nhằm ngăn chặn các vòng lặp vô hạn khi tìm kiếm lời giải của câu truy vấn đối với chƣơng trình Datalog bằng phƣơng pháp định giá bảng cũng nhƣ thuật toán định giá chƣơng trình Datalog theo các thành phần liên thông mạnh đã đƣợc phân tích, xem xét. Chƣơng 3 trình bày kỹ hơn về phƣơng pháp biến đổi ma tập và thảo luận một số hạn chế của phép biến đổi ma tập. Từ đó đã có đƣợc sự cải tiến thuật toán ma tập trên một số lớp con của chƣơng trình Datalog là chƣơng trình Datalog tuyến tính phải và chƣơng trình Datalog không đệ qui. Một số cải tiến khác về thuật toán ma tập trên chƣơng trình Datalog cũng đƣợc xem xét [6]. Phần phụ lục trình bày một số phƣơng pháp định giá chƣơng trình Datalog bằng một số thuật toán đơn giản, dễ cài đặt. Tuy nhiên một số phƣơng pháp xử lý vòng lặp vô hạn khi định giá trên xuống chƣa đƣợc đề cập trong phụ lục này. 8 CHƢƠNG 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƢƠNG TRÌNH DATALOG Chƣơng 1 trình bày cú pháp, ngữ nghĩa và các kỹ thuật định giá câu truy vấn đối với CSDL suy diễn và chƣơng trình Datalog. Phần lớn nội dung của chƣơng này đƣợc tổng hợp từ nhiều công trình nghiên cứu của các tác giả ở trong và ngoài nƣớc. Đây là những kiến thức cơ sở cần thiết mà luận văn sẽ dùng trong các chƣơng tiếp theo. CSDL suy diễn sử dụng ngôn ngữ logic cấp một làm ngôn ngữ cơ sở. Vì vậy, chúng ta bắt đầu từ ký pháp của logic cấp một. 1.1. Ngôn ngữ cấp một [19] (first order language) Chúng ta tìm hiểu về logic vị từ bậc nhất đƣợc xem nhƣ là một phƣơng thức biểu diễn tri thức, đồng thời là một ngôn ngữ để diễn tả các phép toán trên các quan hệ. Một ngôn ngữ cấp một đƣợc xây dựng trên một bảng chữ và những công thức đƣợc xây dựng trên bảng chữ đó. Định nghĩa 1.1 Bảng chữ bao gồm các hằng, biến, ký hiệu hàm, ký hiệu vị từ, hằng vị từ: true, false, các toán tử liên kết: (phủ định), (hội), (tuyển), (kéo theo), (tƣơng đƣơng), các ký hiệu lƣợng từ: (tồn tại), (với mọi), các cặp dấu ngoặc đơn (), dấu phẩy (,). Định nghĩa 1.2 Hạng thức (term) đƣợc định nghĩa đệ qui nhƣ sau: (i) Mỗi hằng là một hạng thức. (ii) Mỗi biến là một hạng thức. (iii) Nếu f là ký hiệu hàm n đối và t 1 , t 2 , …, t n là các hạng thức thì f(t 1 , t 2 , …, t n ) là một hạng thức. Định nghĩa 1.3 Một nguyên tố (Atom) có dạng p(t 1 , t 2 , …, t n ), trong đó p là ký hiệu vị từ có n đối và t i , i=1, …, n là những hạng thức. Nguyên tố nền là nguyên tố không chứa biến. Literal là một nguyên tố, gọi là literal dương hoặc phủ định của một nguyên tố, [...]... CSDL suy diễn và tập trung vào mô hình dữ liệu quan trọng của CSDL suy diễn là chƣơng trình Datalog Datalog là một ngôn ngữ truy vấn rất mạnh dựa trên logic mệnh đề Horn và đã đƣợc nghiên cứu sâu sắc bởi nhiều chuyên gia nhƣ Ullman, Ceri, Gottlob, Tanca, … Chúng ta cũng thảo luận một số tiếp cận ngữ nghĩa của chƣơng trình Datalog khi cho phép các literal âm xuất hiện trong thân quy tắc 1.2.1 Cơ sở dữ liệu. .. thức ( X)E, ( X)E chứa biến X và có thể thêm một số biến khác không nằm dƣới dấu , thì biến X đƣợc gọi là biến buộc, còn các biến khác đƣợc gọi là biến tự do Công thức đóng là công thức không chứa các biến tự do Ví dụ 1.1 Y X(p(X,Y) q(Y)) là công thức đóng Tuy nhiên X(p(X,Y) q(Y)) không phải là công thức đóng, vì Y là biến tự do 1.2 Cơ sở dữ liệu suy diễn và chƣơng trình Datalog [23, 24] Trong phần này... pm 1 q1 q2 … qn 11 và đƣợc gọi là quy tắc Datalog dạng tuyển p1 q2 … p2 … pm gọi là đầu quy tắc và q1 qn gọi là thân (ii) Một CSDL suy diễn xác định chỉ bao gồm các quy tắc xác định, nghĩa là các quy tắc có dạng: p q1 q2 … qn (n 0) (iii) Một CSDL suy diễn không xác định cho phép chứa các quy tắc có dạng: p1 p2 … pm q1 q2 … qn (m > 1, n 0) Nếu thân của mọi quy tắc trong CSDL suy diễn không xác định... tắc 1.2.1 Cơ sở dữ liệu suy diễn Định nghĩa 1.6 10 (i) Một CSDL suy diễn là một tập hữu hạn các mệnh đề có dạng: p1 … p2 pm q1 … q2 qn (m 0, n 0) (*) trong đó p i (i=0, 1, …, m) là các nguyên tố và qj (j=0, 1, …, n) là các literal Tất cả các đối của các pi và qj đều không chứa các ký hiệu hàm Mệnh đề (*) có thể xuất hiện dƣới các dạng khác nhau tuỳ thuộc vào các giá trị của m và n: Dạng 1: Trƣờng hợp... (ii) Các chƣơng trình Datalog phân tầng thƣờng có nhiều mô hình cực tiểu và có thể không có mô hình nhỏ nhất Ví dụ 1.11 Xét chƣơng trình bao gồm các quy tắc sau: r1: p(X) r(X) q(X) r2: q(X) r(X) p(X) Trong đó r là vị từ EDB và p, q là các vị từ IDB Gọi P, Q và R lần lƣợt là quan hệ cho những vị từ IDB p, q và r Giả sử R có một bộ dữ liệu là {1} Gọi S1 là một thể hiện trong đó P= và Q={1}, S2 là thể hiện... Các chƣơng trình Datalog phân tầng có thể mở rộng thành các chƣơng trình phân tầng địa phƣơng theo cơ sở EDB đã cho, trong trƣờng hợp này thì các vị từ có đối là hằng có thể phụ thuộc âm vào chính nó miễn là không có chu trình chứa cạnh âm xẩy ra trong đồ thị phụ thuộc Một chƣơng trình có thể phân tầng địa phƣơng đối với một cơ sở EDB này nhƣng không phân tầng địa phƣơng đối với một cơ sở EDB khác Định... ti và Yi/ti mà Yi {Xi , X2, …, Xn} Ký hiệu = Định nghĩa 1.15 Phép hợp nhất Cho E và F là hai nguyên tố Lúc đó: (i) E và F gọi là có thể hợp nhất nếu tồn tại phép thế sao cho E = F , lúc đó đƣợc gọi là phép hợp nhất của E và F (ii) Cho 2 phép thế 1 và 2 Ta gọi phép thế tồn tại một phép thế sao cho 1= 2 1 tổng quát hơn phép thế 2 nếu 14 (iii) Cho là một phép hợp nhất của E và F Nếu nhất khác của E và. .. nhất (most general unifier) của E và F, ký hiệu mgu(E, F) Ví dụ 1.3 Cho E=p(f(x), z) và F=p(y, a) Ta có E và F có thể hợp nhất và = {y/f(a), x/a, z/a} là một hợp nhất tử của E và F Hợp nhất tử tổng quát nhất của E và F là = {y/f(x), z/a} Để ý = {x|a} Định lý 1.1 [19] Tồn tại thuật toán tìm hợp nhất tử tổng quát nhất của hai nguyên tố nếu chúng có thể hợp nhất đƣợc và ngƣợc lại thông báo không tồn tại... Dƣới CWA, nếu một nguyên tố nền p thuộc cơ sở Herbrand Bp của chƣơng trình Datalog P không thể suy ra đƣợc từ những quan hệ EDB và các quy tắc trong P thì p sẽ đƣợc xem là đúng Ký hiệu CWA(P) là tập đƣợc xác định bởi: CWA(P) = { p | p Bp và P | p} Với giả thiết thế giới đóng, có ba tiếp cận khác nhau thƣờng đƣợc sử dụng trong việc xác định ngữ nghĩa của chƣơng trình Datalog: tiếp cận theo quan điểm lý... gọi là chƣơng trình Datalog dạng tuyển Ngƣợc lại, P đƣợc gọi là chƣơng trình Datalog dạng tuyển mở rộng 1.2.2 Cú pháp của chƣơng trình Datalog Định nghĩa 1.7 Một chương trình Datalog là một CSDL suy diễn xác định bao gồm một tập hữu hạn các mệnh đề Horn, nghĩa là các quy tắc có dạng: p q1 q2 … qn (n 0) Trong đó các vị từ p, qi là các nguyên tố Để đảm bảo các kết quả của chƣơng trình Datalog là hữu hạn, . QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƢƠNG TRÌNH DATALOG 8 1.1. Ngôn ngữ cấp một (first order language) 8 1.2. Cơ sở dữ liệu suy diễn và chƣơng trình Datalog 9 1.2.1. Cơ sở dữ liệu suy diễn 9. do. 1.2. Cơ sở dữ liệu suy diễn và chƣơng trình Datalog [23, 24] Trong phần này chỉ tóm tắt một số khái niệm của CSDL suy diễn và tập trung vào mô hình dữ liệu quan trọng của CSDL suy diễn là. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƢƠNG TRÌNH DATALOG Chƣơng 1 trình bày cú pháp, ngữ nghĩa và các kỹ thuật định giá câu truy vấn đối với CSDL suy diễn và chƣơng trình Datalog. Phần