SlideShare a Scribd company logo
1 of 50
Cơ sở dữ liệu nâng cao
Cơ sở dữ liệu suy diễn
Đỗ Thanh Nghị, Phạm Nguyên Khang
dtnghi@cit.ctu.edu.vn
Cần Thơ
11-10-2016
1
HQTCSDL suy diễn
 Mục tiêu
 Giới thiệu
 Giới thiệu
các khái niệm CSDL
sử dụng logic
suy diễn
 Tìm hiểu vấn đề hình thức hóa
vấn đệ quy
và đánh giá các câu truy
 Tìm hiểu các tiếp cận cài đặt
2
Tài liệu tham khảo
[Ramakrishnan, 1997]
Ramakrishnan, R. (1997)
Database Management Systems
Mc Graw Hill
chapitre 20
[Bidoit, 1992]
Bidoit, N. (1992)
Bases de données
Armand Colin
déductives: présentation de Datalog
3
Độ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
 Cung cấp một hệ thống hoàn chỉnh hỗ trợ
việc phát triển
khiển dữ liệu
ứng dụng và cho phép điều
4
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ự
 Mối quan hệ giữa các đối tượng
kiện)
 Suy diễn thông tin mới
 dữ liệu trong CSDL
từ:
 các luật mô hình hóa tri thức
5
Các chức năng
 Đảm bảo thực thi hiệu quả
diễn
 Lưu trữ luật
quá trình suy
 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:
 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
của CSDL
NẾU PARENT(X,Y) VÀ PARENT(Y,Z)
THÌ ANCETRE(X,Z)
từ dữ liệu
7
Vấn đề cần giải quyết
 Định nghĩa tri thức
 Ngôn
 Ngôn
 Ngôn
ngữ
ngữ
ngữ
luật (rules)
khung (frames)
kịch bản (scripts)
 Vấn đề biểu diễn tri thức trong trí tuệ nhân tạo
 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
8
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í
 Chiến
Ví
dụ: Ở Bắc Mỹ, bachelor là một bằng cấp ở bậc đại học
lược suy luận
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
9
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
 Đị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
10
Sử dụng tri thức
 Sử dụng tri thức
 Tìm kiếm
Tri thức được lưu trữ
kết quả tiềm năng
 Đạt được
đâu đó, ta phải tìm kiếm được các
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ó
11
Logic
Sử dụng logic
 Logic bậc 1
 Ngôn ngữ hình thức
đối tượng
quan hệ giữa các
 được định nghĩa bởi
tập từ vựng
văn phạm
 Cho phép chúng ta
cho phép biểu diễn
đối tượng
xây dựng công thức
diễn dịch công thức
13
Logic bậc 1
 Ký hiệu
 Biến: x, y, z
 Hằng: a, b, c
 Vị từ: P, Q, R,
dấu ngoặc ()
theo sau là các đối số được đặt trong cặp
 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ử: 
14
Logic bậc 1
 Văn phạm cho phép xây dựng công thức
 Mục (term):
Hằng:
Biến:
Áp dụng
được định nghĩa đệ quy
"Paul"
x
f(x); f(g(y))
hàm:
 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))
15
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ần định nghĩa
 Lĩnh vực đang nói đến D
Biến và hằng
công thức
 Quan hệ giữa các
Vị từ
đối tượng trong lĩnh vực D
Dn
 Hàm  D
Kí hiệu hàm
17
Thông dịch công thức
 Thông dịch
 F1  F2
 F1 F2
 x F1
công thức
F1  F2
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
Person(Paul)
 Nếu người x đặt hàng món hàng
một sản phẩm
 x ( y (Command (x, y)  (Product(y))
 Tổ tiên của Paul là ai ?
Ancetres (x, Paul) ?
y thì y là
19
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
 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
21
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
 tương ứng với các sự kiện có thể được
 sự kiện không có sẵn trong CSDL
 tập luật chính là phương tiện để sinh ra
suy diễn ra
các sự kiện mới
22
Datalog
 Ngôn ngữ logic
 tương tự như prolog
 dành cho CSDL
 Ngôn ngữ CSDL
 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
23
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
Parent (x, y)   Ancetre (x,y)
 Ngôn ngữ luật
 là ngôn ngữ mô tả
logic
 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
24
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 đề
 Các mệnh đề theo chuẩn Horn :
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
Horn
 Tất cả các biểu thức logic đều có
chuẩn Horn
thể được chuyển về
25
Datalog
 Ví dụ chương trình Datalog
{
parent (jacques, olivier) 
ancetre(x, y)  parent (x, y)
parent (olivier, adrien) 
ancetre (x, z)  ancetre (x, y)  parent (y, z)
parent (suzanne, jacques) 
parent (olivier, juliette) 
}
26
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,
 Inscription (NS, NC, Session, Date)
 Hợp (union): trích tên và họ
City, Age)
của người
(person) và của sinh viên
 R(y,z) <== Person (-, y, z, -)
 R(y,z) <== Students (-, y, z, -)
(Student)
29
Đạ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,
 Giao: tìm người là sinh viên
z, -)
 R(y,z) <== Person (-, y, z, -) and Student (-, y, z, -)
 Chiếu: tìm tên và họ của sinh viên
 R(y,z) <== Students (-, y, z, -)
30
Đại số quan hệ và Datalog
 Chọn: tìm mã số (NP) của những người
sống
 R(x)
hoặc:
 R(x)
ở Montréal
<== Person (x, -, -, "Montréal")
<== Person (x, -,-,w) AND w="Montréal »
 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,-, -, -)
31
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?
 Cách
 Suy
 Suy
tiếp cận:
diễn tiến
diễn lùi
 Cơ chế điều khiển
33
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)
 Bước này dừng khi không
nữa
 Bước 2 :
 Lọc lại để tìm kết quả
thể áp dụng được luật nào
35
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
father (jacques, olivier)
kết quả (sự kiện mới)
parent (jacques, olivier)
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)
36
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 đã
đượ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
37
Suy diễn lùi
Câu truy
luật 1:
luật 2:
vấn: ancêtre (x, adrien) ?
parent(x, y)  father (x, y)
parent (x, y)  mother (x, y)
Sự kiện phù
luật 1 :
hợp :
father (x, adrien) ?
father (olivier, adrien)
kết quả :
luật 2 :
kết quả
mother (x, adrien) ?
mother (brigitte, adrien)
:
38
Đánh giá các luật đệ quy
 Luật đệ quy:
 Trong định nghĩa luật có sử
nghĩa
dụng lại khái niệm cần định
 Ví dụ: định nghĩa khái niệm tổ tiên
ancetre(x, y)  parent (x, y)
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ữ
39
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)
 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)
40
Điều khiển thực thi
 Vấn đề liên quan đến thực
 Chọn luật để kích hoạt
thi
 Tối ưu hóa việc truy
 Điều khiển kết thúc
 Sắp thứ tự luật
 Giải pháp
 Phân tầng
 Giải thuật tối ưu
cập CSDL
41
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
SELECT DISTINCT Lecteur
FROM Lecture L1
sách
WHERE NOT EXISTS (SELECT *
FROM LIBRARY B1
WHERE NOT EXISTS (SELECT
FROM Lecture
*
WHERE lecteur=L1.lecteur
AND Book=B1.Book))
43
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)
-------
Solution (x) <== Lecture (x, -) AND NOT Bad (x)
44
Đ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
 Trong ví dụ của chúng ta: cần phải có 2 tầng
45
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 <định nghĩa Rel> <truy vấn suy
 Khả năng sử dụng từ khóa RECURSIVE
ra Rel>
 Sử dụng toán tử hợp (union) để định nghĩa quan hệ
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
nội
46
SQL3 và câu truy vấn đệ quy
ancetre(Anc, Desc)  parent (Par, Chd)
ancetre (Anc, Chd)  ancetre (Anc, x)  parent
WITH RECURSIVE Ancetres (Anc, Desc) AS
(x, Chd)
(SELECT Par, Chd FROM Parents)
UNION
(SELECT A.Anc, P.Chd
FROM Ancetres A, Parents P
WHERE A.Desc=P.Par)
47
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
của phép chọn:
sinh ra kết quả
SELECT * from Ancetres where Anc="Paul";
48
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
 Thực thi hiệu quả các câu truy vấn đệ quy
 Tối ưu hóa câu truy vấn
49
50

More Related Content

Similar to Slide bài giảng Cơ sở dữ liệu suy diễn.pptx

TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfPHNGUYNNGC9
 
Information Retrieval
Information RetrievalInformation Retrieval
Information RetrievalPhuong Pham
 
Logic menh de nhap mon tri tue nhan tao ptit
Logic menh de nhap mon tri tue nhan tao ptitLogic menh de nhap mon tri tue nhan tao ptit
Logic menh de nhap mon tri tue nhan tao ptitcongtran88
 
Artificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayArtificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayTráng Hà Viết
 
ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNguest717ec2
 
Bai 1 tong quan ve ctdl&amp;gt
Bai 1   tong quan ve ctdl&amp;gtBai 1   tong quan ve ctdl&amp;gt
Bai 1 tong quan ve ctdl&amp;gtTrangThu251076
 
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...TrnNgcSn23
 
brief_56931_20170808082412_LRC3TY608.pdf
brief_56931_20170808082412_LRC3TY608.pdfbrief_56931_20170808082412_LRC3TY608.pdf
brief_56931_20170808082412_LRC3TY608.pdfGiaSTon
 
Bài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoBài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoDự Nguyễn Quang
 
Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2Vu Pham
 
Bài giảng logic bậc nhất first order logic
Bài giảng logic bậc nhất   first order logicBài giảng logic bậc nhất   first order logic
Bài giảng logic bậc nhất first order logicjackjohn45
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTMasterCode.vn
 

Similar to Slide bài giảng Cơ sở dữ liệu suy diễn.pptx (20)

MATMAT- Chuong1
MATMAT- Chuong1MATMAT- Chuong1
MATMAT- Chuong1
 
TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdf
 
Luận văn: Tích hợp tri thức sử dụng các kỹ thuật tranh cãi, HAY
Luận văn: Tích hợp tri thức sử dụng các kỹ thuật tranh cãi, HAYLuận văn: Tích hợp tri thức sử dụng các kỹ thuật tranh cãi, HAY
Luận văn: Tích hợp tri thức sử dụng các kỹ thuật tranh cãi, HAY
 
Baitapmaygiat
BaitapmaygiatBaitapmaygiat
Baitapmaygiat
 
Csdl hdt
Csdl hdtCsdl hdt
Csdl hdt
 
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
 
Logic menh de nhap mon tri tue nhan tao ptit
Logic menh de nhap mon tri tue nhan tao ptitLogic menh de nhap mon tri tue nhan tao ptit
Logic menh de nhap mon tri tue nhan tao ptit
 
Artificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayArtificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc may
 
Các mô hình dữ liệu
Các mô hình dữ liệuCác mô hình dữ liệu
Các mô hình dữ liệu
 
ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáN
 
Bai 1 tong quan ve ctdl&amp;gt
Bai 1   tong quan ve ctdl&amp;gtBai 1   tong quan ve ctdl&amp;gt
Bai 1 tong quan ve ctdl&amp;gt
 
Đề tài: Thuật toán phân cụm dữ liệu mờ, HAY
Đề tài: Thuật toán phân cụm dữ liệu mờ, HAYĐề tài: Thuật toán phân cụm dữ liệu mờ, HAY
Đề tài: Thuật toán phân cụm dữ liệu mờ, HAY
 
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
LLDH mon Tin hoc - Chuong 3 - Mot so hoat dong dien hinh trong day hoc Tin ho...
 
Luận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệu
Luận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệuLuận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệu
Luận án: Phát hiện phụ thuộc hàm suy rộng trong cơ sở dữ liệu
 
brief_56931_20170808082412_LRC3TY608.pdf
brief_56931_20170808082412_LRC3TY608.pdfbrief_56931_20170808082412_LRC3TY608.pdf
brief_56931_20170808082412_LRC3TY608.pdf
 
Bài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoBài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân Tạo
 
Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2
 
Toan roi rac.pptx
Toan roi rac.pptxToan roi rac.pptx
Toan roi rac.pptx
 
Bài giảng logic bậc nhất first order logic
Bài giảng logic bậc nhất   first order logicBài giảng logic bậc nhất   first order logic
Bài giảng logic bậc nhất first order logic
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPT
 

Slide bài giảng Cơ sở dữ liệu suy diễn.pptx

  • 1. Cơ sở dữ liệu nâng cao Cơ sở dữ liệu suy diễn Đỗ Thanh Nghị, Phạm Nguyên Khang dtnghi@cit.ctu.edu.vn Cần Thơ 11-10-2016 1
  • 2. HQTCSDL suy diễn  Mục tiêu  Giới thiệu  Giới thiệu các khái niệm CSDL sử dụng logic suy diễn  Tìm hiểu vấn đề hình thức hóa vấn đệ quy và đánh giá các câu truy  Tìm hiểu các tiếp cận cài đặt 2
  • 3. Tài liệu tham khảo [Ramakrishnan, 1997] Ramakrishnan, R. (1997) Database Management Systems Mc Graw Hill chapitre 20 [Bidoit, 1992] Bidoit, N. (1992) Bases de données Armand Colin déductives: présentation de Datalog 3
  • 4. Độ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  Cung cấp một hệ thống hoàn chỉnh hỗ trợ việc phát triển khiển dữ liệu ứng dụng và cho phép điều 4
  • 5. 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ự  Mối quan hệ giữa các đối tượng kiện)  Suy diễn thông tin mới  dữ liệu trong CSDL từ:  các luật mô hình hóa tri thức 5
  • 6. Các chức năng  Đảm bảo thực thi hiệu quả diễn  Lưu trữ luật quá trình suy  Tối ưu hóa chương trình luật  Điều khiển thực thi 6
  • 7. 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:  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 của CSDL NẾU PARENT(X,Y) VÀ PARENT(Y,Z) THÌ ANCETRE(X,Z) từ dữ liệu 7
  • 8. Vấn đề cần giải quyết  Định nghĩa tri thức  Ngôn  Ngôn  Ngôn ngữ ngữ ngữ luật (rules) khung (frames) kịch bản (scripts)  Vấn đề biểu diễn tri thức trong trí tuệ nhân tạo  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 8
  • 9. 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í  Chiến Ví dụ: Ở Bắc Mỹ, bachelor là một bằng cấp ở bậc đại học lược suy luận 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 9
  • 10. 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  Đị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 10
  • 11. Sử dụng tri thức  Sử dụng tri thức  Tìm kiếm Tri thức được lưu trữ kết quả tiềm năng  Đạt được đâu đó, ta phải tìm kiếm được các 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ó 11
  • 12. Logic
  • 13. Sử dụng logic  Logic bậc 1  Ngôn ngữ hình thức đối tượng quan hệ giữa các  được định nghĩa bởi tập từ vựng văn phạm  Cho phép chúng ta cho phép biểu diễn đối tượng xây dựng công thức diễn dịch công thức 13
  • 14. Logic bậc 1  Ký hiệu  Biến: x, y, z  Hằng: a, b, c  Vị từ: P, Q, R, dấu ngoặc () theo sau là các đối số được đặt trong cặp  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ử:  14
  • 15. Logic bậc 1  Văn phạm cho phép xây dựng công thức  Mục (term): Hằng: Biến: Áp dụng được định nghĩa đệ quy "Paul" x f(x); f(g(y)) hàm:  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)) 15
  • 16. 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
  • 17. 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ần định nghĩa  Lĩnh vực đang nói đến D Biến và hằng công thức  Quan hệ giữa các Vị từ đối tượng trong lĩnh vực D Dn  Hàm  D Kí hiệu hàm 17
  • 18. Thông dịch công thức  Thông dịch  F1  F2  F1 F2  x F1 công thức F1  F2 F1 x F2 : 18
  • 19. 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 Person(Paul)  Nếu người x đặt hàng món hàng một sản phẩm  x ( y (Command (x, y)  (Product(y))  Tổ tiên của Paul là ai ? Ancetres (x, Paul) ? y thì y là 19
  • 21. 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  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 21
  • 22. 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  tương ứng với các sự kiện có thể được  sự kiện không có sẵn trong CSDL  tập luật chính là phương tiện để sinh ra suy diễn ra các sự kiện mới 22
  • 23. Datalog  Ngôn ngữ logic  tương tự như prolog  dành cho CSDL  Ngôn ngữ CSDL  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 23
  • 24. 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 Parent (x, y)   Ancetre (x,y)  Ngôn ngữ luật  là ngôn ngữ mô tả logic  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 24
  • 25. 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 đề  Các mệnh đề theo chuẩn Horn : 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 Horn  Tất cả các biểu thức logic đều có chuẩn Horn thể được chuyển về 25
  • 26. Datalog  Ví dụ chương trình Datalog { parent (jacques, olivier)  ancetre(x, y)  parent (x, y) parent (olivier, adrien)  ancetre (x, z)  ancetre (x, y)  parent (y, z) parent (suzanne, jacques)  parent (olivier, juliette)  } 26
  • 27. 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
  • 28. Đại số quan hệ và DataLog
  • 29. Diễn đạt các phép toán  Cho các quan hệ sau:  Person (NP, LName, FName, City)  Student (NS, LNameStd, FNameStd,  Inscription (NS, NC, Session, Date)  Hợp (union): trích tên và họ City, Age) của người (person) và của sinh viên  R(y,z) <== Person (-, y, z, -)  R(y,z) <== Students (-, y, z, -) (Student) 29
  • 30. Đạ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,  Giao: tìm người là sinh viên z, -)  R(y,z) <== Person (-, y, z, -) and Student (-, y, z, -)  Chiếu: tìm tên và họ của sinh viên  R(y,z) <== Students (-, y, z, -) 30
  • 31. Đại số quan hệ và Datalog  Chọn: tìm mã số (NP) của những người sống  R(x) hoặc:  R(x) ở Montréal <== Person (x, -, -, "Montréal") <== Person (x, -,-,w) AND w="Montréal »  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,-, -, -) 31
  • 33. 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?  Cách  Suy  Suy tiếp cận: diễn tiến diễn lùi  Cơ chế điều khiển 33
  • 34. 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
  • 35. 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)  Bước này dừng khi không nữa  Bước 2 :  Lọc lại để tìm kết quả thể áp dụng được luật nào 35
  • 36. 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 father (jacques, olivier) kết quả (sự kiện mới) parent (jacques, olivier) 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) 36
  • 37. 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 đã đượ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 37
  • 38. Suy diễn lùi Câu truy luật 1: luật 2: vấn: ancêtre (x, adrien) ? parent(x, y)  father (x, y) parent (x, y)  mother (x, y) Sự kiện phù luật 1 : hợp : father (x, adrien) ? father (olivier, adrien) kết quả : luật 2 : kết quả mother (x, adrien) ? mother (brigitte, adrien) : 38
  • 39. Đánh giá các luật đệ quy  Luật đệ quy:  Trong định nghĩa luật có sử nghĩa dụng lại khái niệm cần định  Ví dụ: định nghĩa khái niệm tổ tiên ancetre(x, y)  parent (x, y) 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ữ 39
  • 40. 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)  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) 40
  • 41. Điều khiển thực thi  Vấn đề liên quan đến thực  Chọn luật để kích hoạt thi  Tối ưu hóa việc truy  Điều khiển kết thúc  Sắp thứ tự luật  Giải pháp  Phân tầng  Giải thuật tối ưu cập CSDL 41
  • 42. 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
  • 43. Ví dụ  Câu truy vấn SQL:  Tìm các độc giả đọc tất cả các quyển SELECT DISTINCT Lecteur FROM Lecture L1 sách WHERE NOT EXISTS (SELECT * FROM LIBRARY B1 WHERE NOT EXISTS (SELECT FROM Lecture * WHERE lecteur=L1.lecteur AND Book=B1.Book)) 43
  • 44. 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) ------- Solution (x) <== Lecture (x, -) AND NOT Bad (x) 44
  • 45. Đ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  Trong ví dụ của chúng ta: cần phải có 2 tầng 45
  • 46. 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 <định nghĩa Rel> <truy vấn suy  Khả năng sử dụng từ khóa RECURSIVE ra Rel>  Sử dụng toán tử hợp (union) để định nghĩa quan hệ 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 nội 46
  • 47. SQL3 và câu truy vấn đệ quy ancetre(Anc, Desc)  parent (Par, Chd) ancetre (Anc, Chd)  ancetre (Anc, x)  parent WITH RECURSIVE Ancetres (Anc, Desc) AS (x, Chd) (SELECT Par, Chd FROM Parents) UNION (SELECT A.Anc, P.Chd FROM Ancetres A, Parents P WHERE A.Desc=P.Par) 47
  • 48. 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 của phép chọn: sinh ra kết quả SELECT * from Ancetres where Anc="Paul"; 48
  • 49. 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  Thực thi hiệu quả các câu truy vấn đệ quy  Tối ưu hóa câu truy vấn 49
  • 50. 50