Mọi mô hình không phải là điểm bất động
vì một mô hình có thể có vài sự kiện xuất
hiện trong về trái của phương trình
Có thể chứng minh mô hình tối thiểu là
điểm bất động
Mô hình tối thiểu duy nhất P0 là điểm bất
động duy nhất
43 trang |
Chia sẻ: huongthu9 | Lượt xem: 561 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng cơ sở dữ liệu - Bài 1, Phần 2 : Cơ sở dữ liệu suy diễn, Datalog, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Bài 1, Phần 2: Cơ sở dữ liệu
suy diễn, Datalog
PGS.TS. Đỗ Phúc
Khoa Hệ thống thông tin
Trường Đại học Công nghệ Thông tin, ĐHQG-HCM
2CSDL so với diễn giải
Mô hình quan hệ
Quan hệ
Khóa
Các dạng chuẩn
Ràng buộc toàn vẹn
Đại số quan hệ : Chọn, chiếu, kết
Ngôn ngữ SQL
a) Truy vấn
- Câu truy vấn mở: trả lời Y/N
- Câu truy vấn đóng: trả về tập các bộ
b) Views là quan hệ không được lưu trữ trong CSDL và
được tạo qua các biểu thức
SELECT Name,Age FROM Person WHERE Age >= 10
3Mô hình quan hệ dựa trên logic
Quan hệ được định nghĩa dưới dạng các công
thức wff( well formed formulas)
person(ols,name,age,salary)
Hàm là trường hợp đặc biệt của quan hệ
Các thông tin
+ Các vị từ EDB
person(0111,’Albert’,xage,xsalary)
+ Các vị từ IDB
person(x,y,z,45) :- person(X,Y,Z,W) & W >= 35
4Ý nghĩa của luật
Ba cách diễn giải luật:
Diễn giải theo lý thuyết chứng minh
Diễn giải theo lý thuyết mô hình
Diễn giải theo tính toán
5Diễn giải theo lý thuyết chứng minh
Các tiên đề
Thông tin tường minh, ví dụ
age(Albert,20)
Thông tin ẩn được suy từ các vị từ EDB
và IDB
Phép phủ định
Vị từ khẳng định: ví dụ: age(Albert,30)
Vị từ phủ định: ví dụ: ~age(Albert,30)
6 b) Chứng minh
Tất cả các sự kiện ( facts) suy được qua các vị
từ IDB là suy được bằng modun ponen
person(0111,’Albert’,44,xsalary)
person(x,y,z,45) :- person(x,y,z,w) & z >= 35
----------------------------------------------------
person(0111,’Albert’,44,45)
c) Nghĩa của tập luật theo lý thuyết chứng
minh là tập các sự kiện được suy từ các sự kiện
cho trước hay có trong CSDL, dùng các luật
theo huớng chuỗi “tiến” , nghĩa là chiều suy diễn
từ bên phải sang trái.
7Diễn giải luật theo lý thuyết
mô hình
Các luật được định nghĩa theo thế giới
khả dĩ hay mô hình
Diễn giải: gán giá trị chân lý đúng hay
sai cho các thể hiện khả dĩ của vị từ
Mô hình của tập các luật là một diễn
giải làm cho luật đúng từ phép gán các
trị trong miền trị cho các biến trong
từng luật
8Ví dụ
Cho p, q và r là các vị từ sau:
p(x) :- q(x) (1)
q(x) :- r(x) (2)
Cơ sở dữ liệu {r1}
Miền trị nguyên
Các diễn giải
M1={r(1),q(1),p(1),q(2),p(2),p(3)}
M2={r(1),q(1),p(1)}
M3={r(1),q(2),p(2)}
Lưu ý : p->q = ~p V q , chỉ sai khi p đúng và q sai
9Mô hình cực tiểu
Gọi M1,..,Mn là các mô hình của tập các
công thức wff.
Mô hình tối thiểu của S là mô hình Mk
sao cho:
Mk ⊆ Mj , j ∈{1,,k-1,k+1,,n}
~∃M, M là mô hình của S và M ⊆ Mk
10
Định nghĩa tính toán
Các thuật toán để thẩm định tính
đúng/sai của luật
Prolog có các thuật toán để tìm chứng
minh cho sự kiện
11
Các khía cạnh của Datalog
Mô hình dựa trên logic
Tính toán trên đồ thị phụ thuộc
Tính toán trên mô hình tối thiểu
12
Mô hình datalog
Tiếp cận lý thuyết mô hình
Các phát biểu Prolog: công thức nguyên tử,
ký hiệu vị từ, hàm sinh trị
Quy ước Prolog: ký hiệu hàm, hằng
Phát biểu logic ( mệnh đề Horn)
B :- A1 & A2 & . . . . & An
Nếu A1 & A2 & . . . . & An thì B
A1 & A2 & . . . . & An phần thân (body) của
luật
B là phần đầu ( head ) của luật
13
Trong CSDL
Vị từ EDB: các quan hệ được lưu trong
CSDL
Các vị từ cài sẵn ( built –in)
Các vị từ IDB: mệnh đề Horn suy ra các
view
14
Thẩm định các luật không đệ qui
Không phủ định
Đổi sang biểu thức đại số quan hệ
15
Tính quan hệ được suy
Đối với từng luật r có pi ở phần đầu,
tính quan hệ cho phần thân của luật.
Phép tính sử dụng là phép kết tự nhiên
theo các đích con khác nhau.
Tính quan hệ IDB của pi.
16
Quan hệ được định nghĩa
qua phần thân của luật
Quan hệ r cho luật q :- p1 & . . . & pn.
Pj ={ ( a1, . . . ,ak) / p( a1, . . . ,ak) là đúng }
Đích con S của luật r được biểu diễn bằng phép
thay thế nếu thỏa
Nếu S là đích con thông thường, thì S trở thành
p( b1, . . . ,bk) với ( b1, . . . ,bk) là một bộ trong
quan hệ P ứng với p.
Nếu S là đích con cài sẵn thì với phép thế S trở
thành, b θ c, quan hệ số học b θ c là đúng
17
Ví dụ
cousin(X,Y) :- parent(X,Xp) & parent(Y,Yp) &
sibling(Xp,Yp)
Đã tính xong sibling, parent
R(X,Xp,Y,Yp) = P(X,Xp) ∞ P(Y,Yp) ∞
S(Xp,Yp)
Bộ của R có dạng (a,b,c,d)
với ( a,b) thuộc P
(c,d) thuộc P và
(b,d) thuộc S
18
Với luật:
sibling(X,Y) :- parent(X,Z) & parent(Y,Z) & X ≠ Y
Q(X,Y,Z) = σ X ≠ Y ( P(X,Z) ∞ P(Y,Z) )
P(X,Y) :- q(a,X) & r(X,Z,X) & s(Y,Z)
Quan hệ q(a,X): T(X) = Π$1 ( σ$1 = a(Q))
Quan hệ q(X,Z,X): U(X,Z) = Π$1,$2 ( σ $1 = $3(R))
Quan hệ: s(Y,Z): S(Y,Z)
Với $k là thuộc tính thứ k trong quan hệ
19
Thuật toán 1
Nhập: Phần thân của một luật datalog r có chứa các
đích con S1,,Sn và các biến X1,,Xn. Với mỗi Si =
pi(Ai1, . . . , Aik) là vị từ thông thường sẽ có một
quan hệ đã được tính R trong đó có A là đối, biến
hoặc hằng.
Xuất: Biểu thức đại số quan hệ, ký hiệu là
EVAl_RULE(r,R1,,Rn)
cho phép tính từ các quan hệ R1,,Rn tính được một
quan hệ R(X1,,Xm) có chứa các bộ (a1,,am) sao
cho khi thay aj vào Xj, 1 <= j <= m , tất cả đích con
S1,,Sn đều đúng.
20
Phương pháp
Biểu thức được xây dựng qua các bước sau:
1.Đối với mỗi đích con thông thường Si, gọi Qi là biểu
thức ΠVi(σFi(Ri)). Với Vi là tập hợp các thành phần chỉ
chứa đúng một xuất hiện của một biến X có trong đối
của Si. Công thức Fi là phép AND của các điều kiện
sau:
Nếu ở vị trí k của Si có hằng a thì Fi có điều kiện $k
= $l
Nếu ở vị trí k và l của Si chứa các giá trị giống nhau
thì Fi có điều kiện $k= $l
Đặc biệt nếu Fi không có một điều kiện nào, chẳng
hạn khi Si = p(X,Y) thì xem Fi là điều kiện đồng nhất
đúng, như thế Qi = Ri.
21
2.Đối với mỗi biến X không hiện diện trong các
đích con thông thường, hãy tính biểu thức Dx
nhằm tạo ra quan hệ một ngôi chứa tất cả các
giá trị mà X có thể nhận trong phép gán làm thỏa
tất cả đích của luật r. Do luật r là an toàn nên X
phải được gán bằng với biến Y có giới hạn nào
đó qua một chuỗi các phép gán bằng “=” và Y
được giới hạn nhờ một hằng a nào đó trong đích
con, hoặc Y là một đối của một đích con thông
thường.
Nếu Y = a là một đích con, thì đặt Dx là biểu
thức hằng {a}
Nếu Y xuất hiện như là đối thứ j của một đích
con thông thuờng Si, thì đặt Dx là Πj(Ri)
22
3. Gọi E là nối tự nhiên của tất cả các Qi được
định nghĩa trong (1) và các Dx được định nghĩa
trong (2). Trong phép nối này, ta xem Qi là quan
hệ với các thuộc tính là các biến trong Si , và
xem Dx là quan hệ có thuộc tính X
4. Gọi EVAl_RULE(r,R1,,Rn) là σF(E) trong đó F
là hội các biểu thức XθY tương ứng với các đích
con cài sẵn ( built-in ), XθY xuất hiện trong số
các đích con p1, , pm và E là biểu thức được
xây dựng trong bước (3). Nếu không có đích con
cài sẵn nào thì biểu thức cuối cùng chính là E.
23
Định lý 1
Thuật toán 1 là đúng theo nghĩa quan
hệ R được tạo ra có tất cả và chỉ những
bộ ( a1, . . . , am) sao cho khi thay thế
mỗi Xj bằng aj, mỗi đích con Si đều
được làm đúng.
( Xem chứng minh trong JD Ullman,
Vol1, chương 3)
24
Ví dụ
P(X,Z) :- q(a,X) & r(X,Z,X) & s(Y,Z)
Đích con: S1 là q(a,X)
Q1 = Π$2(σ$1=a (Q))
Đích con: S2 là r(X,Z,X)
Q2 = Π$1,$2(σ$1=$2 (R)) = U(X,Z)
Đích con: S3 là s(X,Z)
Q3 = S(X,Z)
Không có vị từ cài sẵn ( buớc 2 trong thuật
toán 1):
Q1 ∞ Q2 ∞ Q3
25
Tinh chỉnh luật
Tính quan hệ cho vị từ nằm ở phần đầu p của luật
Xét các luật có p trong phần đầu
Tính quan hệ trong phần thân
Chiếu các quan hệ xuất hiện trong phần đầu
Hợp các kết quả
Vị từ được chỉnh lý của vị từ p là một vị từ
p(X1,,Xk) sao cho:
Các đối Xj là khác nhau
Đưa ra các biến mới cho các vị từ trong phần đầu
của luật
Xử lý các đích con cài sẵn trong thân
26
Cách tạo luật được chỉnh
Luật r có vị từ trong phần đầu là p(Y1, . . . , Yk) tạo
vị từ trong phần đầu với p(X1,,Xk) với:
Các biến Xj là khác nhau
Xi=Xj trong thân với Yi là hằng
Ví dụ: Xét các luật
p(a,X,Y) :- r(X,Y)
p(X,Y,X) :- r(Y,X)
Các luật được chỉnh lý:
p(U,V,W) :- r(U,W) & U=a
p(U,V,W) = r(V,U) & W = U
Tính các quan hệ cho các vị từ không đệ qui
27
Thuật toán 2
Nhập: Một chương trình Datalog không
đệ qui và một quan hệ cho mỗi vị từ
EDB hiện diện trong chương trình.
Xuất: Đối với mỗi vị từ IDB p, cho ra
một biểu thức đại số quan hệ biểu diễn
một quan hệ cho p theo các quan hệ
R1, . . . , Rm cho các vị từ EDB.
28
Phương pháp
Khởi đầu, chúng ta sẽ tinh chỉnh tất cả các
luật. Kế đến chúng ta tạo đồ thị phụ thuộc
cho chương trình nhập và sắp thứ tự các vị từ
p1, , pn sao cho nếu đồ thị phụ thuộc của
chương trình có một cung từ pi đến pj thì i <
j. Ta có thể tìm được một thứ tự như thế vì
chương trình nhập là không đệ qui nên đồ thị
phụ thuộc là không có chu trình.
Với i=1,2, , n chúng ta tạo ra biểu thức của
quan hệ Pi( cho pi) như sau:
29
Nếu pi là vị từ EDB, gọi Pi là quan hệ cho
pi. Nguợc lại, giả sử pi là một vị từ IDB thì:
Đối với từng luật r có pi là phần đầu, hãy
dùng thuật toán 1 để tìm biểu thức Er, tính
được quan hệ Rr cho thân của luật r theo
những quan hệ của các vị từ xuất hiện
trong thân của r.
30
Do chương trình không đệ qui, tất cả các vị
từ xuất hiện trong thân của luật r đều có
những biểu thức cho các quan hệ của chúng,
được tính thao các quan hệ EDB. Hãy thay
các biểu thức thích hợp cho mỗi xuất hiện
của một quan hệ IDB trong biểu thức Er để
có được một biểu thức mới Fr.
Đặt lại tên cho các biến nếu cần, chúng ta có
thể giả sử phần đầu của một luật cho pi là
pi(X1,,Xk). Sau đó gán biểu thức cho Pi là
hợp trên tất cả các luật r cho pi , nghĩa là của
các ΠX1, , Xk (Fr)
31
Định lý 2
Thuật toán 2 đúng và cho phép tính
chính xác quan hệ cho từng vị từ theo
nghĩa là biểu thức do nó xây dựng cho
mỗi vị từ IDB sẽ tạo ra:
Tập các sự kiện ( facts) cho vị từ đó mà
có thể chứng minh từ CSDL
Mô hình cực tiểu duy nhất của luật
32
Ví dụ
Cho quan hệ EDB và IDB như sau:
p(a,Y) :- s(X,Y)
p(X,Y) :- s(X,Z) & r(Z,Y)
q(X,X) :- p(X,b)
q(X,Y) :- p(X,Z) & s(Z,Y)
Chỉnh lý luật:
p(X,Y) :- s(X,Y) & X = a
p(X,Y) :- s(X,Z) & r(Z,Y)
q(X,Y) :- p(X,b) & X=Y
q(X,Y) :- p(X,Z) & s(Z,Y)
33
Khởi đầu bằng p và q phụ thuộc vào p
Dùng thuật toán 1, tính quan hệ trong phần thân của luật
Đối với vị từ p:
P(X,Y) :- ΠX,Y(R(Z,Y) ∞ {a}(X) ) ∪ ΠX,Y(S(X,Z) ∞ R(Z,Y) )
Đối với vị từ q:
q(X,Y) :- p(X,b) & X=Y (1)
Ta có: ΠX,Y(σZ=b(P(X,Z) ) x ΠY(P(Y,W) )
q(X,Y) :- p(X,Z) & s(Z,Y) (2)
Q(X,Y) = σX=Y( ΠX ( σ Z=b (P(X,Z) ) x ΠY(P(Y,W) )
∪ ΠX,Y ( (P(X,Z) ) ∞ S(Z,Y) )
34
Datalog đệ qui
Thuật toán 2 cho các chương trình datalog ( sắp thứ tự ví từ )
Các tình huống pi sẽ được tính truớc qj.
Sườn tổng quát
Chương trình datalog
Các quan hệ EDB R1,,Rk
Các quan hệ IDB P1,,Pm
Pi = EVAL(pi, R1,,Rk, P1,,Pm)
với EVAL = ∪pi EVAL_RULE(pi)
Khởi đầu Pi = ∅ và do EVAL là “đơn điệu”, chúng ta sẽ đi đến
một điểm mà không có sự kiện nào có thể bổ sung vào bất kỳ Pi
nào
35
Điểm bất động của các
phương trình Datalog
Phương trình Datalog: thay thế dấu “:-“ (if) giữa các vị từ bằng
dấu “=” giữa các quan hệ.
Gọi R1,,Rk là các quan hệ cho các vị từ EDB, điểm bất
động(fixed points) của chương trình datalog ( ứng với
R1,,Rk) là lời giải cho các quan hệ ứng với các vị từ IDB của
các phương trình đó.
Các điểm bất động P1, , Pm ứng với R1,..,Rk cùng với các luật
tạo thành mô hình.
Gọi M là mô hình theo đó chỉ có các bộ P1,,Pm và R1,,Rk là
đúng
Bất ký một phép gán làm cho thân của luật r đúng thì đầu của luật
r cũng đúng ( p(a1,,an) )
thế thì (a1,,an) nằm trong quan hệ cho vị từ IDB p, nguợc lại M
không phải là điểm bất động.
36
Mọi mô hình không phải là điểm bất động
vì một mô hình có thể có vài sự kiện xuất
hiện trong về trái của phương trình
Có thể chứng minh mô hình tối thiểu là
điểm bất động
Mô hình tối thiểu duy nhất P0 là điểm bất
động duy nhất.
37
Giải phương trình Datalog
đệ qui
Bắt đầu bằng các quan hệ Pi =∅ cho các vị từ IDB
Cho sẵn các quan hệ R1,,Rk cho các vị từ EDB
Nguyên tắc:
Đầu tiên áp dụng thuật toán 2 cho Pi = ∅ và Ri. Sau đó chèn
các bộ mới vào quan hệ IDB
Lặp lại tiến trình cho đến khi tìm được một bước mà kết quả
không thay đổi
Thuật toán 3:
Nhập: Một tập các luật datalog với những vị từ EDB r1,,rk và
những vị từ IDB p1,,pm và một danh sách các quan hệ
R1,,Rk làm giá trị của các vị từ EDB.
Xuất: Điểm bất động nhỏ nhất (lời giải) của phương trình
datalog thu được từ các luật nhập vào
38
Phương pháp
Trước tiên cần xây dựng các phương trình
cho các luật. Những phương trình sẽ có các
biến P1,,Pm tương ứng với các vị từ IDB và
phương trình cho Pi là
Pi=EVAL(pi,R1,Rk,P1,,Pm). Sau đó khởi
gán giá trị rỗng cho từng Pi rồi lặp đi lặp lại
việc tính EVAL để thu được các giá trị mới
cho các Pi.
Khi không còn bổ sung được nữa, ta sẽ có
kết quả mong muốn.
39
Chi tiết thuật toán
For i:= 1 to do
Pi = ∅ ;
Repeat
For i:= 1 to m do
Qi := Pi ; // Lưu giá trị cũ
For j:= 1 to m do
Pi := EVAL(Pi,R1,,Rk,Q1,,Qm) ;
Until Pi = Qi với mọi i =1, , m
Xuất Pi.
40
Ví dụ: cho các luật
sibling(X,Y) :- parent(X,Z) & parent(Y,Z) &
X ≠ Y
cousin(X,Y):- parent(X,Xp) & parent(Y,Yp)
& sibling(Xp,Yp)
cousin(X,Y):- parent(X,Xp) & parent(Y,Yp)
& cousin(Xp,Yp)
related(X,Y) :- sibling(X,Y)
related(X,Y):- related(X,Z) & parent(Y,Z)
related(X,Y):- related(Z,Y) & parent(X,Z)
41
Các bộ của quan hệ
Parent(X,Y) được định nghĩa:
42
S(X,Y) = ΠX,Y ( σX≠Y(P(X,Z) ∞ P(Y,Z)))
C(X,Y) = ΠX,Y (P(X,Xp) ∞ P(Y,Yp) ∞ S(Xp,Yp))
∪ ΠX,Y (P(X,Xp) ∞ P(Y,Yp) ∞ C(Xp,Yp))
R(X,Y) = S(X,Y) ∪ ΠX,Y (R(X,Z) ∞ P(Y,Z) )
∪ ΠX,Y (R(Z,Y) ∞ P(X,Z))
43
Ứng dụng thuật toán ta có các
bước và giá trị sau
Bước S C R
1 cd de fg hi fi
2 fh fi ii gh gi hi jk cd de fg hi fi
3 jj kk df dg ch di
ci eh ei gj
fk hk ij
4 fh dj gh jk gi dk cj ii ck ej
ek
5 fj hj gk ik
6 jj kk
Các file đính kèm theo tài liệu này:
- bai_giang_co_so_du_lieu_bai_1_phan_2_co_so_du_lieu_suy_dien.pdf