Tóm lại, sự thành công của mô hình dữ liệu quan hệ là vô cùng to lớn, một minh chứng cụ thể là mô hình này đã được sử trong các hệ quản trị thương mại, như Access, SQLServer,… Tuy nhiên,
Trang 1Trờng đại học vinh Khoa công nghệ thông tin
- -ĐỐ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: kỹ s công nghệ thông tin
TèM HIỂU MỘT SỐ BÀI TOÁN ĐỆ QUY TRONG
DATALOG
gvhd: t hs Cao thanh sơn svth : lê anh tuấn
chu văn trà lớp : 47k - cntt
Nghệ An - 05/2011
LỜI CẢM ƠN
Chỳng em xin chõn thành cảm ơn khoa Cụng Nghệ Thụng Tin, trường Đại HọcVinh đó tạo điều kiện tốt cho chỳng em hoàn thành đồ ỏn tốt nghiệp của mỡnh
Trang 2Chúng em xin được cảm ơn thầy giáo ThS Cao Thanh Sơn đã tận tình hướngdẫn, chỉ bảo chúng em trong suốt thời gian làm đồ án.
Chúng em xin được chân thành cảm ơn quý thầy cô trong khoa đã tận tình giảngdạy, trang bị cho chúng em những kiến thức quý báu trong suốt những năm học vừaqua
Chúng con xin nói lên lòng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ, đã chămsóc, nuôi dạy chúng con thành người
Xin chân thành cảm ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viênchúng em trong thời gian học tập và nghiên cứu
Mặc dù đã hết sức cố gắng hoàn thành đồ án trong phạm vi và khả năng chophép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Chúng em kính mong nhậnđược sự cảm thông và đóng góp ý kiến tận tình của quý thầy cô và các bạn
Nghệ An … Tháng 5 năm 2011
Sinh viên
LỜI NÓI ĐẦU
Các hệ quản trị cơ sở dữ liệu (QTCSDL) quan hệ, được xây dựng theo mô hình
dữ liệu quan hệ do E.F Codd đề xuất vào năm 1970, đã thu được những thành tựu tolớn về cả phương diện lý thuyết và ứng dụng Ưu điểm của các hệ này là cách tổ chức
Trang 3dữ liệu, truy cập và cập nhật những khối lượng lớn dữ liệu một cách thuận lợi, an toàn
và hiệu quả Chúng có các thuật toán tìm kiếm, sắp xếp và đảm bảo toàn vẹn dữ liệu,quản lý truy cập đồng thời với nhiều người dùng khác nhau Hơn nữa, vấn đề quantrọng nhất của một hệ QTCSDL phải có là khả năng trả lời các câu truy vấn có hiệuquả Bên cạnh đó CSDL quan hệ đã cung cấp rất nhiều kỹ thuật tiên tiến để đánh giácác biểu thức quan hệ phức tạp
Theo Codd: Một ngôn ngữ truy vấn CSDL là đầy đủ (complete) nếu nó sinh racác phép toán quan hệ
Tóm lại, sự thành công của mô hình dữ liệu quan hệ là vô cùng to lớn, một minh chứng
cụ thể là mô hình này đã được sử trong các hệ quản trị thương mại, như Access, SQLServer,… Tuy nhiên, mô hình dữ liệu quan hệ không có khả năng suy dẫn ra sự kiệnmới Ngoài ra, chúng chưa khai thác hết được quan hệ ngữ nghĩa giữa các thuộc tính
Hiện nay, đã có nhiều cách tiếp cận để giải quyết vấn đề trên như: Data mining,Deductive database,… Các nghiên cứu về Deductive Database được bắt đầu từ nhữngnăm 70 của thế kỷ trước và được thể hiện trong quyển sách Logic and Databases củanhóm tác giả Gallaire và Minker Từ khi ra đời, các nghiên cứu trong lĩnh vực này có 2
Trang 4Song song với sự phát triển của các hệ QTCSDL, các hệ chuyên gia đã được pháttriể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ểmchính của các hệ chuyên gia là cung cấp các khả năng suy luận nhằm hỗ trợ việc raquyết định, nhưng chúng không có khả năng quản lý các khối lượng lớn thông tin.
Như vậy, các CSDL suy diễn có thể được xem như các chương trình logic với sựkhái quát hoá khái niệm về CSDL quan hệ 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ác xử lý đệ quy Mặt khác, một CSDLsuy diễn phải có tất cả những chức năng của một hệ QT CSDL truyền thống, chẳng hạnnhư 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 (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
Trang 5Vấn đề đặt ra: Phép toán quan hệ và Đại số quan hệ đã được xem như là ngônngữ cơ sở dữ liệu trong suốt thời gian dài, tuy nhiên, các phép toán quan hệ thiếu mộttính chất quan trọng: Đệ quy (recursive) Một số bài toán không thể giải quyết được khidùng các Phép toán quan hệ.
Trước nhu cầu giải quyết những bài toán đệ quy, những vấn đề mà các phép toánđại số quan hệ trước đây còn chưa làm được Datalog hướng chúng ta tìm ra một hướngmới cho việc giải quyết những vấn đề trên Bằng những phương pháp xác định và đánhgiá ngữ nghĩa của chương trình, đồng thời đưa ra một cơ sở luật cho cơ sở dữ liệu suydiễn Bằng các phương pháp tiếp cận theo những quan điểm lý thuyết kinh điển nhưquan điểm lý thuyết mô hình, quan điểm lý thuyết chứng minh, quan điểm bất động.Datalog đã góp phần không nhỏ vào công việc giải quyết các vấn đề của bài toán đệquy
Cấu trúc của đồ án “Tìm hiểu một số bài toán đệ quy trong Datalog” được chialàm ba chương
Chương 1: Một số khái niệm cơ bản
Chương 2: Một số phương pháp đánh giá và xác định ngữ nghĩa chương trình DatalogChương 3: Ứng dụng Datalog để giải quyết một số bài toán đệ quy
CHƯƠNG 1 : MỘT SỐ KHÁI NIỆM CƠ BẢN
Trang 6các kết nối như trong logic mệnh đề, logic vị từ bậc nhất đưa vào khái niệm vị từ
(pridicate) và sử dụng các lượng từ (quantifier): tồn tại (), với mọi ( )
a Logic vị từ bậc nhất có 4 kiểu ký hiệu (symbols):
Hằng (Constants): Tên của các đối tượng trong một lĩnh vực cụ thể (ví dụ:tuan, tra)
Biến (Variables): Các ký hiệu mà giá trị thay đổi đối với các đối tượng khácnhau (ví dụ: x)
Ký hiệu hàm (Function symbols): Các ký hiệu biểu diễn ánh xạ (quan hệhàm) từ các đối tượng của miền (domain) này sang các đối tượng của miềnkhác (ví dụ: plus)
Các vị từ (Predicates): Các quan hệ mà giá trị logic là đúng hoặc sai (ví dụ:friend)
b Ngữ nghĩa:
Một biểu diễn (interpretation) của một biểu thức là cặp <D, I>, trong đó
o Miền giá trị (Domain) D là một tập khác rỗng
o Hàm biểu diễn (Interpretation function) I là một phép gán giá trị đốivới mỗi hằng, ký hiệu hàm, và ký hiệu vị từ sao cho:
Đối với hằng c I(c) d
Đối với ký hiệu hàm (có n tham số) f: I(f): Dn D
Đối với ký hiệu vị từ (có n tham số) P: I(P): Dn {true,false}
Một biểu thức là thỏa mãn nếu và chỉ nếu tồn tại một phép biểu diễn
<D,I> sao cho I(), ký hiệu là I
Trang 7 Nếu I thì chúng ta nói rằng I là một mô hình (model) của Nóicách khác, I thỏa .
Một biểu thức là hợp lệ (valid) nếu và chỉ nếu mọi phép biểu diễn I đềuthỏa , ký hiệu là I
c Các lượng từ
Với mọi (): dùng để chỉ một câu là đúng với mọi giá trị của biến lượng giá
Tồn tại (): dùng để chỉ một câu là đúng với một số giá trị nào đó của biếnlượng giá
1.2 Mệnh đề Horn (Horn clause)
Trong logic toán học, mệnh đề Horn là mệnh đề mà chứa nhiều nhất một literalkhẳng định (positive literal) Trong đó: literal là một công thức nguyên tử (atomicformula) hoặc phủ định của nó (its negation) Mỗi mệnh đề Horn thuộc một trong 4trường hợp sau:
Luật (rule): một literal khẳng định và ít nhất một literal phủ định Một luật có dạng
Q P P
P k
1 2 , luật này tương đương logic với luật [P1 P2 P k] Q;
Ví dụ: parent (X,Y) ancestor (Y,Z) ancestor (X,Z)
a Sự kiện (fact): 1literal khẳng định và 0 literal phủ định
1.3 Phép thể hiện Herbrand
Trang 8Cho ngôn ngữ bậc nhất L, giả sử tập các hằng trong L là khác rỗng Đặt U là tậpcác hạng thức nền của L HB là tập các nguyên tố nền trong L.
U gọi là tập phổ dụng Herbrand (Herbrand Universe)
HB gọi là cơ sở Herbrand (Herbrand Base)
Mỗi hằng được gán bởi chính nó
Mỗi một ký hiệu hàm f n biến được gán bởi một ánh xạ fI :Un U như sau:
t1, ,tn U, fI(t1, ,tn) f(t1, ,tn)
Mỗi ký hiệu vị từ p n biến được gán bởi ánh xạ pI từ Un {true, false}
Ví dụ: Cho ngôn ngữ bậc nhất L bao gồm :
- Hằng a
- Ký hiệu hàm s
Trang 9Ta định nghĩa một phép thể hiện Hebrand của ngôn ngữ L nhaư sau :
Hằng a được gán bởi chính nó
Ký hiệu hàm s được gán bởi ánh xạ : sI : X s(X), XU
Ký hiệu vị từ p được gán bởi ánh xạ : pI : x true xU
Ký hiệu vị từ q được gán bởi ánh xạ : qI : (x,y,z) true nếu :
n(x) + n(y) = n(z)trong đó n(t) là số ký hiệu s có mặt trong hạng thức t
Nhận xét: Đối với mọi phép thể hiện Herbrand thì phép gán các hằng, các kýhiệu hàm là không thay đổi, chỉ khác là phép gán các ký hiệu vị từ Như vậy các phépthể hiện Herbrand chỉ khác nhau bởi giá trị chân lý của các nguyên tố nền
Trang 10Gọi I là tập tất cả các nguyên tố nền có giá trị chân lý là true trong cơ sở Herbrand Tậphợp I được gọi là phép thể hiện Herbrand.
Ví dụ: Cho ngôn ngữ bậc nhất L bao gồm :
q(X,Y) r(X,Z)p(Z,Y)U={a,b,c}
Trang 11(x,y) false (x,y) (a,b)
Ví dụ: Cho chương trình logic P :
p(X) q(X)q(X) p(X)
Cơ sở HB = { r(a), p(a), q(a)}
I1 = { r(a), p(a) } và I2 = { r(a), q(a) } là các mô hình cực tiểu
P không có mô hình nhỏ nhất
1.4 Cơ sở dữ liệu suy diễn (Deductive database)
1.4.1 Mô hình CSDL suy diễn
Mô hình dữ liệu gồm:
Kí pháp toán học để mô tả hình thức dữ liệu và các quan hệ
Kỹ thuật để xử lý dữ liệu như trả lời các câu hỏi, kiểm tra điều kiện toàn vẹn
Trang 12Ngôn ngữ bậc một được dùng như kí pháp toán học để mô tả dữ liệu trong môhình CSDL suy diễn và dữ liệu được xử lý trong các mô hình như vậy nhờ việc đánhgiá công thức logic Tiếp cận của logic bậc một như nền tảng lý thuyết của các hệthống CSDL suy diễn.
Tuy nhiên để dễ biểu diễn hình thức các khái niệm về CSDL suy diễn, người tathường dùng phép toán vị từ, tức logic vị từ bậc nhất Logic vị từ bậc nhất là ngôn ngữhình thức dùng để thể hiện các quan hệ giữa các đối tượng và để suy diễn ra quan hệmới
Định nghĩa 1: Mỗi một hằng số, một biến số hay một hàm số áp lên các term làmột hạng thức (term)
Hàm n ngôi f(x1,x2, ,xn); xi | i = 1,2, ,n là một hạng thức thì f(x1,x2,…,xn) làmột term
Định nghĩa 2: Công thức nguyên tố(công thức nhỏ nhất) là kết quả của việc ứngdụng một vị từ trên các tham số của term dưới dạng P(t1, t2,…, tn)
Nếu P là vị từ có n ngôi và ti | i=1,2, , n là một hạng thức(term)
Định nghĩa 3: (Literal) Dãy các công thức nguyên tố hay phủ định của công thứcnguyên tố đã được phân tách qua các liên kết logic (, , , , , , ) thì công thức
đó được thiết lập đúng đắn
Một công thức nguyên tố là công thức thiết lập đúng đắn
F, G là Công thức thiết lập đúng đắn => F G, F G, F G, F G, F,G cũng là các công thức thiết lập đúng đắn
Nếu F là Công thức thiết lập đúng đắn, mà x là một biến tự do trong F
=> (x)F và (x)F cũng là các công thức thiết lập đúng đắn ( x, xtrong F )
Trang 13Ví dụ 1: Cho quan hệ R(A1, A2,…, An) với n bậc ( tức n thuộc tính) => là một
vị từ n ngôi Nếu rR (r bộ của R) => (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhậngiá trị đúng
Nếu rR (r bộ của R) => gán (r.A1, r.A2,…, r.An ) => R(A1, A2, , An) nhận giátrị sai
Định nghĩa 4: Mệnh đề (Clause)
Công thức có dạng P1P2….Pn Q1Q2….Qn
Trong đó: Pi và Qj (i,j=1,2,…,n) là các Literal dương
Trong hệ thống logic, Literal dương có dạng nguyên tố, nhỏ nhất, trái với Literal
âm là phủ định của nguyên tố
Định nghĩa 5: Mệnh đề Horn (Horn clause)
là câu có dạng P1P2….Pn Q1
Định nghĩa 6: CSDL suy diễn tổng quát (General deductive database)
CSDL suy diễn tổng quát, hay CSDL tổng quát, hay CSDL suy diễn được xácđịnh như cặp (D,L), trong đó D là tập hữu hạn của các câu CSDL và L là ngôn ngữ bậcmột
Giả sử L có ít nhất hai ký hiệu, một là ký hiệu hằng số và một ký kiệu vị từ + Một CSDL xác định (hay CSDL chuẩn) là CSDL suy diễn(D,L) mà D chỉchứa các câu xác định(câu chuẩn)
+ Một CSDL quan hệ là CSDL suy diễn (D,L) mà D chỉ chứa các sự kiện xácđịnh
Trang 14Vậy CSDL quan hệ là một dạng đặc biệt của CSDL tổng quát, hay chuẩn, hayxác định Còn một CSDL xác định là dạng đặc biệt của CSDL chuẩn hay tổng quát.[1]
1.4.2 Nhìn nhận CSDL suy diễn
Ở đây chỉ nhìn nhận lý thuyết chứng minh áp dụng cho CSDL suy diễn Ngônngữ L của CSDL (D, L) được xây dựng chỉ bằng các kí hiệu xuất hiện trong D, vàngười ta có thể dùng bất kì ngữ nghĩa thủ tục nào trong ngữ cảnh của chương trìnhlogic như công cụ để tìm các câu trả lời bằng cách suy diễn từ lý thuyết chứng minh T,
lý thuyết T đảm bảo ngữ nghĩa của D nhất trí với ngữ nghĩa của T
Liên quan đến CSDL suy diễn, người ta đưa ra Comp(D) như là lý thuyết chứngminh của CSDL (D, L) và dùng cách giải SLDNF để tìm câu trả lời cho câu hỏi
Giả sử (D, L) là CSDL chuẩn Như trong trường hợp của CSDL quan hệ, quanđiểm lý thuyết chứng minh của D đạt được bằng cách xây dựng một lý thuyết T trongngôn ngữ L
Các tiên đề lý thuyết của T như sau:
1) Các tiên đề về đầy đủ: Tiên đề có được do hoàn thiện mỗi kí hiệu vị từ của
L, tương ứng với các câu trong D
2) Tiên đề về duy nhất của tên và về tính tương đương: các tiên đề về lýthuyết tương đương là tuỳ theo các kí hiệu hằng số, hàm số và vị từ của L
3) Tiên đề về bao đóng của miền: Nếu a1, a2,…, ap là tất cả những phần tửcủa L và f1, f2, ,fq là các kí hiệu hàm số của L, thì tiên đề về bao đóng của miền, theoLloyd năm 1987, Mancarella năm 1988 như sau:
x((x=a1) (x=ap) (x1, x2, , xm(x = f1(x1, x2, , xm))) … (y1, y2,….,
yn( x = fq(y1, Y2,…, yn))))
Trang 151.4.3 Các giao tác trên CSDL suy diễn
Định nghĩa 1: Giao tác (Transaction)
Một giao tác trong CSDL suy diễn là một một xâu hữu hạn của các phép toán, haycác hành động bổ sung, loại bỏ hay cập nhật các câu
Vì một CSDL suy diễn được xem như tập các câu, tức là theo quan điểm lý thuyết
mô hình, không một phép loại bỏ hay cập nhật nào được phép thực hiện trên sự kiện.Các sự kiện là ngầm có trong CSDL
1.4.4 Cấu trúc cơ bản
Một cơ sở dữ liệu suy diễn bao gồm CSDL ngoại diên EDB (ExtensionalDatabase), CSDL nội hàm IDB (Intensional Database) và một tập ràng buộc toàn vẹnIcs (Integrity constraints), trong đó:
EDB là một tập các sự kiện nền (ground fact) được lưu trữ trong CSDL quanhệ
IDB là một tập các vị từ (predicates) được định nghĩa bởi các mệnh đề Horn(Horn clauses) được gọi là các luật suy diễn
ICs là một tập các ràng buộc toàn vẹn, tương ứng với các điều kiện mà mỗitrạng thái của CSDL phải thoả mãn
1.5 Datalog - Ngôn ngữ luật cho Cơ sở dữ liệu suy diễn
Trang 161.5.1 Cú pháp của Datalog
Datalog là ngôn ngữ luật của CSDL suy diễn
Các sự kiện và các luật được biểu diễn như một mệnh đề Horn
Biến được bắt đầu bằng ký tự hoa, hằng được bắt đầu bằng ký tự thường
Một chương trình Datalog (P) phải thỏa mãn những điều kiện an toàn sau(safety conditions)
Mỗi sự kiện phải là nền (không chứa biến)
Mỗi biến xuất hiện trong phần head thì cũng phải xuất hiện trongbody của luật đó
Những điều kiện trên đảm bảo rằng tập tất cả các sự kiện có thể nhận được từchương trình Datalog là hữu hạn
Định nghĩa 1: Một luật trong Datalog là một biểu diễn bằng mệnh đề Horn
R1(u1) R2(u2), …, Rn(un)
Trong đó:
Các vị từ R1, …, Rn là các nguyên tố, n>=1
Mỗi biến xuất hiện trong u1 phải xuất hiện ít nhất trong u2, …, un
R1(u1) được gọi là head
R2(u2), …, Rn(un) được gọi là body
Một chương trình Datalog là một tập hữu hạn các luật Datalog Tập các hằngxuất hiện trong một chương trình Datalog P được ký hiệu adom (P) (active domain),với một thể hiện I chúng ta ký hiệu adom (P, I), được hiểu là adom (P) adom (I)
Định nghĩa 2: Giả sử P là một chương trình Datalog
Trang 17 Quan hệ ngoại diên (Extensional relation) là quan hệ chỉ xuất hiện trong phầnthân (body) của các luật
Quan hệ nội hàm (Intensional relation) là quan hệ xuất hiện trong phần đầu(head) của một số luật trong P
CSDL ngoại diên (Extensional Database schema), ký hiệu edb (P), chứa tất cảcác quan hệ ngoại diên
CSDL nội hàm (Intensional Database schema), ký hiệu idb (P), chứa tất cảcác quan hệ nội hàm
Schema of P, ký hiệu sch (P)
sch (P) = edb (P) idb (P)
Ví dụ: Cho quan hệ links (line, station, next station) như sau:
Trang 18Hình 1: Một thể hiện I của CSDL MetroChương trình Datalog để trả lời các câu hỏi đã đưa ra:
idb (P) = {reach, answer}
sch (P) = {links, reach, answer}
adom (P, I) = {4, 1, 9, Germain, Odeon, Michel
Chatelet, Louvres, Plais – Royal,Tuileries, Concorde, Pont – Serves
Billancourt, Michel – Ange, Inea, Roosevelt}
1.5.2 So sánh DATALOG với đại số quan hệ
Về mặt cơ bản ngôn ngữ Datalog với các câu hỏi không đệ quy được xem nhưtương đương với đại số quan hệ về khả năng thể hiện
Với các câu hỏi đệ quy cho phép người ta một công cụ mạnh hơn các ngôn ngữquan quan hệ Điều này ngôn ngữ Datalog cho phép hỏi các câu hỏi không được phéptrong đại số quan hệ
(1) Phép hợp : là tập các luật có cùng đầu luật
Trang 19Ví dụ 2:Tìm tên của các khách hàng tại chi nhánh “Hà Nội”, làm như sau:
Hỏi(Y) Vay(“Hà Nội”, X, Y, Z)
Hỏi(B) Gưi tiền(“Hà Nội”, A, B, C)
Chú ý: hai luật thể hiện phép hợp là tách biệt
(2) Phép chọn : ứng với một luật mà thân luật có một vị từ so sánh -> biểuthức chọn
Phép chọn chọn các n_bộ trong quan hệ r được viết dưới dạng câu hỏi: r(x1, x2,…, xn)?
Trong đó: xi (i=1, 2, ,n) là tên biến hay một hằng số
Ví dụ 1: Chamẹ(x,y) Chamẹ(x,y) , y= Dũng
điều này y = ‘Dũng’(Chamẹ(x,y)) ( phép chọn với điều kiện là y= ‘Dũng’)
Ví dụ 2: Chọn (tìm kiếm) tên của những khách hàng vay quá 1000?
Hỏi(Y) Vay(“Hà Nội”, X, Y, Z), Z >1000
(3) Phép chiếu : là phép toán ứng với một số luật mà có một số biến ở thânluật mà không xuất hiện trong đầu luật
Trang 20Hỏi(X1, X2,…,Xn, Y1, Y2, , Ym) r1(X1, X2,…,Xn), r2(Y1, Y2, , Ym)Trong đó: Xi, Yj | i=1,2, ,n và j=1,2, ,m là các tên biến phân biệt nhau.
Ví dụ 1: (r3) Ôngbà(x,y) Chamẹ(x,z) , Chamẹ(z,y)
(5) Khả năng đệ quy:
Ví dụ 1: như (r7)
(r4) Bố(x,y) (r7) : TổTiên(x,y) Chamẹ(x,z) , TổTiên(z,y)
Ví dụ 2: Giả sử có lược đồ quan hệ:
Quản lý(Tên nhân công, tên người quản lý)
Lược đồ thể hiện mối quan hệ người quản lý và nhân công
Giả sử “Quản lý” là một quan hệ theo mô hình trên
Tên nhân công Tên người quản lý
MỗHoaMaiLanChénTích
MễMỗMỗMỗHoaHoa
Yêu cầu:1) Tìm tên của những người làm việc trực tiếp dưới quyền của ông
Mỗ, tức phụ thuộc mức 1, viết như sau:
Hỏi(X) Quản lý(X, “Mỗ”)
2) Để tìm tên của những người làm việc trực tiếp dưới quyền của người do ông Mỗ quản lý, tức phục thuộc mức 2 vào ông Mỗ, Viết như sau:
Trang 21Hỏi(X) Quản lý(X, Y), Quản lý(Y, “Mỗ”)
Như vậy, người ta không thể thể hiện yêu cầu tìm người phụ thuộc bậc n vàoông Mỗ trong đại số quan hệ được Dĩ nhiên câu hỏi tìm tên của nhân công làm việcdưới quyền của ông Mỗ, trực tiếp hay gián tiếp, không thể tạo được bằng đại số quan
hệ hay bằng Datalog với các câu hỏi không đệ quy Nguyên nhân là do người ta khôngbiết ông Mỗ quản lý đến mức nào Tuy nhiên người có thể tạo câu hỏi này trongDatalog dưới dạng câu hỏi đệ quy như sau:
về tập hợp, như tính bằng nhau, bao nhau hay rỗng Trong câu Until các quan hệ suydiễn được coi như các tập Do vậy câu hỏi đệ quy trên có thể được viết lại như sau:
Trang 22- Tại mỗi lần lặp, mức tiếp theo của nhân công được tìm và được bổ sung vàotập e.
- Thủ tục này kết thúc khi tập e = e’ (Khi không còn nhân công mới có thể được
bổ sung vào e.) Mặt khác, do tập những người quản lý là hữu hạn
Cách thực hiện: Theo dõi chu trình với các dữ liệu trong bảng khi chạy
e’ = {Hoa, Lan, Mai}
e = {Hoa, Lan, Mai}
e’ = {Hoa, Lan, Mai, Chén, Tích}
e = {Hoa, Lan, Mai, Chén, Tích}
Cách 2: Ngoài cách làm như trên người ta có thể có cách làm khác mà vẫn đạtđược kết quả như trên:
b) Khác với câu hỏi không đệ quy, người ta có nhiều chiến lược đánh giá câuhỏi đệ quy như chiến lược đánh giá từ dưới – lên
Để đánh giá câu hỏi đệ quy e được gọi là đánh giá thô Tuy nó đơn giản nhữngkhông mấy hiệu qủa trong số các chiến lược dưới – lên Sự không hiệu quả là do khingười ta sử dụng luật đệ quy, tập e trước đó đã được sử dụng trong tính toán Để hiệu
Trang 23quả hơn, người ta dùng đánh giá nửa thô Dưới đây chỉ các nhân công vừa được bổsung trong lần lặp trước mới được luật xét đến.
1.5.3 Các hệ CSDL chuyên gia
Trang 24Qua phần trên, người ta thấy rằng các luật dựa trên logic có thể tích hợp đượcvào CSDL quan hệ Các luật như vậy bắt đầu từ các sự kiện trong các n_bộ của cácbảng quan hệ Các hệ chuyên gia dùng ý này để thực hiện hơn nữa các hoạt động cóđiều khiển.
Định nghĩa: Hệ thống CSDL chuyên gia(Expert Database System)
Một hệ thống CSDL chuyên gia bao gồm các luật có dạng “nếu có tập các n_bộ nào đótrong CSDL, thì một thủ tục đặc biệt được khai thác”
Thủ tục này có thể cập nhật CSDL; và câu lệnh IF của các luật khác có thể đúng
và thủ tục khác được thực hiện… Như vậy CSDL loại này gọi là CSDL năng động
Cấu trúc của hệ thống CSDL chuyên gia tương tự như cấu trúc của hệ chuyên giatrong trí tuệ nhân tạo Khác nhau chính giữa hai loại hình này là việc sử dụng CSDLhoặc sử dụng bộ nhớ trong, hay bộ nhớ ảo
Theo dạng chuẩn, một hệ thống CSDL chuyên gia gồm CSDL chuẩn và hệchuyên gia chuẩn Hệ chuyên gia hỏi bằng ngôn ngữ của CSDL, chẳng hạn như ngônngữ SQL và đợi trả lời từ phía CSDL
CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP ĐÁNH GIÁ VÀ XÁC ĐỊNH NGỮ
NGHĨA CHƯƠNG TRÌNH DATALOG
Có 3 tính chất quan trọng mà tất cả các phương pháp phải thỏa mãn:
Tính đúng đắn: Giả sử tồn tại một kết quả suy diễn từ EDB và IDB thì kết quả
Trang 252.1 Phương pháp ước lượng dưới lên (Bottom - up evaluation)
Phương pháp ước lượng dưới lên là đơn giản (còn được gọi là phương pháp ướclượng thô: Naive evaluation) Ý tưởng của phương pháp này là xuất phát từ những sựkiện cơ sở và lặp lại việc áp dụng các luật suy diễn cho tới khi không rút ra được sựkiện mới nào Khi đó, dựa vào các kết quả suy diễn chúng ta có các câu trả lời
Giải thuật này có ưu điểm tránh được trường hợp lặp vô hạn, nhưng phải tính toánrất nhiều kết quả trung gian không liên quan đến câu hỏi (không hướng đích: not goal-oriented)
Để giải quyết những hạn chế của phương pháp trên, người ta đưa ra phương phápước lượng nửa thô (Semi-naive evaluation method) Về ý tưởng thì giống phương phápước lượng thô nhưng khác ở chỗ phương pháp này loại trừ một số bước trung gian dưthừa tại mỗi vòng lặp Phương pháp này chỉ ước lượng những bộ được sinh ra tại mỗivòng lặp và được kết thúc khi không có bộ mới nào được sinh ra
Ví dụ: Chương trình "Reverse-Same-Generation" (rsg)
Chương trình Datalog với phương pháp ước lượng thô:
Trang 26level 2: {level 1} ∪ {(a, b), (h, f), (i, f), (j, f), (f, k)}
level 3: {level 2} ∪ {(a, c), (a, d)}
level 4: {level 3}
Chương trình Datalog với phương pháp ước lượng Nửa thô:
Δ1
rsg (X, Y) ← flat(X, Y)
Δi+1rsg (X, Y) ← up(X, X1), Δ1rsg (Y1, X1), down(Y1, Y)
2.2 Phương pháp ước lượng trên xuống (Top – down evaluation)
Để tránh việc phải tính toán nhiều kết quả trung gian không liên quan đến câuhỏi như ở phương pháp ước lượng bottom-up, phương pháp top-down sử dụng các kỹthuật heuristic, xuất phát từ câu hỏi và thử tìm các sánh hợp cho các biến để dẫn tới các
sự kiện đúng trong CSDL (nói cách khác đi từ đích mong muốn để xác định các sự kiệnthoả đích)
Trang 27Ưu điểm của giải thuật là hướng đích (goal-oriented), bỏ qua được nhiều tínhtoán không liên quan, nhưng các phép tính toán ở đây thực hiện một bộ tại 1 thời điểm(a-tuple-at-a-time), phép rút gọn từ goal sang subgoal chỉ chứa số lượng dữ liệu nhỏ vàthường không hiệu quả Phương pháp ước lượng Top-down cũng có thể lặp vô hạn
Cách tiếp cận chung nhất đối với hướng tiếp cận này là phương pháp Subquery (QSQ) Đây là phương pháp ước lượng trên-xuống (top-down) dựa vào suydiễn lùi (backward chaining) Ưu điểm của phương pháp này là xem các câu truy vấntại trạng thái đầu và cố gắng truy cập số lượng sự kiện nhỏ nhất để xác định câu trả lời
Query-Tại mỗi bước, phương pháp cần phải xây dựng 2 tập:
Tập Q, gồm các tập con đang xét
Tập quan hệ R, gồm các câu trả lời cho mục đích chính và trả lời nhữngsubqueries trung gian
Phương pháp này thực hiện 2 bước sau:
Sinh ra các câu trả lời mới trong tập R
Sinh ra subqueries mà có thể trả lời được câu hỏi trong tập Q
Hiện nay, có 2 hướng tiếp cận đối với giải thuật này:
Interative Query-Subquery (QSQI): Ưu tiên tạo ra các câu trả lời cho mụcđích chính Tức là khi một truy vấn mới xuất hiện nó sẽ bị tạm dừng chođến khi kết thúc các câu trả lời mà các câu trả lời này không yêu cầu sửdụng subquery mới
Recursive Query-Subquery(QSQR): Bất cứ nơi nào khi một truy vấn(query) mới được tìm thấy, nó là đệ quy mở rộng và trả lời cho cácsubqueries hiện tại thì truy vấn cũ được hoãn lại cho đến khi giải quyếthoàn toàn các subqueries mới
Phương pháp đánh giá SLD (SLD resolution )
( Selection rule – driven Linear resolution for Definite clauses)
Trang 28SLD là phương pháp định giá câu truy vấn theo kiểu trên xuống Phương phápnày thoả mãn tính chất đầy đủ, nghĩa là tất cả các câu trả lời đúng được biểu diễn trongcây SLD Cây 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 Quá trình định giá bắt đầu từ đíchtruy vấn và lặp lại các phép thay thế đối với thân quy tắc Quá trình định giá câu truyvấn sẽ thành công nếu tất cả các literal trong đích là được tìm ra, có nghĩa khi đích lànút kết thúc Một điều đáng tiếc đối với phương pháp này là nó không hiệu quả, việctính toán trên cây SLD có thể kéo dài vô hạn
Ví dụ: Xét chương trình Datalog P sau đây:
Trang 29Cây SLD đối với câu truy vấn p(1, Y)
2.3 Phương pháp ma tập (Magic set method)
Phương pháp ma tập (Magic sets) là phương pháp viết lại hay phương pháp tối ưu(logical rewriting method or optimization method) Cơ sở của phương pháp ma tập làviết lại các luật của CSDL suy diễn ban đầu thành một CSDL suy diễn tương đương cótính tới cả câu hỏi Q
Thuật toán này kết hợp ưu điểm của hai phương pháp ước lượng bottom-up vàtop-down, từ đó giảm thiểu được số các bộ cần tính toán và tìm kiếm trên CSDL
Trang 30Cùng với phương pháp định giá bảng, phương pháp ma tập (magic set) cũng làphương pháp hiệu quả để định giá câu truy vấn trên chương trình Datalog Sau đây làmột số khái niệm chính của phương pháp ma tập.
2.3.1 Tô điểm
Tô điểm (adornment) 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
Định nghĩa :
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.
Một tô điểm đối với vị từ p(t1,t2, ,tk) là một ánh xạ :{1,2, ,k} {b, f}.
Ta thường ký hiệu tô điểm là (1)(2) (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.
Cho quy tắc p q1 q2 qn và là tô điểm của vị từ p, tô điểm i của cácđích con q i (t i,1, ,t i,n i ) được xác định như sau: Nếu t i,j là hằng hoặc biến đã
xuất hiện trong đích con q k trước đó (k < i) hoặc 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)
Cho chương trình P, chương trình tô điểm của P, ký hiệu là P ad, gồm các
quy tắc trong P đã được tô điểm
Tô điểm của câu truy vấn p(t1, ,t n ) được xác định bởi: [i] = b nếu t i là
hằng và [i] = f nếu ngược lại
2.3.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