Tải bản đầy đủ (.doc) (10 trang)

Tiểu luận môn datalog bản hoàn chỉnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (238.31 KB, 10 trang )

ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN

Tiểu luận môn: Chương trình DATALOG

Đề tài:
TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP TỐI
ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG
TRÌNH DATALOG
Giảng viên hướng dẫn: PGS.TS. LÊ MẠNH THẠNH
Học viên thực hiện: Nguyễn Văn Tường
Lớp: Cao học KHMT-2011
Huế, 2- 2013
MỤC LỤC
MỞ ĐẦU 3
I. Định giá câu truy vấn theo kiểu trên xuống (top-down) 3
II. Định giá truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ 4
2.1 Định giá SLD (Selective Linear resolution for Definite clauses) 4
2.2 Định giá bảng (tabled evaluation) 4
III. Định giá câu truy vấn theo kiểu dưới lên (bottom-up) 6
3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên 6
3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh 7
IV. Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên 8
V. Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập 9
Tài liệu tham khảo 10
MỞ ĐẦU
Tối ưu hóa truy vấn là một trong những lĩnh vực quan trọng của cơ sở dữ liệu
suy diễn. Về vấn đề này, đã có nhiều công trình nghiên cứu với nhiều cách thức sử
dụng khác nhau. Trong đó, nhìn chung có ba hướng tiếp cận khác nhau để định giá
câu truy vấn trong CSDL suy diễn: tiếp cận trên xuống, tiếp cận dưới lên và tiếp


cận có sự kết hợp của hai phương pháp trên xuống và dưới lên. Trong tiểu luận
này, em tìm hiểu tổng quan về mỗi hướng tiếp cận, đồng thời thảo luận chi tiết
các kiểu tiếp cận, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận trên.
I. Định giá câu truy vấn theo kiểu trên xuống (top-down)
Cách tiếp cậ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ể dkn tới đích.
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 Datalog P.
2. Chọn một đích A
i
từ đích truy vấn A
1
∧ A
2
∧ … ∧ A
i
∧ … ∧ A
n
. Việc
chọn
đích A
i
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à A
i
. 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ế θ
(A
1
∧ A
2
∧ … ∧ A
i
∧ B
1
∧ B
2
∧ … ∧ B
m
∧ A
i+1
∧… ∧ A
n
) θ
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 nhận đượ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à
các đí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.
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 T
hể
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ể dkn
đế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.
II. Đị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ớ. Phương pháp
ước lượng bảng sẽ ngăn chặn các vòng lặp vô hạn và đảm bảo việc định giá
truy
vấn sẽ kết thúc đối với chương trình Datalog, chi tiết hơn có thể xem trong [3].
Phần này tập trung phân tích và so sánh hai phương pháp nhằm ngăn chặn
các vòng lặp vô hạn trong quá trình định giá câu truy vấn đối với các chương
trình Datalog.
2.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.
2.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 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.
Định nghĩa 2.1 (Hệ thống SLG)
Một hệ thống SLG là một rừng cây SLG được xây dựng như sau:
• Nút gốc của cây SLG có dạng: q ← q, trong đó q là một đích con. Nút gốc

được gọi là đầy đủ khi cây tương ứng với nó là được ước lượng đầy đủ (xem Định
nghĩa 2.6)
• Các nút không phải là nút gốc có một trong hai dạng:
- Nút thất bại (ký hiệu fail) được thêm vào như một nút lá của các
nhánh
thất bại, hoặc:
-Nút có dạng: Answer_Template ← Goal_List, trong đó
Answer_Template là một nguyên tố biểu diễn các sự kiện của các đích con
được xếp vào bảng trong quá trình định giá, Goal_List chứa danh sách các
nguyên tố vkn còn phải hợp giải. Giả thiết quá trình tính toán trên các qui tắc
được thực hiện từ trái sang phải, các nguyên tố được chọn của một nút là
nguyên tố bên trái nhất trong Goal_List.
• Một nút lá trong cây SLG được gọi là một nút trả lời nếu Goal_List của nó
là rỗng.
• Trong hệ thống SLG không có hai cây cùng nút gốc, nghĩa là các đích con
tương ứng của chúng không thể là các biến thể đổi tên lkn nhau.
Định nghĩa 2.2 (Định giá SLG)
Giả sử P là chương trình Datalog, định giá SLG đối với đích truy vấn root là
một dãy các rừng cây F
0
, F
1
, , F
n
, sao cho:
- F
0
là rừng chứa một cây đơn root ← root
- Với mỗi i ≥ 0 hữu hạn, F
i+1

nhận được từ F
i
bằng cách áp dụng một
trong các phép toán SLG (định nghĩa 2.5).
Nếu không có phép toán nào được áp dụng vào F
n
thì F
n
được gọi là hệ
thống cuối cùng của định giá SLG.
Định nghĩa 2.3 (Các phép toán SLG)
(i) Đích con mới: Giả sử N là nút không phải nút gốc:
Answer_Template ← S ∧ Goal_List
trong đó đích con S được xếp vào bảng. Nếu S là đích con mới đối với
việc định giá thì thêm một cây mới với gốc là S ← S.
(ii) Hợp giải quy tắc:
- Với N là một nút gốc S ← S và R là quy tắc Head ← Body, trong đó
Head hợp nhất với đích con S với mgu là θ. Thêm (S ← Body)θ là một nút
con của nút N nếu nó là nút mới .
- Với nút N : Answer_Template ← S ∧ Goal_List không phải là nút
gốc, đích con S không xếp vào bảng, R là quy tắc Head ← Body, trong
đó Head hợp nhất với đích con S với mgu là θ. Thêm (Answer_Template ←
Body ∧ goal_list)θ là nút con của nút N.
(iii) Hợp giải câu trả lời: Giả sử N không phải nút gốc mà đích con S
được chọn của nó là được xếp vào bảng và Ans là một nút trả lời. Gọi N' là
hợp nhất của N và Ans trên S. Lúc đó nếu N' không phải là con của N thì thêm
N' như là nút con của N.
(iv) Kết thúc: Cho trước một tập S các đích con được ước lượng đầy đủ
(xem định nghĩa 2.4), các nút gốc của các cây ứng với các đích con trong S
gọi là nút đầy đủ.

Định nghĩa 2.4 (Định giá đầy đủ)
Cho F là hệ thống SLG, một tập S các đích con của F gọi là được định giá
đầy đủ nếu mọi đích con q ∈ S, có ít nhất một trong các điều kiện sau đây được
thỏa mãn:
(i) q có một nút trả lời là một biến thể của q, hoặc
(ii) Đối với mỗi nút N trong cây có gốc là q,
- Đích con được chọn SL của N là đầy đủ, hoặc
- SL ∈ S và không còn áp dụng được các phép toán SLG đối với SL.
Định lý 2.1 [15] Giả sử Q là câu truy vấn đối với chương trình Datalog P.
Lúc đó phép định giá SLG sẽ đạt đến một hệ thống cuối cùng F
n
mà trong đó một
nguyên tố nền A thuộc vào I(F
n
) nếu và chỉ nếu nó thuộc vào MP
P/S
, trong
đó MP
P/S
là mô hình cực tiểu của P được giới hạn đối với tập các đích con S trong
F.
III. Định giá câu truy vấn theo kiểu dưới lên (bottom-up)
Cách tiếp cậ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. Kết thúc quá trình tính toán ta nhận được mô hình nhỏ
nhất của chương trình Datalog.
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.
Thuật toán đối sánh hạng thức (Term match)
Vào: Một công thức nguyên tố F với các biến X
1
, …, X
n
(n≥1) và một
nguyên tố cơ sở G.
Ra: 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 X
1
, …, X
n
sao cho với mọi i, khi thay X
i
trong F bởi τ(X
i
)
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, τ(X
i
) 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
i
) 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.
3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên
Từ định lý 1.2 và phép toán đối sánh, 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 Datalog.
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 ← A
1
∧ A
2
∧ … ∧ A

n
trong P, sử dụng phép đối
sánh hạng thức, tìm một phép thế θ sao cho A
i
θ, …, A
n
θ ∈ 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 sang
bước 4.
4. Câu trả lời đối với truy vấn là tập các sự kiện của vị từ answer trong M.
Phương pháp dưới lên có ưu điểm là quá trình định gía câu truy vấn
đảm bảo kết thúc.
Phương pháp dưới lên có nhược điểm là không 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, vì vậy sẽ dkn xuất
nhiều sự
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 lkn 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
3.2 Thuật toán định giá chương trình Datalog theo các thành
phần liên thông mạnh
Các thuật toán ngây thơ hoặc nửa ngây thơ thường được sử dụng để xác định
mô hình nhỏ nhất của chương trình Datalog. Việc tính toán theo cách này có
nhược điểm là phải xem xét đến tất cả các quy tắc trong chương trình ở mỗi bước

lặp. Chúng ta có thể cải tiến bằng cách phân rã quá trình tính toán thành một dãy
các tính toán nhỏ hơn, trong đó việc tính toán được thực hiện theo từng mức của
chương trình. Việc phân nhỏ tính toán theo các mức có những thuận lợi sau đây:
• Có ít quy tắc được tính toán ở mỗi bước lặp.
• Không phải tất cả các nguyên tố trong thân quy tắc đều phải tính
trên mỗi bước lặp.
• Các chương trình Datalog con trong mỗi mức có thể có những
tính
chất đặc biệt nào đó, chẳng hạn chương trình tuyến tính. Trong trường
hợp đó việc định giá chương trình sẽ đơn giản hơn nhiều.
Định nghĩa 3.1 Gọi DG(P) = (V, E) là đồ thị phụ thuộc của chương
trình
Datalog P.
(i) Thành phần liên thông mạnh (SCC - Strongly Connected Component )
của đồ thị phụ thuộc DG(P) = (V, E) là tập lớn nhất C ⊆ V sao cho với mỗi
cặp đỉnh u, v ∈ C có một đường đi từ u tới v và ngược lại. Có hai kiểu SCC:
- SCC tầm thường là SCC mà tập các cạnh của nó là rỗng. SCC
tầm thường chỉ có một nút. Các SCC tầm thường tương ứng với các vị
từ không đệ qui trong chương trình.
- SCC không tầm thường là SCC mà tập các cạnh của nó khác rỗng.
(ii) Đồ thị phụ thuộc thu gọn của chương trình Datalog P là một đồ thị có
hướng G’= (V’, E’), trong đó tập đỉnh V’ chính là tập các thành phần liên
thông mạnh {S
1
, S
2
, …, S
k
} của G. Tập cạnh E’={(S
i

, S
j
)| i ≠ j và ∃p∈ S
i
, ∃q ∈
Sj
: (p, q) ∈ E}.
Rõ ràng đồ thị phụ thuộc thu gọn G' là một đồ thị có hướng phi chu trình.
Định nghĩa 3.2 Một sắp xếp tuyến tính trên đồ thị phụ thuộc thu gọn G’ là
một sự chỉ định thứ tự các đỉnh của G’ sao cho nếu có một cạnh từ đỉnh i đến đỉnh
j của G’ thi i<j.
Định nghĩa 3.3 (Đánh số hiệu của mức cho các đỉnh của đồ thị phụ thuộc thu
gọn) Mỗi đỉnh của đồ thị phụ thuộc thu gọn G' = (V', E') được gán một số hiệu
của mức, các vị từ EDB thuộc mức 0, một đỉnh S
i
được gọi là có mức thấp hơn
đỉnh S
j
nếu có một đường đi từ S
i
đến S
j
trong G', các vị từ trong cùng một đỉnh
được gán bởi số hiệu mức của đỉnh đó.
Thuật toán 3.1
Vào: Chương trình Datalog P, DB là CSDL EDB đã cho. Ra: Mô hình nhỏ
nhất của P
Phương pháp: Thực hiện theo các bước sau:
1. Xây dựng các thành phần liên thông mạnh của chương trình Datalog P
và sắp chúng theo một thứ tự tuyến tính.

2. Gọi S
1
, , S
k
là các đỉnh của đồ thị phụ thuộc thu gọn của P, thực hiện
việc đánh số hiệu mức cho các đỉnh S
i
, i = 1, , k.
3. Gọi P
i
là tập các quy tắc trong P định nghĩa các vị từ thuộc mức i. Quá
trình tính toán được thực hiện theo mỗi mức. Dữ liệu vào của mỗi mức là
lời
giải của chương trình ở mức trước đó. Gọi
EVAL (DB )
là lời giải
việc định
giá chương trình P
i
theo thuật toán nửa ngây thơ với CSDL EDB là DB đã cho.
Bước 3 được viết theo ngôn ngữ tựa Pascal như sau:
I := Φ;
for i := 1 to h do /* h là số mức của chương trình */
I := EVAL
Pi
(DB∪I);
output I;
Định lý 3.2 Thuật toán trên là đúng đắn và có độ phức tạp tính toán với
thời gian đa thức.
IV. Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên

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). 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. Lý do quan trọng đối với sự thành công của các phương pháp
này là sự 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, từ đó giảm thiểu được số các sự kiện cần
tính và tìm kiếm CSDL. Trong [9] tác giả đã áp dụng hai phương pháp này để xử
lý vòng lặp vô hạn trong quá trình định giá câu truy vấn trên chương trình
Datalog.
Phương pháp ma tập biến đổi chương trình Datalog P thành một
chương
trình được gọi là chương trình magic. Chương trình magic tương
đương với
chương trình P(theo nghĩa cho cùng kết quả câu truy vấn) nhưng việc định giá
trên chương trình magic này sẽ hiệu quả hơn so với việc định giá câu truy vấn trên
chương trình ban đầu.
Quá trình biến đổi chương trình P theo phương pháp ma tập bao gồm hai giai
đoạn:
Giai đoạn 1: 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 P
ad
) theo một chiến lược truyền thông tin sang ngang được 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.
Giai đoạn 2: Một chương trình được tạo ra từ chương trình P
ad
, được gọi là

chương trình magic. Giai đoạn hai bao gồm các công việc sau:
1. Khởi tạo sự kiện magic, sự kiện này chứa các hằng trong truy vấn.
2. Xây dựng vị từ magic, đối với mỗi vị từ IDB p, vị từ mag_p chính là vị từ
nhận được từ p bằng cách chiếu lên các đối buộc của nó. Các vị từ magic giới hạn
giá trị của các đối trong các vị từ để hạn chế việc tính các sự kiện không liên quan
đến câu truy vấn.
3. Xây dựng các quy tắc định nghĩa vị từ magic.
4.Xây dựng các quy tắc sửa đổi từ các quy tắc trong P
ad
bằng cách chèn vị từ
magic vào trước thân các quy tắc của chương trình P
ad
.
V. Một số nhận xét so sánh về các phương pháp định giá bảng
và ma tập
• Các lời gọi trong phương pháp định giá SLD được biểu diễn bởi các vị
từ magic trong phương pháp ma tập. Mặt khác, ở bước 3 của phép biến đổi ma
tập, đầu quy tắc magic có cùng tô điểm như các vị từ magic được thêm vào quy
tắc. Vì vậy các tô điểm trong vị từ magic biểu diễn các đối buộc và các đối tự
do của một lời gọi.
• Cả hai phương pháp định giá bảng và ma tập thực chất thực hiện cùng
một sự tính toán và đều là các thuật toán hướng đích. Sự khác nhau cơ bản trong
việc thực hiện của cả hai cách tiếp cận này là về mặt cấu trúc dữ liệu.
Phương pháp định giá bảng duy trì một cây stack của phép tính sao cho các
câu
trả lời được trả về trực tiếp đối với các phép tính toán. Với phương
pháp định
giá ma tập, các câu trả lời được đưa ra bằng cách thực hiện phép toán nối. Mặc dù
chiến lược định giá bảng được xem là thuộc cách tiếp cận trên xuống và phép biến
đổi ma tập được xem là dưới lên, nhưng điều đáng ghi nhận là định giá bảng trình

bày một thành phần dưới lên trong khi phép biến đổi ma tập trình bày một thành
phần trên xuống trong các chiến lược chung của chúng. Một điểm bất lợi của hai
phương pháp định giá bảng và ma tập là quá trình tìm câu trả lời truy vấn không
tách rời được không gian tìm kiếm ra khỏi chiến lược tìm kiếm.
• Phương pháp ma tập loại bỏ một nét đặc trưng của phương pháp định
giá bảng, đó là chia s‘ câu trả lời giữa các lời gọi giống nhau.
Tài liệu tham khảo
[1] Lê Mạnh Thạnh – Trương Công Tuấn, Giáo trình Chương trình Datalog,
Nhà xuất bản đại học Huế, 2011
[2] Vũ Hồng Sơn, Datalog và cơ sở dữ liệu suy diễn, Tóm lược luận văn thạc
sỹ khoa học, 2010
[3] Lê Mạnh Thạnh – Trương Công Tuấn, Thuật toán ma tập cải tiến để ước
lượng câu truy vấn đối với lớp con của chương trình Datalog, Chuyên san Đại học
Huế số 811

×