Bài giảng Cơ sở dữ liệu nâng cao - Chương 3: Cơ sở dữ liệu suy diễn - Đỗ Thanh Nghị
HQTCSDL suy diễn
 Mục tiêu
 Giới thiệu các khái niệm CSDL suy diễn
 Giới thiệu sử dụng logic
 Tìm hiểu vấn đề hình thức hóa và đánh giá các câu truy
vấn đệ quy
 Tìm hiểu các tiếp cận cài đặt
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu nâng cao - Chương 3: Cơ sở dữ liệu suy diễn - Đỗ Thanh Nghị", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
        
        Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu nâng cao - Chương 3: Cơ sở dữ liệu suy diễn - Đỗ Thanh Nghị

Cơ sở dữ liệu nâng cao Cơ sở dữ liệu suy diễn Đỗ Thanh Nghị, Phạm Nguyên Khang 1 [email protected] Cần Thơ 11-10-2016 HQTCSDL suy diễn  Mục tiêu  Giới thiệu các khái niệm CSDL suy diễn  Giới thiệu sử dụng logic  Tìm hiểu vấn đề hình thức hóa và đánh giá các câu truy vấn đệ quy 2  Tìm hiểu các tiếp cận cài đặt Tài liệu tham khảo [Ramakrishnan, 1997] Ramakrishnan, R. (1997) Database Management Systems Mc Graw Hill chapitre 20 3 [Bidoit, 1992] Bidoit, N. (1992) Bases de données déductives: présentation de Datalog Armand Colin Động lực  Tích hợp các chức năng của HQTCSDL và hệ chuyên gia  Lưu trữ  Tìm kiếm Suy diễn 4   Cung cấp một hệ thống hoàn chỉnh hỗ trợ việc phát triển ứng dụng và cho phép điều khiển dữ liệu Các chức năng  Cho phép biểu diễn tri thức  Ngôn ngữ biểu diễn tri thức  Tri thức cơ bản (đối tượng hoặc sự kiện)  Mối quan hệ giữa các đối tượng Suy diễn thông tin mới từ: 5   dữ liệu trong CSDL  các luật mô hình hóa tri thức Các chức năng  Đảm bảo thực thi hiệu quả quá trình suy diễn  Lưu trữ luật  Tối ưu hóa chương trình luật Điều khiển thực thi 6  Ví dụ  CSDL mô tả mối quan hệ huyết thống  Quan hệ PARENT (cha, con)  Quan hệ ANCETRE (tổ tiên, hậu duệ)  Câu hỏi của người dùng có dạng: 7  Tìm các hậu duệ của Jean  Tìm các tổ tiên của Paul  Cần định nghĩa  làm thế nào để có được hậu duệ và tổ tiên  và làm thế nào chúng ta có thể suy diễn được từ dữ liệu của CSDL NẾU PARENT(X,Y) VÀ PARENT(Y,Z) THÌ ANCETRE(X,Z) Vấn đề cần giải quyết  Định nghĩa tri thức  Ngôn ngữ luật (rules)  Ngôn ngữ khung (frames)  Ngôn ngữ kịch bản (scripts)  Vấn đề biểu diễn tri thức trong trí tuệ nhân tạo 8  Chiến lược suy diễn  Suy diễn tiến  Suy diễn lùi  Suy diễn kết hợp tiến và lùi  Điều khiển thực thi  Phân tầng chương trình  Tương hợp các luật Tri thức  Định nghĩa tri thức  Thông tin tổng quát Ví dụ : Các loại bằng cấp khác nhau  Tri thức riêng của một lĩnh vực Ví dụ: Ở Bắc Mỹ, bachelor là một bằng cấp ở bậc đại học 9  Chiến lược suy luận Ví dụ: Nếu một sinh viên học ở Québec và anh ta có bằng bachelor thì anh ta có bằng đại học Biểu diễn tri thức  Biểu diễn tri thức  Sử dụng trừu tượng hóa: các khái niệm  Công cụ biểu diễn tri thức  Tổ chức tri thức Ngôn ngữ hình thức 10   Định nghĩa và sử dụng ngôn ngữ hình thức để biểu diễn tất cả các loại tri thức logic Ngôn ngữ luật Ngôn ngữ đối tượng Sử dụng tri thức  Sử dụng tri thức  Tìm kiếm Tri thức được lưu trữ đâu đó, ta phải tìm kiếm được các kết quả tiềm năng  Đạt được 11 Cần phải đạt được tri thức mới  Suy luận Suy luận thông tin mới từ thông tin đang có Logic Sử dụng logic  Logic bậc 1  Ngôn ngữ hình thức cho phép biểu diễn đối tượng quan hệ giữa các đối tượng  được định nghĩa bởi 13 tập từ vựng văn phạm  Cho phép chúng ta xây dựng công thức diễn dịch công thức Logic bậc 1  Ký hiệu  Biến: x, y, z  Hằng: a, b, c  Vị từ: P, Q, R, theo sau là các đối số được đặt trong cặp dấu ngoặc () 14  Phép toán logic:     Hàm : f, g, h theo sau là các đối số được đặt trong cặp dấu ngoặc ()  Lượng tử: Logic bậc 1  Văn phạm cho phép xây dựng công thức  Mục (term): được định nghĩa đệ quy Hằng: "Paul" Biến: x Áp dụng hàm: f(x); f(g(y)) 15  Luật nguyên tử Nếu t1, t2, tn là các mục (vd: "Paul"; x) Thì P(t1, t2, tn) là một luật nguyên tử (vd: P("Paul", x)) Logic bậc 1  Biểu thức - Nếu F1, F2 là biểu thức thì F1 F2, F1 F2, F1 F2 và F1 là biểu thức và x F1, x F2 cũng là biểu thức 16 Thông dịch công thức  Thông dịch công thức của logic bậc 1  kết hợp một giá trị luận lý (đúng, sai) vào một công thức  Cần định nghĩa  Lĩnh vực đang nói đến D 17 Biến và hằng  Quan hệ giữa các đối tượng trong lĩnh vực D Vị từ  Hàm Dn D Kí hiệu hàm Thông dịch công thức  Thông dịch công thức :  F1 F2 F1 F2  F1 F2 F1  x F1 x F2 18 Ví dụ  Những người chơi tennis đều là người thích thể thao  x Person (x) Play ( tennis, x) Sportive(x)  Paul là người 19 Person(Paul)  Nếu người x đặt hàng món hàng y thì y là một sản phẩm  x ( y (Command (x, y) (Product(y))  Tổ tiên của Paul là ai ? Ancetres (x, Paul) ? CSDL logic CSDL và logic  Các việc cần phải làm với CSDL suy diễn  Hiểu CSDL thông qua logic  Sử dụng logic để định nghĩa (hoặc định nghĩa lại) các phép toán đại số quan hệ  Sử dụng logic để định nghĩa cơ chế suy diễn 21  Sử dụng logic trong CSDL hướng đối tượng  Sử dụng logic trong CSDL  Sử dụng logic vị từ  Định nghĩa phép tính quan hệ giữa các mẫu tin  Giới thiệu câu truy vấn đệ quy CSDL suy diễn  CSDL ngoại diên  tương ứng với tập sự kiện đang có  được xây dựng từ nội dung của CSDL  trong CSDL quan hệ: tập các quan hệ CSDL nội hàm 22   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 Datalog  Ngôn ngữ logic  tương tự như prolog  dành cho CSDL  Ngôn ngữ CSDL 23  DATA và LOGic  thao tác dữ liệu dựa trên logic  Khả năng biểu diễn tốt hơn SQL  Ngôn ngữ cho CSDL suy diễn  dựa trên kiểu mẫu (prototypes)  cho phép so sánh khả năng biểu của các ngôn ngữ khác Datalog  Tiên đề của 1 CSDL suy diễn  Tiên đề của CSDL ngoại diên Parent (Jacques, Olivier)  Tiên đề của CSDL nội hàm: các biểu thức logic Parent (x, y)  Ancetre (x,y) 24  Ngôn ngữ luật  là ngôn ngữ mô tả  cho phép thực hiện các thao tác cơ bản trong CSDL: chọn, chiếu, kết nối, ...  cách tiếp cận tương tự như Prolog Datalog  Cú pháp của Datalog  Ngôn ngữ luật cho CSDL  Mô tả quan hệ suy diễn dựa trên mệnh đề Horn  Các mệnh đề theo chuẩn Horn : 25 Q  P1 P2  ...  Pn  biểu thức không chứa lượng tử  có dạng chuẩn VÀ  chỉ có 1 biến ở vế trái  Biến đổi  Tất cả các biểu thức logic đều có thể được chuyển về chuẩn Horn Datalog  Ví dụ chương trình Datalog { parent (jacques, olivier)  ancetre(x, y)  parent (x, y) 26 parent (olivier, adrien)  ancetre (x, z)  ancetre (x, y)  parent (y, z) parent (suzanne, jacques)  parent (olivier, juliette)  } Chú ý  Thứ tự luật trong chương trình không quan trọng  Vế trái: kết luận  Vế phải: các tiền đề 27 Đại số quan hệ và DataLog Diễn đạt các phép toán  Cho các quan hệ sau:  Person (NP, LName, FName, City)  Student (NS, LNameStd, FNameStd, City, Age)  Inscription (NS, NC, Session, Date) Hợp (union): trích tên và họ của người 29  (person) và của sinh viên (Student)  R(y,z) <== Person (-, y, z, -)  R(y,z) <== Students (-, y, z, -) Đại số  Hiệu: tìm người không phải sinh viên  R(y,z) <== Person (-, y, z, -) and NOT Student (-, y, z, -)  Giao: tìm người là sinh viên  R(y,z) <== Person (-, y, z, -) and Student (-, y, z, -) 30  Chiếu: tìm tên và họ của sinh viên  R(y,z) <== Students (-, y, z, -) Đại số quan hệ và Datalog  Chọn: tìm mã số (NP) của những người sống ở Montréal  R(x) <== Person (x, -, -, "Montréal") hoặc: R(x) <== Person (x, -,-,w) AND w="Montréal » 31   Kết nối (join): tìm họ và tên của các sinh viên có đăng ký học  R(y,z) <== Student (x, -, -, -) AND Inscription (x,-, -, -) Chiến lược thực thi Vấn đề  Thực thi một chương trình luật  Sử dụng Datalog để truy vấn CSDL suy diễn  Thực thi một chương trình luật như thế nào?  Một số chương trình rất phức tạp  Sử dụng chiến lược nào? 33  Cách tiếp cận:  Suy diễn tiến  Suy diễn lùi  Cơ chế điều khiển Suy diễn tiến  Nguyên lý:  Bắt đầu từ dữ liệu để thiết lập câu trả lời  Tất cả các sự kiện (fact) phải suy diễn đều được suy diễn  Lọc các sự kiện phù hợp với câu truy vấn 34 Suy diễn tiến  Ví dụ :  parent (x, adrien)?  Bước 1 :  Sinh ra tất cả các tổ tiên bằng cách áp dụng luật lên tất cả các sự kiện ban đầu (được khởi tạo trước) 35  Bước này dừng khi không thể áp dụng được luật nào nữa  Bước 2 :  Lọc lại để tìm kết quả Suy diễn tiến Luật : parent(x, y)  father (x, y) parent (x, y)  mother (x, y) Câu truy vấn: parent (x, adrien) Bước 1 : sự kiện kết quả (sự kiện mới) father (jacques, olivier) parent (jacques, olivier) 36 father (olivier, adrien) parent (olivier, adrien) mother (suzanne, jacques) parent (suzanne, jacques) mother (brigitte, adrien) parent (brigitte, adrien) mother (colette, olivier) parent (colette, olivier) Etape 2 : lọc parent (olivier, adrien) parent (brigitte, adrien) Suy diễn lùi  Nguyên lý:  bắt đầu từ câu truy vấn của người dùng  quay lên các giá trị đã biết của các vị từ thông qua luật khi suy diễn lùi  việc quay lên dừng lại khi ta nhận được các sự kiện đã 37 được lưu trữ trong CSDL  nếu các sự kiện đều được tìm thấy trong CSDL, câu trả lời cho câu truy vấn là đúng.  Ưu điểm:  Ta chỉ tìm các sự kiện phù hợp với câu truy vấn Suy diễn lùi Câu truy vấn: ancêtre (x, adrien) ? luật 1: parent(x, y)  father (x, y) luật 2: parent (x, y)  mother (x, y) 38 Sự kiện phù hợp : luật 1 : father (x, adrien) ? kết quả : father (olivier, adrien) luật 2 : mother (x, adrien) ? kết quả : mother (brigitte, adrien) Đánh giá các luật đệ quy  Luật đệ quy:  Trong định nghĩa luật có sử dụng lại khái niệm cần định nghĩa  Ví dụ: định nghĩa khái niệm tổ tiên ancetre(x, y)  parent (x, y) 39 ancetre (x, z)  ancetre (x, y)  parent (y, z)  Cần thiết  Giảm thời gian thực thi  Giảm số lượng bộ (tuples) sinh ra  Đảm bảo việc thực thi phải kết thúc  Giảm tương tác với hệ thống lưu trữ Chiến lược  Phương pháp ngây thơ (naïve)  Sinh ra sự kiện mới bằng cách áp dụng tất cả các luật lên tất cả các sự kiện đang có cho đến khi không thể áp dụng được nữa  Phương pháp nửa ngây thơ (semi-naïve) 40  Suy diễn tiến bằng cách chỉ áp dụng các luật lên các sự kiện mới được sinh ra, ta sẽ giảm được các số lượng các sự kiện  Phương pháp tập hợp ma thuật  Trước khi áp dụng suy diễn tiến đánh dấu các quan hệ hữu ích lên các vị từ đệ quy bằng các vị từ ma thuật (magical predicates) Điều khiển thực thi  Vấn đề liên quan đến thực thi  Chọn luật để kích hoạt  Tối ưu hóa việc truy cập CSDL  Điều khiển kết thúc  Sắp thứ tự luật 41  Giải pháp  Phân tầng  Giải thuật tối ưu Phân tầng: ví dụ  Cho các quan hệ sau:  LIBRARY (Book) chứa tất cả các quyển sách trong thư viện  LECTURE (Lecteur, Book) mô tả ai đọc quyển sách nào 42 Ví dụ  Câu truy vấn SQL:  Tìm các độc giả đọc tất cả các quyển sách SELECT DISTINCT Lecteur FROM Lecture L1 WHERE NOT EXISTS (SELECT * 43 FROM LIBRARY B1 WHERE NOT EXISTS (SELECT * FROM Lecture WHERE lecteur=L1.lecteur AND Book=B1.Book)) Ví dụ  Biểu diễn trong Datalog: Time (x, y) <== Lecture (x, -) AND Library (y) ------- Bad (x) <== Time (x, y) AND NOT Lecture (x, y) 44 ------- Solution (x) <== Lecture (x, -) AND NOT Bad (x) Điều khiển thực thi  Phân tầng  Nếu có phép toán hiệu, cần phải sinh ra tất các mẩu tin cho một luật trước khi thực hiện luật kế tiếp  Ta không thể làm phép toán hiệu (giữa kết quả của luật 1 và của luật 2) khi việc thực thi luật 1 chưa kết thúc 45  Trong ví dụ của chúng ta: cần phải có 2 tầng SQL3 và câu truy vấn đệ quy  Định nghĩa quan hệ nội hàm  Sử dụng vị từ WITH WITH Rel AS  Khả năng sử dụng từ khóa RECURSIVE  Sử dụng toán tử hợp (union) để định nghĩa quan hệ nội 46 hàm  Định nghĩa quan hệ nội hàm chỉ có giá trị trong ngữ cảnh của câu truy vấn WITH  Kết quả của định nghĩa cho quan hệ này là tạm thời SQL3 và câu truy vấn đệ quy ancetre(Anc, Desc)  parent (Par, Chd) ancetre (Anc, Chd)  ancetre (Anc, x)  parent (x, Chd) WITH RECURSIVE Ancetres (Anc, Desc) AS 47 (SELECT Par, Chd FROM Parents) UNION (SELECT A.Anc, P.Chd FROM Ancetres A, Parents P WHERE A.Desc=P.Par) SQL3 SELECT * FROM Ancetres;  Câu truy vấn này cho phép sinh ra tất cả các tổ tiên ancetres  Mệnh đề SELECT có thể là câu truy vấn sinh ra kết quả của phép chọn: 48 SELECT * from Ancetres where Anc="Paul"; Kết luận  CSDL suy diễn mang lại  Khả năng diễn đạt  Xử lý câu truy vấn đệ quy  Khó khăn 49  Thực thi hiệu quả các câu truy vấn đệ quy  Tối ưu hóa câu truy vấn 50
File đính kèm:
 bai_giang_co_so_du_lieu_nang_cao_chuong_3_co_so_du_lieu_suy.pdf bai_giang_co_so_du_lieu_nang_cao_chuong_3_co_so_du_lieu_suy.pdf




