1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tối ưu hóa truy vấn cơ sở dữ liệu suy diễn

85 686 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 1,46 MB

Nội dung

CSDL suy diễn có khả năng sử dụng các tính năng của lập trình logic để thực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn và dữ liệu được lưu trữ trong cơ sở dữ

Trang 1

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

PHẠM THỊ CHI LÊ

TỐI ƢU HÓA TRUY VẤN

CƠ SỞ DỮ LIỆU SUY DIỄN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2013

Trang 2

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN

Thái Nguyên - 2013

Trang 3

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Tôi cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện theo sự

hướng dẫn khoa học của PGS.TS Đoàn Văn Ban

Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này

Thái Nguyên, ngày tháng năm 2013

Người Cam Đoan

Phạm Thị Chi Lê

Trang 4

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

LỜI CẢM ƠN

Trước tiên tôi bầy tỏ lời cảm ơn chân thành đến các Thầy, Cô giáo đã giảng dạy, hướng dẫn và giúp đỡ tôi trong thời gian học tập và nghiên cứu hoàn thành luận văn này

Xin được bầy tỏ lòng biết ơn sâu sắc tới Thầy giáo PGS.TS Đoàn Văn Ban đã tận tình hướng dẫn, giúp đỡ và đóng góp cho tôi nhiều ý kiến quí báu

để hoàn thành luận văn này

Xin chân thành cảm ơn các Thầy, Cô giáo Trường Đại học Công nghệ thông tin & truyền thông Thái Nguyên và Viện Công nghệ thông tin đã giảng dạy, giúp đỡ và tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại Trường

Tôi xin gửi lời cảm ơn đến các bạn đồng nghiệp và các bạn học viên lớp Cao học K10A khóa 2011 – 2013 đã giúp đỡ và tạo điều kiện thuận lợi cho tôi trong quá trình học tập và làm luận văn

Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên, quan tâm, giúp đỡ tôi hoàn thành khóa học và luận văn

Tuy nhiên CSDL kinh điển không có khả năng suy dẫn ra sự kiện mới, khả năng tiềm ẩn không được khai thác hết nên từ những năm 1970-1980 có một

Trang 5

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

trào lưu sôi nổi muốn đưa vào CSDL quan hệ những cơ chế suy diễn, những tri thức tổng quát CSDL suy diễn là một lĩnh vực khá mới mẻ, trong thời gian qua người ta đã tập trung nghiên cứu và cho nhiều kết quả thú vị cả lĩnh vực

lý thuyết và ứng dụng CSDL suy diễn có khả năng sử dụng các tính năng của lập trình logic để thực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn và dữ liệu được lưu trữ trong cơ sở dữ liệ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ó 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

Trang 6

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

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 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

Ý 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ị ràng 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ị ràng buộc

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ề Cơ sở dữ liệu suy diễn và ngữ nghĩa chương trình logic

Chương 2: Trình bày các phương pháp tối ưu câu truy vấn trong cơ sở dữ liệu suy diễn

Trang 7

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Phần phụ lục giới thiệu về Swi-Prolog và hướng dẫn cách thức làm việc với Swi-Prolog

Trang 8

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG 1 CƠ SỞ DỮ LIỆU SUY DIỄN VÀ NGỮ NGHĨA

CHƯƠNG TRÌNH LOGIC

Chương 1 trình bày kiến thức cơ bản về cơ sở dữ liệu suy diễn với các khái niệm, cấu trúc, mô hình, mục đích, chức năng cơ bản của cơ sở dữ liệu suy diễn và giới thiệu một số hệ quản trị cơ sở dữ liệu suy diễn như hệ LDL, hệ Anditi, hệ Coral; giới thiệu về chương trình logic với các khái niệm cơ bản như logic vị từ, hạng thức, công thức đóng, bộ kí tự .và ngữ nghĩa của chương trình logic; cuối chương giới thiêu về cơ sở dữ liệu Horn với các khái niệm, định lý, hệ quả, ngữ nghĩa của cơ sở dữ liệu Horn và các ví dụ để minh chứng cho phần lý thuyết

1.1 Giới thiệu về cơ sở dữ liệu suy diễn

Tính từ thời điểm xuất hiện các hệ quản trị cơ sở dữ liệu đầu tiên (khoảng những năm 1960) đến nay, công nghệ CSDL đã tiến triển nhanh chóng, và đã thu được rất nhiều thành tựu trong các lĩnh vực ứng dụng khác nhau của công nghệ thông tin Một đặc điểm chung của các hệ CSDL là khả năng quản lí những khối lượng lớn dữ liệu, tuy nhiên thường chỉ thực hiện các thao tác đơn giản để xử lí dữ liệu Vì vậy, việc nghiên cứu cơ sở dữ liệu suy diễn được đặt

ra như một yêu cầu thiết thực

Mặt khác, song song với sự phát triển của các hệ quản trị CSDL, các hệ chuyên gia đã được phát triển để trợ giúp quá trình ra quyết định trong các lĩnh vực chuyên ngành hẹp Đặc điểm chính của các hệ chuyên gia là cung cấp khả năng suy luận nhằm hỗ trợ việc ra quyết định, nhưng chúng thường không có khả năng quản lí các khối lượng lớn thông tin

Từ các yếu tố trên, các hệ CSDL suy diễn đã được đề xuất, xem như một giải pháp khắc phục những hạn chế của các hệ CSDL truyền thống bằng cách

Trang 9

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

phối hợp, theo một cách nào đó, các đặc trưng nổi trội được cung cấp bởi các

Khái niệm về CSDL suy diễn cũng được nhiều nhà nghiên cứu đề cập theo

hướng phát triển các kết quả mà Green đã đạt được vào năm 1969 về các hệ

thống hỏi – đáp Xuất phát từ quan điểm lý thuyết, các CSDL suy diễn có thể

Có khả năng quản lí các khối

lượng lớn dữ liệu

Có các khả năng suy luận

- Dữ liệu ngoại diên: các sự kiện

- Tính toàn vẹn, khôi phục, tối

ưu hoá câu hỏi

- Được bảo trì bởi những nhà

quản trị

- Tri thức nội hàm: các luật

- Biểu diễn tri thức

- Được bảo trì bởi các chuyên gia

Cần những khả năng suy luận

bên trong cơ sở dữ liệu

Cần một hệ thống hoàn thiện để quản lí các khối lượng lớn thông tin

Trang 10

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

được coi như các chương trình logic với sự khái quát hoá khái niệm về CSDL

quan hệ Đó là cách tiếp cận của Brodie và Manola vào năm 1989, của Codd vào năm 1970, của Date vào năm 1986, của Gardarin và Valdurier vào năm

1989 và của Ullman vào năm 1984 [2]

Như vậy, CSDL suy diễn có thể được coi như các chương trình logic với

sự khái quát hóa khái niệm về CSDL quan hệ bằng cách hỗ trợ các khung nhìn đệ qui và dữ liệu không nguyên tử Điều này làm cho viêc lập trình CSDL dễ hơn nhiều đối với các ứng dụng

1.1.1 Cơ sở dữ liệu suy diễn (CSDLSD) là gì

CSDL truyền thống không suy diễn các sự kiện mới, ví dụ không thể suy

ra được là Vân là cha của ai nếu dựa vào quan hệ parent(X, Y)

Cơ sở dữ liệu suy diễn là cơ sở dữ liệu (CSDL) có khả năng suy diễn ra một số sự kiện mới từ những sự kiện, các luật được lưu trữ trong CSDL

Mô hình cơ sở dữ liệu suy diễn (CSDLSD) là sự tích hợp của mô hình cơ

sở dữ liệu và lập trình logic Cơ sở lý thuyết của mô hình cơ sở dữ liệu suy diễn là logic vị (tân) từ cấp một: lưu trữ, tìm kiếm, suy luận và điều khiển thực thi chương trình ứng dụng [1], [20]

Lập trình logic có thế mạnh là khả năng biểu diễn tri thức và thể hiện được ràng buộc toàn vẹn thông tin CSDLSD là một sự kết hợp giữa trí tuệ nhân tạo (AI) và CSDL

Cơ sở dữ liệu có khả năng quản trị dữ liệu, bảo mật dữ liệu

Cơ sở dữ liệu suy diễn có khả năng sử dụng các tính năng của lập trình logic để thực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn và dữ liệu được lưu trữ trong cơ sở dữ liệu

Cấu trúc của một CSDL suy diễn

Một CSDL suy diễn là một bộ gồm ba tập hữu hạn:

Trang 11

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

- Tập các sự kiện (facts): cho phép biểu diễn thông tin cơ sở được biết là đúng trong CSDL

- Tập các luật suy diễn (deductive rules): cho phép suy dẫn các sự kiện mới

từ các sự kiện được lưu trữ trong CSDL

- Tập các ràng buộc toàn vẹn (integrity constrains): tương ứng với các điều kiện mà mỗi trạng thái của CSDL phải thỏa mãn

Ví dụ 1.1 Một CSDL suy diễn mô tả các mối quan hệ gia tộc

Các tân từ CSDL được chia thành các tân từ cơ sở (ngoại diên) và các tân

từ dẫn xuất (còn gọi là nội hàm hay khung nhìn)

Trang 12

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một tân từ cơ sở xuất hiện trong EDB và có thể xuất hiện trong thân các luật suy diễn hay các rằng buộc toàn vẹn Một tân từ dẫn xuất chỉ xuất hiện trong IDB và đƣợc định nghĩa nhờ vào một (hoặc một số) luật suy diễn nào

đó

Mô hình CSDL suy diễn

Mô hình dữ liệu gồm: Một CSDL bao gồm một tập hữu hạn hằng {c1, c2,

…, cn} và một tập các mệnh đề cấp một không có kí hiệu hàm Dạng tổng quát của các mệnh đề biểu diễn sự kiện và luật suy diễn là:

và để suy diễn ra quan hệ mới từ những quan hệ đƣợc xem là đúng

Trang 13

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một CSDL suy diễn là một CSDL có khả năng suy diễn ra một số dữ kiện mới từ những sự kiện được lưu trữ trong CSDL Cụ thể hơn, nó cung cấp, ở mức ngôn ngữ thao tác dữ liệu, một cơ chế suy diễn mạnh hơn của đại số quan hệ, đặc biệt cho phép chỉ định rõ cách xử lí đệ quy Mặt khác, một CSDL suy diễn phải có tất cả những chức năng của một hệ quản trị CSDL truyền thống, chẳng hạn như cho phép nhiều người dùng truy cập đồng thời tới dữ liệu, cho phép dữ liệu phân bố trên nhiều trạm khác nhau (trường hợp CSDL phân tán), đảm bảo tính tin cậy, nhất quán và sự an toàn của dữ liệu,

Sự phát triển của các hệ CSDL suy diễn là sự đơm hoa kết trái của sự tích hợp các hệ CSDL và lập trình logic

1.1.3 Chức năng của hệ quản trị CSDLSD

Hệ quản trị CSDLSD phải có các chức năng như sau:

Ngôn ngữ định nghĩa dữ liệu DDL (Data Definition Language),

Ngôn ngữ thao tác dữ liệu DML (Data Manipulation Language)

Ngôn ngữ luật, cho phép: từ các quan hệ cơ sở (lưu trữ trong CSDL cài đặt) suy diễn ra những quan hệ, sự kiện mới (CSDL tiềm ẩn)

Có khả năng thực hiện các phép toán quan hệ

Xử lí được các tập hợp bao gồm các hàm kết tập: như các tính toán đa trị (Max, Min, Sum, Avg, Count)

Đệ qui: cho định nghĩa một quan hệ thông qua chính nó

Có khả năng chấp nhận phủ định (xử lí vị từ âm) để suy dẫn đến các sự kiện không tồn tại

Thực hiện được các hàm số học và các hàm được định nghĩa bởi người dùng

Cập nhật các sự kiện thông qua các luật

Có tính đơn nguyên với các mức trừu xuất liên tiếp và các siêu luật

Trang 14

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Có nhiều các tiếp cận để xây dựng, xuất phát từ một hệ quản trị CSDL

Hệ ngôn ngữ dữ liệu logic LDL (logic data language system) cung cấp một ngôn ngữ khai báo dựa trên logic và tích hợp CSDL quan hệ với kỹ thuật lập trình logic để hỗ trợ những ứng dụng phức tạp và dựa vào cơ sở tri thức

Hình 1.2: Kiến trúc của LDL++

 Chương trình dịch (Compiler)

Trang 15

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Đọc chương trình LDL++ và xây dựng đồ thị kết nối các vị từ tổng thể PCG (Global Predicate Connection Graph)

Với mỗi câu truy vấn, bộ dịch sẽ định giá từng phần theo PCG và chuyển chúng vào mạng các đối tượng để thực hiện thông qua bộ thông dịch

Bộ chương trình dịch hoạt động:

+ Giống như hệ thống dịch truyền thống,

+ Kiểm tra cú pháp các câu truy vấn,

+ Viết lại các qui tắc đệ qui sử dụng những kỹ thuật như Magic set, hay kỹ thuật tuyến tính trái (left-linear), tuyến tính phải (right-linear) + Dịch sang PCG rồi chuyển sang cho Interpreter

 Quản trị CSDL (Database Manager)

Hệ quản trị CSDLSD hỗ trợ :

(i) Truy cập nhanh theo đường dẫn vào CSDL của hệ thống (fast-path) (ii) Tích hợp với những hệ quản trị CSDL khác (external DBMS), CSDL ngoại Nghĩa là cơ thể phát triển những hệ thống mới trên cơ sở tích hợp những hệ thống có sẵn

CSDLSD được quản trị bởi Fact Base Manager Module này hỗ trợ để quản trị, tìm kiếm các đối tượng phức tạp của LDL++, kể cả các tập hợp, danh sách, và những quan hệ tạm thời được tạo ra trong quá trình tính toán

CSDLSD cũng hỗ trợ external database manager để thực hiện tối ưu hóa truy vấn đối với những CSDL SQL

Trang 16

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thực hiện tương tự đối với CSDL khác thông qua quản trị CSDL ngoại diên (External Database Manager) và quản trị vị từ ngoại diên (External Predicate Manager)

Thực hiện các hàm ngoại diên (external functions) hoặc các gói phần mềm (software packages) thực hiện theo lời gọi hàm của C/C++

 Giao diện người sử dụng (User Interface)

Tất cả các ứng dụng viết bằng C/C++ có thể gọi LDL++ system thông qua chuẩn API; những ứng dụng viết bằng LDL++ có thể nhúng vào những hệ thống hướng thủ tục khác

Một trong những ứng dụng có thể thông dịch hướng dòng lệnh hỗ trợ thực hiện một tập lệnh được định nghĩa trước bởi người sử dụng (NSD) Giao diện viết bằng C++ có thể thay thế bằng những giao diện đồ họa GUI, mà không cần thay đổi cấu trúc bên trong của hệ thống

Hiện nay người ta có thể sử dụng Java để phát triển giao diện để hỗ trợ truy cập từ xa (trên mạng)

Hệ LDL++ hiện nay có thể link trực tiếp với Sybase, Oracle, DB2, và giao tiếp với các hệ CSDL khác (viết bằng Java) thông qua JDBC

Các qui tắc suy diễn trong chương trình không phân biệt giữa các quan hệ nội hàm (internal relations) và quan hệ ngoại diên (external relations)

Các quan hệ từ những CSDL SQL ngoại diên (external SQL databases) được khai báo giống như quan hệ nội trong sơ đồ LDL++, nhưng được bổ sung phần đặc tả kiểu và tên của SQL server để xử lý dữ liệu

Ví dụ 1.2 Ví dụ về một khai báo lược đồ (LDL++ schema) sử dụng để truy

cập vào quan hệ ngoại diên (external relation) employee trong CSDL payroll thực hiện ở server sybase_tarsk1

database({

sybase::employee(NAME:char(30),SALARY:int, MANAGER:char(30))

Trang 17

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Theo mô hình này, NSD tương tác với tiến trình giao diện với NSD interface process) và client trao đổi với server chính để thực hiện những phép toán của CSDL như kết nối (joining), hợp (merging), trừ (subtracting) các quan hệ theo yêu cầu của clients

(user-Trong Aditi, mỗi client có một server riêng, nhưng nó cũng có thể chia sẻ với các server của những clients khác

Hệ Aditi có 5 đặc trưng phân biệt với những hệ CSDLSD khác:

+ Nó được xây dựng dựa trên đĩa (disk-based) và cho phép các xử

lý những quan hệ lớn, quá cỡ của bộ nhớ

Trang 18

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

+ Hỗ trợ truy cập đồng thời nhiều người sử dụng

+ Thực hiện đường dẫn xử lý song song ở nhiều mức khác nhau + Cho phép lưu trữ các hạng thức có chứa ký hiệu hàm

+ Định hướng chính là tính toán, định giá truy vấn bottom/up giống như nhiều CSDLSD khác, nhưng cũng hỗ trợ thực hiện định giá các vị từ top/down

Các quan hệ cơ sở CORAL có thể lưu trữ trong các file dữ liệu riêng của CORAL hoặc trong hệ quản trị lưu trữ dữ liệu EXODUS (Carey et al., 1986) CORAL hỗ trợ tập ( set) và cả đa tập ( multisets)

CORAL sử dụng những thuật toán chuyên biệt dựa phần nhiều vào kỹ thuật Prolog hơn là kỹ thuật CSDL để cài đặt các phép toán quan hệ

Ngoài ra còn nhiều hệ thống suy diễn khác như: LOLA, RDL, Starburst,

1.2 Chương trình logic

Sự phát triển của lập trình logic chính thức bắt đầu vào cuối những năm

1970 Những phát triển xa hơn đạt được vào đầu thập kỷ 80, bắt đầu với sự xuất hiện của quyển sách đầu tiên nói về các cơ sở lập trình logic Việc lựa chọn lập trình logic làm mô hình cơ s ở cho dự án Các hệ thống máy tính đời thứ 5 của Nhật (Japanese Fifth Generation Computer Systems Project) đã mở đầu cho sự phát triển của các ngôn ngữ lập trình logic khác

Trang 19

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1.2.1 Các khái niệm cơ bản

Trong mục này trình bày các khái niệm cơ bản cần để hiểu tổng quan về chương trình logic

Logic vị từ (Predicate) là ngôn ngữ hình thức cho phép biểu diễn đối tượng

được mô tả thông qua mệnh đề, biểu diễn quan hệ giữa các đối tượng và các

phép toán logic vị từ Logic vị từ được định nghĩa bởi tập các từ vựng, các

văn phạm, các qui tắc (luật) Nó cho phép chúng ta xây dựng công thức vị từ

và diễn dịch (tính) công thức thông qua thể hiện

Định nghĩa (Bộ ký tự) Bộ ký tự bao gồm các lớp ký hiệu sau:

+ Hằng là các xâu bắt đầu bởi chữ cái viết thường a, b, c,

+ Biến là xâu bất kỳ bao gồm các ký tự của bảng chữ cái và các chữ

số, thường ký hiệu bởi các chữ cái in hoa X, Y, Z, ,

+ Các ký hiệu hàm, thường ký hiệu bởi f, g, h, ,

+ Các ký hiệu vị từ, thường ký hiệu bởi p, q, r, ,

+ Các hằng vị từ: true, false

+ Các ký hiệu kết nối: (phủ định), (tuyển), (hội), (suy ra), (nếu và chỉ nếu)

+ Các ký hiệu lượng tử: (với mọi), (tồn tại)

+ Dấu ngoặc đơn trái (, dấu ngoặc đơn phải ), dấu phẩy ,

Định nghĩa (Hạng thức) Gọi A là bộ ký tự Hạng thức được định nghĩa đệ

qui như sau:

(i) Mỗi hằng trong A là một hạng thức

(ii) Mỗi biến A là một hạng thức

(iii) Nếu f là ký hiệu hàm n ngôi (n-ary) trong A và t1, ,t n là các hạng

thức thì f(t1, ,t n ) là một hạng thức

(iv) Hạng thức chỉ được sinh ra bởi các quy tắc trên

Trang 20

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Định nghĩa (Nguyên tố) Giả sử t1, ,t n là các hạng thức, p là ký hiệu vị từ n ngôi thì p(t1, ,t n ) đƣợc gọi là một công thức nguyên tố (hoặc đơn giản chỉ gọi

là nguyên tố)

Định nghĩa (Công thức) Công thức đƣợc định nghĩa đệ qui nhƣ sau:

(i) Mỗi nguyên tố là một công thức

(ii) Các hằng vị từ true và false là các công thức

(iii)Nếu E và F là các công thức thì: (E F), E), (E F), (E F), (E F) là các công thức

(iv) Nếu E là công thức và X là một biến trong miền D thì X(E),

X(E) là các công thức

(v) Công thức chỉ đƣợc sinh ra bởi một số hữu hạn các quy tắc trên

Định nghĩa (Ngôn ngữ bậc nhất) Một ngôn ngữ bậc nhất (first order

language) bao gồm một bộ ký tự và những công thức đƣợc xây dựng trên bộ

(iii) Công thức đóng (closed formula) là công thức không chứa biến tự do

Ví dụ 1.3 Y X (p(X,Y) q(X)) là công thức đóng, còn X (p(X,Y)

q(X)) không phải là công thức đóng, vì Y là biến tự do

Trang 21

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Định nghĩa (Literal) Nguyên tố hoặc phủ định của một nguyên tố đƣợc

gọi là một literal Một literal dương là một nguyên tố, literal âm là phủ định

Mệnh đề (2) có thể viết A1, , Ak B1 , , Bm

Nếu k = 1 thì nó đƣợc gọi là mệnh đề xác định (definite clause), nghĩa là

mệnh đề có dạng (mệnh đề Horn):

Mệnh đề này chứa đúng một nguyên tố A đƣợc gọi là đầu (head) hay kết

luận và B1 Bm đƣợc gọi là thân (body) hay tiền đề của mệnh đề

Trong mệnh đề (3), nếu m = 0 thì nó đƣợc gọi là mệnh đề đơn vị (unit clause), nghĩa là mệnh đề có dạng: A , với thân rỗng còn đƣợc gọi là các sự

Trang 22

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

r2: p(X, Z) e(X, Y) p(Y, Z),

r3: p(1, Y)

Trong đó r1, r2 là các mệnh đề xác định, trong mệnh đề r1 thì p(X, Y) là đầu

và e(X, Y) là thân, trong mệnh đề r2 thì p(X, Z) là đầu và e(X, Y) p(Y, Z) là thân, mệnh đề r3 là một đích

1.2.2 Chương trình logic

Chương trình logic là tập hữu hạn khác rỗng các mệnh đề (qui tắc) xác định

có dạng:

p q1 qn (n 0) Trong đó, các vị từ p, qi (i = 0,…,n) là các nguyên tố có các đối là hằng

hoặc biến

Trong CSDL SD các vị từ chỉ xuất hiện trong thân các quy tắc được gọi là

vị từ CSDL ngoại diên, vị từ EDB (Extensional Database predicate), hoặc

CSDL EDB

+ Tương ứng với tập sự kiện đang, đã có

+ Được xây dựng từ các nội dung dữ liệu trong CSDL

Trong CSDL quan hệ: tập các quan hệ, các bảng

Trong chương trình logic các vị từ xuất hiện ở đầu quy tắc được gọi là các

vị từ nội hàm (hoặc vị từ IDB (Intensional Database predicate), CSDL IDB

+ Tương ứng với các sự kiện có thể được suy diễn ra

+ Sự kiện không có sẵn trong CSDL

+ Tập luật chính là phương tiện để sinh ra các sự kiện mới

Ví dụ 1.5 Xét chương trình logic không chứa ký hiệu hàm gồm các quy tắc

sau đây để mô tả các mối quan hệ ―họ hàng, dòng tộc‖ như sau:

r1: sibling(X,Y) parent(X,Z) parent(Y,Z) X Y,

r2: cousin(X,Y) parent(X,Xp) parent(Y,Yp) sibling(Xp,Yp),

Trang 23

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

r3: cousin(X,Y) parent(X,Xp) parent(Y,Yp) cousin(Xp,Yp),

r4: related(X,Y) sibling(X,Y),

r5: related(X,Y) related(X,Z) parent(Y,Z),

r6: related(X,Y) related(Z,Y) parent(X,Z)

Trong đó parent là vị từ EDB và parent(A, B) có nghĩa là B là cha, mẹ của A, định nghĩa các sự kiện trong CSDL, còn các vị từ sibling, cousin, related là các vị từ IDB

1.2.3 Thể hiện của chương trình logic

Thể hiện (diễn dịch) I của ngôn ngữ bậc nhất L bao gồm:

+ Một tập D khác rỗng, được gọi là miền của thể hiện I

+ Mỗi hằng c trong L xác định một phần tử cI của D

+ Mỗi ký hiệu hàm f bậc n trong L với một ánh xạ fI : Dn D,

+ Mỗi ký hiệu vị từ p bậc n trong L với một ánh xạ pI : Dn {true, false}

Thể hiện của các hằng, hàm và ký hiệu vị từ là cơ sở cho việc gán giá trị chân lý của công thức, ngôn ngữ bậc nhất Ngữ nghĩa của công thức là một giá trị chân lý Ngữ nghĩa này phụ thuộc vào các thành phần của công thức

+ Thể hiện Herbrand là một tập con I bất kỳ của cơ sở Herbrand B P của P

- Nếu sự kiện A I, ta nói rằng A đúng (có giá trị true) trong I và ký hiệu

I A

Trang 24

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

- Nếu A B P nhưng A I, ta nói rằng A sai (có giá trị false) trong I và ký hiệu I A

Ví dụ 1.6 Xét chương trình logic không chứa ký hiệu hàm P như sau:

q(a,b) ,

q(b,c) ,

p(X,Y) q(X,Y),

p(X,Y) p(X,Z) p(Z,Y)

Vũ trụ Herbrand của P là U P = { a, b, c } và cơ sở Herbrand của P là:

B P = { p(a,a), p(a,b), p(a,c), p(b,a), p(b,b), p(b,c), p(c,a), p(c,b), p(c,c),

q(a,a), q(a,b), q(a,c), q(b,a), q(b,b), q(b,c), q(c,a), q(c,b), q(c,c) }

Định nghĩa (CSDLSD xác định) Một CSDL suy diễn xác định

(CSDLSD) là một cặp <P, DB>, trong đó P là chương trình logic không chứa

ký hiệu hàm, DB là CSDL EDB cho trước

Ví dụ 1.7 Chương trình logic P gồm các quy tắc:

r1 : path(X,Y) arc(X,Y),

r2 : path(X,Z) arc(X,Y) hoặc path(Y,Z)

CSDL EDB gồm các bộ của vị từ arc {(1,2), (1, 4), (2,3), (3, 1)}

Thể hiện Hebrand I của ngôn ngữ bậc nhất L bao gồm:

PI : ULn {true, false}

Trang 25

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1.3 Ngữ nghĩa của chương trình Prolog

Một chương trình Prolog có thể được hiểu theo nghĩa khai báo (declarative signification) hoặc theo nghĩa thủ tục (procedural signification) Vấn đề là cần phân biệt hai mức nghĩa của một chương trình Prolog, là nghĩa khai báo và

nghĩa thủ tục Người ta còn phân biệt mức nghĩa thứ ba của một chương trình

Prolog là nghĩa lôgic (logical semantic)

 Nghĩa khai báo của chương trình Prolog

Về mặt hình thức, nghĩa khai báo, hay ngữ nghĩa chủ ý (intentional semantic) xác định các mối quan hệ đã được định nghĩa trong chương trình

Nghĩa khai báo xác định những gì là kết quả (đích) mà chương trình phải tính toán, phải tạo ra

Nghĩa khai báo của chương trình xác định nếu một đích là đúng, và trong trường hợp này, xác định giá trị của các biến

 Nghĩa lôgic của các mệnh đề

Nghĩa lôgic thể hiện mối liên hệ giữa đặc tả lôgic (logical specification) của bài toán cần giải với bản thân chương trình

 Nghĩa thủ tục của Prolog

Nghĩa thủ tục, hay ngữ nghĩa thao tác (operational semantic), lại xác định

làm cách nào để nhận được kết quả, nghĩa là làm cách nào để các quan hệ được xử lý thực sự bởi hệ thống Prolog

Nghĩa thủ tục tương ứng với cách Prolog trả lời các câu hỏi như thế nào

(how) hay lập luận trên các tri thức Trả lời một câu hỏi có nghĩa là tìm cách xóa một danh sách Điều này chỉ có thể thực hiện được nếu các biến xuất hiện trong các đích này được ràng buộc sao cho chúng được suy ra một cách lôgic

từ chương trình (hay từ các tri thức đã ghi nhận)

1.4 CSDL Horn và Ngữ nghĩa CSDL Horn

CSDLSD = <L, P, C>, trong đó:

Trang 26

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

L là ngôn ngữ cấp một gồm các hằng và các vị từ

P là tập các qui tắc – chương trình logic hay Datalog

C là tập các ràng buộc dữ liệu mà CSDL cần phải thỏa mãn

Để xử lý (trả lời) được các câu truy vấn trong CSDL Horn, hay xác định được các dãy suy diễn thì cần phải xác định ngữ nghĩa của chương trình P

1.4.1 Ngữ nghĩa mô hình khai báo

Ngữ nghĩa tính toán của các chương trình logic, chương trình Datalog và CSDL Horn được xác định chủ yếu dựa trên các kết quả lý thuyết về CSDLSD của Kowalski

Định lý 1.1 (Emden and Kowalski) [1], [16]

Giao của tập khác rỗng các mô hình khai báo (mô hình Herbrand) của CSDL Horn là mô hình Herbrand

Nghĩa là chỉ cần lấy MP là giao của tất cả các mô hình Herbrand của chương trình logic, thì MP chính là ngữ nghĩa của CSDLSD

Định lý 1.2 (Emden and Kowalski) [1], [16]

Với mọi CSDL Horn, MP = { A Bp | P |= A}

Là mô hình cực tiểu chính là tất cả những nguyên tố suy diễn được từ P

Trang 27

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1.4.2 Ngữ nghĩa điểm bất động của CSDL Horn

Dựa vào lý thuyết điểm bất động trên dàn (Lattice) để xác định mô hình Herbrand

o Dàn là một tập cùng với một quan hệ thứ tự bộ phận ( )

o Cho dàn L, X L

a L được gọi là cận trên của X nếu x X, x a

a L được gọi là cận trên nhỏ nhất của X nếu a là cận trên của X và a’ – cận trên của X, a a’

Nếu cận trên của X tồn tại thì nó là duy nhất, ta ký hiệu nó là Lub(X)

Đối ngẫu lại ta định nghĩa cận dưới, và cận dưới lớn nhất của X Cận dưới lớn nhất của X ký hiệu là Glb(X)

o Dàn L là đầy đủ nếu Lub(X), Glb(X) tồn tại cho mọi X L

o Ký hiệu S là tập các ngữ nghĩa Hàm T: 2S

2S là

Đơn điệu nếu I, J L, nếu I J thì T(I) T(J)

Dàn là liên tục (Continuose) nếu T(Lub(X)) = Lub(T(X)), với mọi X là tập con định hướng, nghĩa là nó chứa cận trên của các tập con hữu hạn

Hàm T đơn điệu (Monotonic) được định nghĩa như sau:

T 0 =

Trang 28

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Định lý 1.4 (Emden and Kowalski) [ 1], [16 ]

Nếu P là chương trình Datalog (mọi qui tắc của P là mệnh đề Horn) thì TP

là hàm liên tục

Hệ quả 1.1: Từ định lý 3 suy ra LFP(TP) = TP

Định lý 1.5 Mô hình nhỏ nhất của CSDL Horn MP = Tp

1.4.3 Ngữ nghĩa thủ tục (Procedural Semantics)

Loại ngữ nghĩa thứ ba là ngữ nghĩa thủ tục: xác định kết quả tính toán của CSDL Horn [ 1], [16]

Cơ chế suy diễn để định giá câu truy vấn đối với chương trình Datalog gọi

là phép phân giải SLD (Linear Resolution with Selection function for Definite

clauses) Phép phân giải SLD cho phép trả lời câu truy vấn đối với chương

trình Datalog đã cho

Tập các dẫn xuất của P, ký hiệu là Succ(P) được định nghĩa như sau:

Succ(P) = {A | A BP P {A} có phân giải SLD}

Định lý 1.6 (Emden and Kowalski) Với mọi CSDL Horn, MP = Succ(P)

Định lý 1.7 (Emden and Kowalski) Với mọi CSDL Horn, T

Succ(P)

Hệ quả 1.2 Ngữ nghĩa mô hình, ngữ nghĩa điểm bất động và ngữ nghĩa thủ

tục là tương đương với nhau

Trang 29

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1.5 Kết thúc chương

Những khái niệm về cơ sở dữ liệu suy diễn, khái niện về chương trình logic

và CSDL Horn cùng mô hình, cấu trúc, ngữ nghĩa, các định lý, các hệ quả với các ví dụ …v.v đã được trình bày, là những kiến thức cơ sở cần thiết làm nền tảng cho việc mở rộng nghiên cứu các thuật toán và ứng dụng trong các chương tiếp theo của luận văn Qua đó, chúng ta được cung cấp một cái nhìn tổng quan về lý thuyết cơ sở dữ liệu suy diễn, chương trình logic và ngữ nghĩa của chúng Để hiểu rõ hơn những khái niệm lý thuyết cơ sở trong chương này

ta sẽ tìm hiểu việc áp dụng thực hiện chúng trong các thuật toán được trình bầy ở chương 2

Trang 30

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG 2 CÁC PHƯƠNG PHÁP TỐI ƯU CÂU TRUY VẤN

TRONG CƠ SỞ DỮ LIỆU SUY DIỄN

Từ lý thuyết cơ sở được nghiên cứu trong chương trước, trong chương 2 này ta sẽ tìm hiểu việc áp dụng chúng vào các thuật toán cụ thể

Với các hệ quản trị CSDL suy diễn phải cung cấp một hệ xử lý câu truy vấn, có khả năng trả lời các câu truy vấn được phát biểu theo các khung nhìn cũng như theo các tân từ cơ sở của một CSDL suy diễn Một thủ tục định giá câu truy vấn sẽ tìm câu trả lời phù hợp với ngữ nghĩa của CSDL

Có ba phương pháp tiếp cận khác nhau để định giá câu truy vấn trong CSDL suy diễn: Phương pháp định giá câu truy vấn trên/xuống, phương pháp định giá câu truy vấn dưới/lên và đặc biệt là phương pháp định giá câu truy vấn có sự kết hợp của hai phương pháp trên/xuống và dưới/lên Ta sẽ lần lượt tìm hiểu để thấy rõ được ưu điểm và nhược điểm của từng phương pháp trong

chương này

2.1 Phương pháp định giá câu truy vấn dưới/lên (bottom-up)

Phương pháp định giá câu truy vấn dưới/lên (bottom-up) còn được gọi là kết xâu tiến (forward-chaining) Phép suy luận được thực hiện trên các quy tắc theo hướng từ thân đến đầu và được xem là suy luận theo hướng tới Việc tính toán được khởi đầu chỉ với các sự kiện EDB và áp dụng lặp đi lặp lại các

quy tắc từ phải sang trái, nghĩa là từ thân đến đầu

Quá trình định giá các quy tắc theo kiểu dưới lên thường sử dụng một phép toán gọi là phép đối sánh, phép toán này đơn giản hơn nhiều so với phép hợp nhất trong phương pháp trên xuống Khi ta đối sánh một nguyên tố tuỳ ý với một nguyên tố cơ sở, ta thay thế mỗi biến của nguyên tố đầu để làm nó đồng nhất với nguyên tố thứ hai Thuật toán sau đây kiểm tra xem tồn tại một phép

thay thế như vậy hay không và tìm nó nếu tồn tại [17]

Trang 31

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.1.1 Thuật toán đối sánh hạng thức (Term match)

Input: Một công thức nguyên tố F với các biến X1, , Xn (n 1) và một

nguyên tố cơ sở G

Output: Phép đối sánh thành công và cho kết quả là true nếu tồn tại phép

thay thế duy nhất τ trên các biến X1, ., Xn sao cho với mọi i, khi thay Xi

trong F bởi τ(Xi) sẽ nhận được nguyên tố cơ sở G Phép đối sánh thất bại và

cho kết quả là false nếu không tồn tại phép thay thế τ như vậy

Phương pháp: Khởi đầu, với mỗi i, τ(Xi) chưa được xác định Lúc đó ta áp dụng thủ tục đệ qui match sau đây đối với F và G Nếu lời gọi thủ tục match(F, G) thành công thì x(Xi) sẽ được xác định với mọi i và thay thế này là phép đối sánh hạng thức được đưa ra như một kết xuất của thuật toán Nếu

ngược lại thì không tồn tại phép đối sánh

2.1.2 Thuật toán định giá câu truy vấn theo phương pháp dưới lên

ta có thuật toán sau đây:

Giả sử q(t 1 , t 2 , , t k ) là các câu truy vấn và P là chương trình logic

1 Khởi đầu từ tập M các sự kiện EDB đã cho trong chương trình, thêm

vào chương trình P quy tắc sau đây : ans(t 1 , t 2 , , t k ) q(t 1 , t 2 , , t k )

2 Đối với mỗi quy tắc A A1 A2 An trong P, sử dụng phép đối sánh hạng thức, tìm một phép thế sao cho Ai , , An M Đối với

mỗi phép thế như vậy, thêm A vào M

3 Nếu tập các sự kiện M tăng lên thì quay trở lại bước 2 Ngược lại

Trang 32

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

kiện dư thừa Số các sự kiện dư thừa có thể rất lớn và trong trường hợp đó thì

tính toán dưới lên là không hiệu quả

Để ý trong thuật toán trên ở mỗi bước lặp sẽ lặp lại tính toán những sự kiện

đã được tạo ra trong những bước trước Chúng ta có thể làm giảm đi các tính toán dư thừa bằng cách chia quá trình định giá các quy tắc thành các tính toán nhỏ hơn trên mỗi tập con cực đại các vị từ đệ quy lẫn nhau của chương trình Các tập này được xác định bằng cách xác định thành phần liên thông mạnh

của đồ thị phụ thuộc

2.2 Phương pháp định giá câu truy vấn trên/xuống (top-down)

Phương pháp định giá câu truy vấn trên/xuống (top-down) còn gọi là suy luận từ đích hoặc kết xâu lùi (backward-chaining) Xuất phát từ đích truy vấn,

ta sẽ xem xét tất cả các cách thức có thể dẫn tới đích [1], [17]

Các bước chính thực hiện việc đính giá phương pháp trên xuống như sau:

1 Khởi đầu từ đích truy vấn Q và chương trình Logic P

2 Chọn một đích Ai từ đích truy vấn Al A2 Ai An Việc chọn đích Ai thường thực hiện từ phải sang trái Tìm một quy tắc A B 1

B 2 B m trong chương trình P sao cho A = A i với là hợp nhất tử tổng quát nhất của A và Ai Kết thúc là thất bại nếu không có quy tắc nào

như vậy

3 Cập nhật lại đích truy vấn bởi phép thế

(A1 A2 Ai B1 B2 Bm Aì+1 An)

4 Nếu kết quả nhận được ở bước 3 là khác rỗng thì trở lại bước 2

Ngược lại, kết thúc là thành công, ta được một câu trả lời đối với truy vấn

Prolog là ví dụ điển hình cho cách tiếp cận này, thứ tự xử lý đích và đích

con được xác định dựa vào thứ tự các quy tắc được liệt kê trong chương trình

Trang 33

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Việc sử dụng kiểu tiếp cận trên xuống có ưu điểm là cho phép khám phá chỉ các câu trả lời câu truy vấn, 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 nó có những nhược điểm:

Hỗ trợ không đầy đủ đối với bộ nhớ ngoài Việc tính toán không thể thực hiện trên một tập khá lớn các sự kiện, và nếu bộ nhớ chính quá nhỏ thì sẽ

không đem lại hiệu quả

Do việc tính toán được thực hiện ―mỗi lần một bộ‖ nên có thể dẫn đến tình trạng ―thắt cổ chai‖ trong trường hợp có một số lượng thông tin lớn làm cản

trở việc tính toán

Phương pháp trên xuống có sử dụng thủ tục quay lui để thử các quy tắc

khác khi một quy tắc thất bại, vì vậy đễ đi vào một vòng lặp vô hạn

Thủ tục quay lui không nhận ra các đích đã được gọi thực hiện trước đó

nên có thể lặp lại tính toán một cách không cần thiết

2.3 Định giá truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ

Để khắc phục những nhược điểm của phương pháp trên xuống, kỹ thuật ghi nhớ thường được sử dụng Ước lượng bảng (table evaluation) là phương pháp định giá truy vấn theo kiểu trên xuống đối với chương trình logic tổng quát,

phương pháp này có sử dụng kỹ thuật ghi nhớ [9]

2.3.1 Định giá SLD (Selective Linear resolution for Definite clauses) SLD là một chiến lược xử lý câu truy vấn theo kiểu trên xuống Quá trình

định giá bắt đầu từ đích truy vấn và lặp lại các phép thay thế đối với thân của quy tắc Quá trình định giá câu truy vấn sẽ thành công nếu tất cả literal trong

đích là được tìm ra, có nghĩa khi đích là nút kết thúc SLD đã tạo ra một sự

phân chia chính xác trong không gian tìm kiếm: cần tính toán gì và thứ tự tính toán là như thế nào Một điều đáng tiếc đối với phương pháp này là nó không

hiệu quả, việc tính toán trên cây SLD có thể kéo dài vô hạn

Trang 34

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ví dụ 2.1 Xét chương trình P sau đây :

r1 : p(X, Y) e(X, Y)

r2 : p(X, Z) e(X, Y) p(Y, Z)

+ Câu truy vấn (Q) : ? p(1,Y)

+ Trong đó p là vị từ IDB và e là vị từ EDB, giả sử quan hệ của vị

Cây phân giải SLD

2.3.2 Định giá bảng (tabled evaluation)

Kỹ thuật định giá bảng mở rộng khả năng của các ngôn ngữ lập trình logic

vì nó có thể được dùng để định giá các câu truy vấn đệ qui như trong Prolog nhưng với các tính chất kết thúc tốt hơn nhiều Phương pháp này sẽ ngăn chặn

Trang 35

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

các vòng lặp vô hạn như đã xảy ra trong phương pháp định giá SLD và đảm

bảo việc định giá sẽ kết thúc đối với chương trình Datalog

Ý tưởng chính của phương pháp định giá bảng như sau: trong suốt quá trình định giá câu truy vấn, các đích con và các câu trả lời được lưu giữ vào một bảng Một bảng bao gồm một tập các đích con, mỗi đích con gắn liền với một tập các câu trả lời, hai đích con hoặc các câu trả lời được xem là đồng nhất với nhau trong bảng nếu chúng là các biến thể của nhau Mỗi lời gọi đến đích con phải được kiểm tra xem đích con này (hoặc một biến thể của nó) có được gọi trước đó hay không Nếu không có thì đích con này được chèn vào bảng và các quy tắc được hợp giải dựa vào đích con này y như trong phương

pháp định giá SLD Kết quả của việc định giá sẽ được đưa vào bảng Nếu có

một biến thể của đích con đã được gọi trước đó, đích con sẽ được hợp giải dựa vào các câu trả lời đã có trong bảng Các câu trả lời mới nhận được, đến lượt nó sẽ được thêm vào bảng và gắn liền với một đích con trong suốt quá trình định giá Việc định giá sẽ kết thúc khi tất cả các quy tắc và các câu trả

lời được hợp giải nhờ vào việc áp dụng tất cả các đích con

2.4 Phương pháp ma tập (Magic Set)

Phép biến đổi ma tập được đánh giá là một trong những kỹ thuật tối ưu câu truy vấn rất có hiệu quả trong cơ sở dữ liệu suy diễn Lý do quan trọng đối với

sự thành công của kỹ thuật này là sự kết hợp được các ưu điểm của kỹ thuật ước lượng trên xuống (top-down) và dưới lên (bottom-up), từ đó giảm thiểu được số các sự kiện cần tính và tìm kiếm trên cơ sở dữ liệu Tính lôi cuốn của

kỹ thuật ma tập được thể hiện ở tính hiệu quả của nó [6] Sau đây là một số

khái niệm chính của phương pháp ma tập

Trang 36

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.4.1 Tô điểm

Tô điểm là cách chú thích trên các vị từ để cung cấp thông tin về các vị từ

sẽ được sử dụng như thế nào trong quá trình định giá câu truy vấn Ta có một

số định nghĩa:

(i) Một đối của một đích con trong quy tắc r được gọi là buộc nếu trong

suốt quá trình định giá câu truy vấn, mọi đích được tạo ra từ đích con này có một tập các hằng ở vị trí của đối này Ngược lại, đối được gọi là tự do

(ii) Một tô điểm a đối với vị từ p(t1,t2, ,tk) là một ánh xạ a:{1,2, ,k} {b,

f} Ta thường ký hiệu tô điểm là a(1)a(2) a(k) Nếu ký hiệu thứ i của tô điểm

là b thì đối thứ i của p là buộc, nếu ký hiệu thứ i của tô điểm là f thì đối thứ i của p là tự do Chỉ có các vị từ IDB là được tô điểm

(iii) Cho quy tắc p q1 q2 … qn và w là tô điểm của vị từ p, tô điểm

i của các đích con qi(ti,1, ,ti,n) được xác định như sau: Nếu ti,j là hằng hay biến đã xuất hiện trong đích con qk trước đó (k < i) hay trong một vị trí buộc của p thì i[j] =b, ngoài ra thì i[j] =f (với i[j] là ký hiệu ở vị trí thứ j của tô điểm)

(iv) Cho chương trình P, chương trình tô điểm của P, ký hiệu là Pad, gồm các quy tắc được tô điểm của mọi quy tắc trong P

(v) Tô điểm của câu truy vấn p(t1, ,tn) được xác định bởi: [i] = b nếu ti

là hằng và [i] = f nếu ngược lại

2.4.2 Truyền thông tin sang ngang

Một chiến lược truyền thông tin sang ngang (Sips-Sideway infomation passing strategy) là một quyết định về cách thức để lan truyền thông tin ngang trong thân quy tắc khi định giá quy tắc Chiến lược này chỉ ra cách thức để các trị buộc trong đầu quy tắc được sử dụng, thứ tự mà các đích con trong

Trang 37

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

thân sẽ được tính và cách thức để các trị buộc này truyền sang ngang giữa các

đích con trong thân quy tắc

Với r là một quy tắc, với đầu vị từ p( ), và b

là tập con của Với ph là một vị từ đặc biệt, biểu diễn đầu vị từ được hạn chế bởi giá trị buộc Vì vậy đối của ph là b (Nếu không có phép truyền giá trị cho trước, thì b

rỗng, ph là

một vị từ cấp 0, hằng số là false) Nếu một vị từ xuất hiện trong thân quy tắc r

nhiều hơn một lần, thì chúng ta đánh số các xuất hiện của nó, bắt đầu từ số 0

Sự đánh số là định danh vị trí trong quy tắc

Cho P(r) là tập các xuất hiện vị từ trong thân Một sip của r là một đồ thị có

gán nhãn thoả mãn những điều kiện sau:

1) Mỗi nút là một tập con hay một thành phần của P (r) {Ph}

2) Mỗi cung có dạng N q, với nhãn X, với N là một tập con của

P(r) {Ph}, q là một phần tử của P(r), và X một tập các biến, sao cho:

3) Mọi biến của X xuất hiện trong N

4) Mọi thành phần của N được nối tới một biến trong X

5) Với một đối q, tất cả các biến của nó xuất hiện trong X

Hơn nữa, mọi biến của X xuất hiện trong đối của q thoả mãn điều kiện này

Hai điều kiện 1) và 2) định nghĩa bản chất của các nút và các cung của một

sip Điều kiện sau mô tả một hạn chế về tính nhất quán của sip Với một đồ

thị gồm các nút và các cung được xác định ở trên, hãy định nghĩa một quan hệ trước sau trên các thành phần của P(r) {Ph} như sau:

ph đi trước tất cả các thành phần của P(r)

Một vị từ không xuất hiện trong đồ thị, theo sau mọi vị từ xuất hiện trong nó

+ Nếu N q là một cung, và q’ e N, thì q’ đi trước q

+ Ta phát biểu điều kiện cuối cùng định nghĩa một sip:

Quan hệ trước sau định nghĩa bởi sip không có chu trình, có nghĩa rằng bao

đóng chuyển dịch là một thứ tự bộ phận

Trang 38

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một phát biểu tương đương:

Tồn tại một thứ tự toàn cục các vị từ P(r) {Ph} trong đó ph là đầu trước mỗi cung, tất cả đuôi vị từ của nó đứng trước đầu vị từ của nó, và sao cho các

vị từ không xuất hiện trong sip đi sau tất cả các vị từ khác

2.4.3 Phép biến đổi ma tập (Magic set transformation)

Input: Chương trình logic P, câu truy vấn q Gọi P ad là chương trình tô

điểm nhận được từ P theo một chiến lược truyền thông tin ngang đã cho Output: Một chương trình mới, ký hiệu Mag_P ad Việc định giá trên

truyền thông tin sang ngang đã chọn trước Chiến lược này chỉ ra cách thức

để các trị buộc trong đầu của quy tắc được truyền đến thân, thứ tự mà các đích con trong thân sẽ được tính và cách thức để các trị buộc này truyền

sang ngang giữa các đích con trong thân quy tắc

o Giai đoạn 2: Biến đổi chương trình Pad

thành chương trình mới, ký hiệu Mag_Pad, được thực hiện như sau:

1 Đối với mỗi vị từ p với đối là

_

t trong chương trình Pad , tạo ra một vị từ

mới mag_p( b

t ) với b

t là đối bị buộc của vị từ p

2 Đối với mỗi quy tắc r trong Pad: p(

_

t) q1(

_ 1

t ) qn(

_

n

t ) ta sửa đổi thành một quy tắc trong Mag_Pad

t ) qi-1(

_ 1

i

Trang 39

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ví dụ 2.2 Sử dụng phép biến đổi ma tập đối với chương trình Pad sau đây:

mar 2 : p

bf (X,Z) mag_p bf (X) e(X,Y) p bf (Y,Z)

mar 3 : mag_p

bf (Y) mag_p bf (X) e(X,Y)

mar 5 : mag_p

bf

(1)

2.5 Phương pháp ma tập cải tiến

Trong phần này giới thiệu một cải tiến của phương pháp ma tập [6] Trước hết nhận xét rằng phép biến đổi ma tập được thực hiện qua hai giai đoạn:

o Giai đoạn 1 (Bước tô điểm): Thực hiện việc tô điểm chương trình ban

đầu thành một chương trình (ký hiệu Pad) theo một chiến lược truyền thông tin ngang được chọn trước

o Giai đoạn 2 (Bước biến đổi chương trình): Một chương trình mới, ký

hiệu Mag_P ad

, được tạo ra từ chương trình P ad gọi là chương trình magic

Phương pháp ma tập được cải tiến trên hai điểm chính:

+ Cải tiến giai đoạn tô điểm chương trình của phép biến đổi ma tập

+ Cải tiến việc thực thi chương trình Mag_P ad được tạo ra trong giai đoạn 2 của phép biến đổi ma tập

2.5.1 Thuật toán tô điểm chương trình

Đối với phép biến đổi ma tập thì bước biến đổi chương trình trong giai

Trang 40

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

đoạn 2 đã được chỉ rõ, tuy nhiên vấn đề tô điểm các quy tắc trong chương trình ban đầu chưa hẳn là rõ ràng Trước hết phân tích chi tiết bước tô điểm chương trình, từ đó xác định một thuật toán tô điểm chương trình

Chương trình tô điểm P ad

bao gồm một tập các quy tắc chứa các vị từ được

tô điểm Quá trình tô điểm được bắt đầu bằng việc tô điểm vị từ của câu truy vấn, từ đó thực hiện tô điểm vị từ của đầu các quy tắc Thông tin về các đối buộc sẽ được truyền từ đầu đến thân và trong thân thì thông tin được truyền

giữa các đích con Quá trình tô điểm một quy tắc r có thể thực hiện nhờ vào

đồ thị truyền thông tin được xây dựng cho quy tắc đó [5], [6]

Định nghĩa 2.1 Với mỗi quy tắc r có chứa ít nhất một vị từ IDB trong thân,

ta tạo ra một đồ thị, ký hiệu IPG, được gọi là đồ thị truyền thông tin của quy tắc r - là một đồ thị có hướng được xây dựng như sau:

Vị từ đầu quy tắc r tạo thành nút xuất phát của đồ thị và chỉ có các

cạnh đi

Mỗi vị từ IDB trong thân quy tắc r được biểu diễn bởi một nút trong

IPG

Các cạnh có hướng p s q từ nút p đến nút q được gán nhãn là tập S các biến Các cạnh và nhãn chỉ định cách thức thông tin được truyền

Quy tắc được tô điểm như sau: Sau khi đã tạo ra đồ thị IPG đối với quy

tắc r đã cho và đầu của quy tắc này được tô điểm, ta có thể dựa vào đồ thị này

Ngày đăng: 10/06/2014, 21:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w