Trong [1] và [2], Ángel Mora và các cộng sự đã thiết kế một phép biến đổi tiền xử lý sử dụng toán tử thay thế của logic thay thế SLFD để loại bỏ dư thừa trong tập phụ thuộc hàm ban đầu[r]
(1)VỀ MỘT PHÉP BIẾN ĐỔI TIỀN XỬ LÝ HIỆU QUẢ CÁC TẬP PHỤ THUỘC HÀM
Vũ Quốc Tuấn1*, Hồ Thuần2
Tóm tắt: Trong [1] [2], Ángel Mora cộng thiết kế phép biến
đổi tiền xử lý sử dụng toán tử thay logic thay SLFD để loại bỏ dư thừa
trong tập phụ thuộc hàm ban đầu nhằm thu tập phụ thuộc hàm tương đương với kích thước nhỏ thời gian đa thức Cơ sở tính đắn phép biến đổi tiền xử lý chứng minh Định lý [1] Trong báo này, lỗi sai không chấp nhận chứng minh của Định lý đưa chứng minh đơn giản cho định lý Một số nhận xét phép biến đổi tiền xử lý đưa
Từ khóa: Cơ sở liệu quan hệ, Lược đồ quan hệ, Phụ thuộc hàm, Phép biến đổi tiền xử lý
1 MỞ ĐẦU
Trong [1] [2], Ángel Mora cộng thiết kế phép biến đổi tiền xử lý sử dụng toán tử thay logic thay SLFD để loại bỏ dư thừa tập phụ thuộc hàm ban đầu nhằm thu tập phụ thuộc hàm tương đương với kích thước nhỏ thời gian đa thức Cơ sở tính đắn phép biến đổi tiền xử lý chứng minh định lý [1] Trong báo này, lỗi sai không chấp nhận chứng minh Định lý đưa chứng minh đơn giản cho định lý Một số nhận xét phép biến đổi tiền xử lý đưa
Bài báo tổ chức sau: phần thứ hai nhắc lại số khái niệm kết quan trọng mô hình quan hệ, giới thiệu logic Paredaens dựa vào cách trình bày [2] Trong phần nhắc lại định nghĩa tập F phụ thuộc hàm có dư thừa, phát biểu lại Định lý [1] chỗ sai chứng minh định lý Chứng minh Định lý cho phần thứ ba với số nhận xét Trong phần thứ ba giới thiệu thủ tục removeRedundancy trình bày [2] với vài cải tiến số ví dụ ứng dụng Kết luận giới thiệu phần thứ tư
2 MƠ HÌNH QUAN HỆ VÀ LOGIC PAREDAENS 2.1 Mơ hình quan hệ
Trong mơ hình quan hệ E.F.Codd, liệu lưu trữ dạng quan hệ (các bảng) Mỗi quan hệ định nghĩa tập hữu hạn thuộc tính = {A1, A2, , An}, thuộc tính Ai lấy giá trị miền tương ứng
Dom(Ai) Như vậy, quan hệ R xác định tập tích Descartes
Dom(A1) Dom(A2) Dom(An) Nói cách khác, R tập t có dạng t = (a1,
a2, ,an) Dom(Ai) với i = 1, 2, , n
Cho X , t R Khi đó, hình chiếu t X, ký hiệu t[X] cho t[X](ai) =
t(ai), Dom(Ai) với Ai X
Định nghĩa (Phụ thuộc hàm) Cho R quan hệ Mọi khẳng định có dạng
XY , đó, X, Y gọi phụ thuộc hàm R Ta nói R thỏa XY
với t1, t2 R có t1[X] = t2[X] kéo theo t1[Y] = t2[Y] Ký hiệu FDR tập sau:
FDR = {XY | X, Y , R thỏa XY}
(2)Cho R quan hệ , đó: 1 Nếu Y X XY FDR 2 Nếu XY FDR XXY FDR 3 Nếu XY, Y Z FDR X Z FDR 4 Nếu XY, X Z FDR X YZ FDR 5 Nếu XY FDR XY X FDR
6 Nếu XY FDR, X U V XY UV FDR
7 Nếu XY, X' Z FDR, X' XY, X U A V ZU UV FDR
2.2 Logic Paredaens
Logic Paredaens gọi LPar cho phép đặc tả hình thức thao tác phụ thuộc
hàm
Định nghĩa (Ngôn ngữ Par) Cho tập vô hạn đếm nguyên tử (atoms)
liên kết nhị phân (binary connective), ta định nghĩa ngôn ngữ:
Par = {XY | X, Y 2 X }
Bây giờ, hệ tiên đề SPar đưa vào sau:
Định nghĩa LPar logic cho cặp (Par, SPar) SPar lược đồ tiên
đề AxPar: | Par S
XY Y X quy tắc suy diễn sau: (Kí hiệu F |
Par S
F’ nghĩa tập phụ thuộc hàm F’ suy diễn logic từ tập phụ thuộc hàm F theo hệ tiên đề SPar)
Trans XY, Y Z | Par S
XZ (quy tắc bắc cầu) Augm XY |
Par S
XXY (quy tắc gia tăng)
Trong SPar ta có quy tắc suy diễn sau:
Union XY, X Z | Par S
XYZ (quy tắc hợp)
Comp XY, W Z | Par S
XWYZ (quy tắc hợp thành)
Inters XY, X Z | Par S
XY Z Y Z (quy tắc giao) Reduc XY |
Par S
XY Z Y Z (quy tắc rút gọn) Frag XYZ |
Par S
XY (quy tắc phân mảnh)
gAug XY | Par S
UV X U V XY (quy tắc gia tăng suy rộng)
gTrans XY, Z U | Par S
VW Z XY, X V W UV (quy tắc bắc cầu suy rộng)
(3)Nhận xét Dễ thấy logic Paredaens logic khác cho phụ thuộc hàm ([3] [4], [5], [6]) có cấu trúc cú pháp, ngữ nghĩa hệ tiên đề chúng tương đương
Nhận xét Để đơn giản thao tác với phụ thuộc hàm suy diễn phụ thuộc hàm từ tập phụ thuộc hàm cho trước, ta sử dụng hệ tiên đề tương đương với hệ tiên đề Armstrong làm [7] bao gồm tiên đề sau với
X, Y, Z tập :
A1 Nếu Y X XY (quy tắc phản xạ)
A2 Nếu XY XZYZ (quy tắc gia tăng)
A3 Nếu XY Y Z XZ (quy tắc bắc cầu)
với việc ngầm hiểu quy tắc suy diễn khác quy tắc suy diễn dễ dàng suy từ hệ tiên đề Armstrong với ba tiên đề A1, A2, A3
Trong phần đây, ta hình thức hóa khái niệm dư thừa liên quan tới tập F phụ thuộc hàm cho trước
Định nghĩa Cho F Par f = XY F
Ta nói f dư thừa (khơng cần thiết) F F \{ f } |
Par S
f
Ta nói f l-dư thừa F tồn Z , Z X cho (F \{ f }) {(X Z)Y} |
Par S
f
Ta nói f r-dư thừa F tồn U , U Y cho (F \{ f }) { X(Y U)} |
Par S
f
Ta nói F có dư thừa có chứa phần tử dư thừa l-dư thừa là r-dư thứa F
Sau đây, không giảm tổng quát, ta xét tập phụ thuộc hàm F, đó, phụ thuộc hàm thuộc F có vế trái vế phải rời nhau, có nghĩa với phụ thuộc hàm
XY F ta có X Y =
Một tập phụ thuộc hàm có tính chất gọi tập phụ thuộc hàm thu gọn (reduced functional dependencies set)
Trong [1] có phát biểu chứng minh định lý sau:
Định lý (Định lý [1] Định lý [2])
Cho XY, UV LFD với X Y =
(a) Nếu X U {XY, UV}
Par S
{XY, (U Y)(V Y)} (1) Do đó, U Y hay V Y = UV theo thứ tự l-dư thừa hay r-dư thừa trong {XY, UV}
(b) Nếu X U X UV {XY, UV}
Par S
(4)(Kí hiệu F Par S
F’ nghĩa tập phụ thuộc hàm F’ tương đương với tập phụ thuộc hàm F theo hệ tiên đề SPar, từ F suy F’ ngược lại)
Chứng minh Định lý (là Định lý [1]) trình bày lại đầy đủ sau:
Chứng minh
(a)
1 XY (giả thiết)
2 (U Y)Y (1, gia tăng suy rộng) 3 (U Y)(U Y) AxFD (tiên đề phản xạ)
4 (U Y)UY (2, 3, quy tắc hợp) 5 (U Y)U (4, gia tăng suy rộng) 6 U V (giả thiết)
7 (U Y)V (5, 6, bắc cầu suy rộng) 8 (U Y)(V Y) (7, gia tăng suy rộng) (a)
1 U X AxFD (tiên đề phản xạ)
2 XY (giả thiết) 3 U Y (1, 2, bắc cầu suy rộng) 4 (U Y)(V Y) (giả thiết)
5 U VY (3, 4, quy tắc hợp) 6 U V (2, 5, gia tăng suy rộng) (b)
1 U V (giả thiết)
2 U (V Y) (1, gia tăng suy rộng) (b)
1 U X AxFD (tiên đề phản xạ)
2 XY (giả thiết) 3 U Y (1, 2, bắc cầu suy rộng) 4 U (V Y) (giả thiết)
5 U VY (3, 4, quy tắc hợp) 6 U V (2, 5, gia tăng suy rộng)
Cái hay Định lý cho phép đưa vào hai quy tắc thay quan trọng ký hiệu theo thứ tự Subst rSubst
Subst XY, UV | Par S
(U Y) (V Y) X U, X Y = rSubst XY, UV |
Par S
U (V Y) X U, X UV, X Y =
Rõ ràng khơng có hệ tiên đề cho phụ thuộc hàm có quy tắc thay nói trên, có khả phát loại bỏ dư thừa tập phụ thuộc hàm cách hiệu
Dưới số nhận xét phần chứng minh Định lý nêu
Nhận xét Trong chứng minh chiều , phần (a) Định lý 1, dòng viết lại
5 U VY (3, 4, Quy tắc hợp)
(5)6 U V (5, Quy tắc gia tăng suy rộng)
Nhận xét Trong chứng minh chiều , phần (b) Định lý 1, ta xem dòng 1 U X AxFD (tiên đề phản xạ)
Khẳng định rõ ràng sai phát biểu phần (b) Định lý 1, ta có giả thiết X U, X UV, X Y =
Do đó, chiều {XY, U(V Y)} |
Par S
{X Y, U V} với giả thiết nêu chưa chứng minh
3 MỘT CHỨNG MINH MỚI CHO ĐỊNH LÝ
Để đơn giản cách chứng minh Định lý 1, ta sử dụng hệ ba tiên đề tương đương với hệ tiên đề Armstrong với X, Y, Z , đó, vũ trụ thuộc tính
A1 Nếu Y X X Y (Tiên đề phản xạ)
A2 Nếu X Y XZ YZ (Tiên đề gia tăng)
A3 Nếu X Y Y Z X Z (Tiên đề bắc cầu)
cùng với quy tắc suy diễn quen thuộc, dễ dàng suy từ hệ ba tiên đề A1, A2, A3
như:
Nếu X Y U V XU YV (Quy tắc hợp)
Nếu X Y X Z với Z Y (Quy tắc tách hay phân mảnh) Sau chứng minh cho Định lý
Trước hết, Định lý phát biểu lại sau: (a) Nếu X U , X Y = hai tập phụ thuộc hàm
{XY, UV} {X Y, (U Y) (V Y)}
trong đó, tương đương theo nghĩa sử dụng hệ quy tắc suy diễn Armstrong, hệ phụ thuộc hàm thứ suy hệ phụ thuộc hàm thứ hai ngược lại
(b) Nếu X U, X UV
{XY, UV} {X Y, U (V Y}
Chứng minh
(a)
Vì X U nên X Y U Y Vì X Y = nên X Y = X U Y Từ ta có dãy suy diễn sau:
1 (U Y) X (A1)
2 XY (Giả thiết) 3 (U Y) Y (1, 2, A3)
4 (U Y) (U Y) (A1)
5 (U Y) UY (3, 4, Quy tắc hợp) 6 (U Y) U (5, Quy tắc tách) 7 U V (Giả thiết) 8 (U Y) V (6, 7, A3)
9 (U Y) (V Y) (8, Quy tắc tách (V Y) V) (a)
(6)2 (U Y) (V Y) (Giả thiết)
3 U X (A1, X U)
4 U Y (3, 1, A3)
5 U VY (2, 4, Quy tắc hợp) 6 U V (5, Quy tắc tách) (b)
1 U V (Giả thiết) 2 U (V Y) (1, Quy tắc tách) (b)
1 XY (Giả thiết) 2 U (V Y) (Giả thiết) 3 U U(V Y) (2, A2)
4 U(V Y) (UV Y) (A1)
do có U (V Y) (U Y) (V Y) (U Y) (V Y) = UV Y 5 U (UV Y) (3, 4, A3)
6 (UV Y) X (A1)
do có X UV X Y = nên X = (X Y) UV Y 7 (UV Y) Y (6, 1, A3)
8 U Y (5, 7, A3)
9 U UVY (5, 8, A2)
10 U V (9, Quy tắc tách)
Nhận xét Trong chứng minh Định lý 1, việc chứng minh phần (a) giống với chứng minh phần (a) [1] Cái khác chỗ cách thức giải thích bước suy diễn Trong [1], tác giả dùng tiên đề quy tắc suy diễn logic Paredaens, chứng minh mới, sử dụng hệ tiên đề quen thuộc Armstrong, nên việc giải thích bước suy diễn đơn giản, rõ ràng
Để khắc phục lỗi sai chứng minh phần (b) Định lý [1], chứng minh phần (b) chúng tơi hồn tồn Nó khiến cho Định lý [1], Định lý hay, tảng cho phép biến đổi tiền xử lý loại bỏ hiệu dư thừa tập phụ thuộc hàm cho trước, đứng vững sử dụng
Nhận xét Trong thực hành, nhiều trường hợp, để đơn giản hơn, ta dùng quy tắc thay sau:
Cho hệ hai phụ thuộc hàm {XY, UV} Nếu X U, X V X Y = thì, tương đương, thay {XY, UV} hệ hai phụ thuộc hàm {XY, U(V
Y)} nói chung đơn giản Nói cách khác, X U, X V X Y =
{X Y, U V} {X Y, U (V Y)} (3)
Điều hiển nhiên X U, X V X Y = đương nhiên X U,
X UV X Y = ta rơi vào trường hợp (b) Định lý
Nhận xét Trên sở phép thay (1), (2), (3), ta làm đơn giản thủ tục
removeRedundancy [1] thủ tục Loại bỏ dư thừa cho tập phụ thuộc hàm F
ở dạng thu gọn gồm bước sau:
Procedure Loại bỏ dư thừa
(7)Output: F' (Một tập phụ thuộc hàm tương đương với F với dư thừa hơn) Begin
Repeat
B1 Thực phép hợp cho phụ thuộc hàm có vế trái; B2 Thực phép thay (1), (2), (3);
Until (không thực thao tác B1 B2 thêm nữa);
B3 Kiểm tra xem tập phụ thuộc hàm thu được, có phụ thuộc hàm suy từ hai phụ thuộc hàm khác từ việc áp dụng (A3) Nếu có loại bỏ
End;
Nhận xét Trong [1] [2], tác giả cho chạy thủ tục removeRedundancy nhiều tập phụ thuộc hàm với số lượng kích thước khác thấy tỷ lệ phần trăm số lần áp dụng quy tắc thay cao tăng đáng kể với độ phức tạp tập phụ thuộc hàm
Ngoài ra, tác giả [1] [2] rút kết luận tổng quát sau:
- Đối với 28,25% tập phụ thuộc hàm, không cần thiết áp dụng quy tắc bắc cầu (A3)
và phép biến đổi tiền xử lý loại bỏ dư thừa cách hiệu - Kích thước tập phụ thuộc hàm rút gọn tới 52,89%
- Khi số thuộc tính tăng lên số trường hợp khơng cần áp dụng quy tắc bắc cầu (A3) tăng lên Điều chứng tỏ quy tắc thay đặc biệt thích hợp để làm
việc với lược đồ sở liệu lớn
- Số phần trăm áp dụng quy tắc thay không phụ thuộc vào số thuộc tính độ dài phụ thuộc hàm
Nhận xét 10 Để thấy ý nghĩa ưu việt quy tắc thay (tức phép biến đổi tiền xử lý tập phụ thuộc hàm), ta xét hai ví dụ sau, đó, ví dụ lấy lại từ ví dụ [2] với việc chỉnh sửa lại sai sót nhỏ
Ví dụ ([2]) Cho F = {abc, abce, bdac, afb, cdba} Ta áp dụng
phép thay để thu tập phụ thuộc hàm với dư thừa
Như vậy, sau thực phép biến đổi tiền xử lý, ta thu tập F' tương đương với
F chứa dư thừa
F' = {abce, bda, cdb}
Ví dụ Áp dụng phép thay tập phụ thuộc hàm F = {ba, bgh, da, bih, abde, abfg, abcdj, abck}
Quy tắc áp dụng F
Quy tắc hợp:
ba, bgh | Par S
bagh
bagh, da, bih, abde,
abfg, abcdj, abck
Quy tắc hợp:
abde, abfg | Par S
abdefg
bagh, da, bih, abdefg, abcdj, abck
Quy tắc hợp:
abcdj, abck | Par S
abcdjkh
bagh, da, bih, abdefg, abcdjk