Mối quan hệ giữa các dạng của điều kiện cần để một tập thuộc tính là khóa của một lược đồ quan hệ với việc rút gọn bài toán tìm khóa cũng được chỉ ra.. Từ khóa: Cơ sở dữ liệu quan hệ, [r]
(1)Công nghệ thông tin & Cơ sở toán học cho tin học
MỘT SỐ KẾT QUẢ VỀ RÚT GỌN BÀI TỐN TÌM KHĨA Vũ Quốc Tuấn1*, Hồ Thuần2
Tóm tắt: Cho S = <, F> lược đồ quan hệ, đó, = {A1, A2, , An} là tập hữu hạn thuộc tính F = {L1 R1, ,Lm Rm | Li, Ri, i = 1, ,m} là tập hữu hạn phụ thuộc hàm S Trong [1], dựa ngữ nghĩa quen thuộc phụ thuộc hàm mơ hình sở liệu quan hệ thuật tốn tính bao đóng tập thuộc tính, tác giả xây dựng điều kiện cần để tập thuộc tính X khóa (theo nghĩa tối tiểu) S Tiếp đó, số hướng cải tiến cho điều kiện cần thu được xem xét Trong [2], dựa trên việc nghiên cứu tốn tử iđêan khơng tất định (idean non-deterministic operators) khuôn khổ lý thuyết dàn, tác giả [2] đưa điều kiện cần để tập thuộc tính khóa Như vậy, có hai kết cho cùng tốn cơng bố cách 26 năm mà nhìn dường khác nhau Trong báo này, chứng minh điều kiện cần [2] chính dạng cải tiến điều kiện cần [1] Mối quan hệ dạng của điều kiện cần để tập thuộc tính khóa lược đồ quan hệ với việc rút gọn tốn tìm khóa
Từ khóa: Cơ sở liệu quan hệ, Lược đồ quan hệ, Phụ thuộc hàm, Khóa lược đồ quan hệ
1 MỞ ĐẦU
Trong mục này, số kết [1] [2] nhắc lại để tiện so sánh Lưu ý thuật ngữ khóa dùng hiểu theo nghĩa khóa tối tiểu
Cho S = <, F> lược đồ quan hệ, = {A1, A2, , An} tập hữu hạn thuộc tính F = {L1 R1, ,Lm Rm | Li, Ri , i = 1, ,m} tập hữu hạn phụ thuộc hàm S
Kí hiệu: m i i L L , m i i R R
, tập tất khóa S, S = {KS j | Kj khóa S},
j S j K G K
là giao tất khóa S,
j S j K H K
là tập tất cả thuộc tính khóa S, H= \H tập tất thuộc tính khơng khóa S
Trong [1] chứng minh kết sau:
Định lý (Định lý [1]) Cho S = <, F> lược đồ quan hệ X một khóa S Khi đó:
\ R X ( \ R) (L R) (1) Định lý (Định lý [1]) Cho S = <, F> lược đồ quan hệ Khi
G = \ R
Mệnh đề (Trong chứng minh Định lý [1]) Ta có R \ L H, có
nghĩa thuộc tính R \ L thuộc tính khơng khóa Từ (1), ta dễ dàng suy ra:
Nhận xét ( \ R) (L R) siêu khóa chứa tất khóa S Lưu ý
(2)Nghiên cứu khoa học cơng nghệ
nếu có R \ L ≠ siêu khóa ( \ R) (L R) việc tìm tập tất cá khóa chứa siêu khóa nhỏ thực tốn Điều rõ ràng liên quan đến việc rút gọn tốn tìm khóa lược đồ quan hệ Thật vậy, giả sử xác định Z tập chứa tất khóa lược đồ quan hệ S = <, F> Khi đó, việc rút gọn tốn cho việc tìm khóa S tiến hành qua bước sau:
1) Xác định lược đồ quan hệ S' = <', F'>, đó, ' = Z \ ( \ R) F' = {Li ' Ri ' | (Li Ri) F, i = 1, 2, , m}
2) Tìm K theo thuật tốn S'
3) Dễ thấy = {( \ R) K | K S } S'
Nhận xét Các khóa K j Skhơng chứa có cấu trúc chung Kj= ( \ R) Zj với Zj L R
Điều tạo thuận lợi cho việc xác định khóa S
Nhận xét Trường hợp tồn tập Z H cho (L R) Z ≠ ( \ R) [(L R) \ Z] siêu khóa chứa tất khóa S siêu khóa rõ ràng chứa thực siêu khóa ( \ R) (L R)
Khi đó: ( \ R) Kj ( \ R) [(L R) \ Z], K j S
sẽ dạng cải tiến điều kiện cần (1)
Trong [2, 3], có đưa định nghĩa định lý sau (các ký hiệu sửa lại cho phù hợp với hệ thống ký hiệu dùng trên):
Định nghĩa (Định nghĩa 3.3 [3]) Cho S = <, F> lược đồ quan hệ Khi lõi (core) thân (body) S định nghĩa sau:
core(, F) = \ ( i i)
i L R F
R
body(, F) = ( i i) i L R F
L
[ \ core(, F) +
] Bằng tính tốn đơn giản, ta nhận được:
core(, F) = \ R body(, F) = L [ \ ( \ R)+]
Ví dụ (Ví dụ 3.1 [3]) Cho S = <, F> lược đồ quan hệ, đó, tập thuộc tính = {a, b, c, d, e, f, g, h} tập phụ thuộc hàm F = {ab c, a g, g c, b h, bh d, c d, e f, f e}
Ta có: L = abcefgh, R = cdefgh, \ R = ab, ( \ R)+ = abcdgh, L [ \ ( \ R)+] = ef Từ core(, F) = ab body(, F) = ef
Định lý (Định lý 3.4 [2, 3]) Cho S = <, F> lược đồ quan hệ K là khóa (tối tiểu) S Khi đó, ta có:
core K (core body), có nghĩa
(3)Cơng nghệ thơng tin & Cơ sở tốn học cho tin học Rõ ràng (2) phát biểu điều kiện cần để K khóa S Chứng minh (2) cho [2] với số ví dụ minh họa
2 MỘT DẠNG CẢI TIẾN CHO ĐIỀU KIỆN CẦN (1) Trong [1] có chứng minh bổ đề sau:
Bổ đề (Bổ đề [1]) Cho S = <, F> lược đồ quan hệ X khóa S Khi
X R (L \ R)+ = Bổ đề dễ dàng mở rộng thành bổ đề đây: Bổ đề Cho S = <, F> lược đồ quan hệ Khi
K R ( \ R)+ = , K , S có nghĩa R ( \ R)+ H
Chứng minh Giả sử ngược lại: KKSsao cho K R ( \ R)+ ≠ , có nghĩa A cho A K, A R theo định nghĩa bao đóng, \ R A Vì A R nên A \ R Từ điều kiện (1) có \ R K Kết hợp với A \ R, suy \ R K \ A Từ có K \ A \ R Mặt khác \ R A Kết K \ A A với A K, chứng tỏ K khơng khóa S Tóm lại ta chứng minh
K [R ( \ R)+] = , KKS, có nghĩa R ( \ R)+ H
Từ nhận xét 3, định lý sau hiển nhiên
Định lý Cho S = <, F> lược đồ quan hệ Khi
\ R K ( \ R) [(L R) \ (R ( \ R)+ )], K (3) S Ta xem (3) dạng cải tiến (1)
Sau ví dụ (L R) (R ( \ R)+ ) ≠ , có nghĩa ( \ R) [(L R) \ (R ( \ R)+) ] ( \ R) (L R)
Ví dụ Xét lược đồ quan hệ S = <, F> = {a, b, c, d, e, f, g, h, i} F = {a b, b c, d e, h i, i h}
Với lược đồ quan hệ này, ta có: L = abdhi, R = bcehi, L R = bhi, \ R = adfg;
( \ R)+ = abcdefg, R ( \ R)+ = bce Dễ thấy = {adfgh, adfgi} Từ S đó H = {a, d, f, g, h, i} H = {b, c, e}
Bổ đề nghiệm R ( \ R)+ = bce H
(4)Nghiên cứu khoa học công nghệ
\ R K ( \ R) [(L R) \ (R ( \ R)+ )], K , S cụ thể adfg K adfghi với K {adfgh, adfgi}
3 SO SÁNH HAI ĐIỀU KIỆN CẦN (2) VÀ (3) Để dễ so sánh, ta phát biểu lại hai điều kiện cần (2) (3) sau: Cho lược đồ quan hệ S = <, F> Khi
\ R K ( \ R) [L [ \ ( \ R)+ ]], K S \ R K ( \ R) [(L R) \ (R ( \ R)+ )], K S
Nhận xét Dễ thấy L [ \ ( \ R)+ ] = L \ ( \ R)+ Thật vậy, giả sử x L [ \ ( \ R)+ ] x L, x \ ( \ R)+ x L, x ( \ R)+ x L \ ( \ R)+ Ngược lại, giả sử x L \ ( \ R)+ x L, x ( \ R)+ x L, x \ ( \ R)+ x L [ \ ( \ R)+ ]
Định nghĩa Ta nói điều kiện (2) tốt điều kiện (3) L \ ( \ R)+ (L
R) \ (R ( \ R)+ ) tồn lược đồ quan hệ cho L \ ( \ R)+ (L R) \ (R ( \ R)+ )
Hiểu theo nghĩa đó, ta thấy điều kiện (3) dạng cải tiến (1) Tương tự, ta có định nghĩa (3) tốt (2) Để so sánh (2) với (3) ta có định lý sau: Định lý Hai điều kiện (2) (3) diễn đạt biểu thức khác
Chứng minh Để chứng minh định lý 5, rõ ràng cần chứng minh
L \ ( \ R)+ = (L R) \ (R ( \ R)+ ) (4) Giả sử x thuộc tính thuộc L \ ( \ R)+
x L \ ( \ R)+ (x L) x ( \ R)+ (x L), x ( \ R) x ( \ R)+ (x L), x R x ( \ R)+ (x L R) x [R ( \ R)+] x (L R) \ [(R ( \ R)+],
có nghĩa L \ ( \ R)+ (L R) \ (R ( \ R)+ ) (5) Bây ta chứng minh điều ngược lại:
x (L R) \ [R ( \ R)+ ] (x L), (x R) (x [R ( \ R)+]) (x L), (x R) (x ( \ R)+) x L \ ( \ R)+,
có nghĩa (L R) \ (R ( \ R)+ ) L \ ( \ R)+ (6) Kết hợp (5) (6), ta có: L \ ( \ R)+ = (L R) \ (R ( \ R)+ ) Định lý chứng minh
Để minh họa cho định lý 5, ta trở lại với ví dụ
(5)Công nghệ thơng tin & Cơ sở tốn học cho tin học Từ L \ ( \ R)+ = ef (L R) \ (R ( \ R)+ ) = ef
Với ví dụ 2, = {a, b, c, d, e, f, g, h, i}, F = {a b, b c, d e, h i, i h} Ta có: L = abdhi, R = bcehi, L R = bhi, \ R = adfg; ( \ R)+ ) = abcdefg, R ( \ R)+ = bce
Từ đó: L \ ( \ R)+ = hi (L R) \ (R ( \ R)+ ) = hi
Liên quan tới điều kiện cần để tập thuộc tính K khóa lược đồ quan hệ S = <, F>, ta xem xét giải toán sau
4 MỘT BÀI TOÁN QUYẾT ĐỊNH
Cho S = <, F> lược đồ quan hệ cho Z Bài toán đặt định xem Z có phải tập chứa tất khóa S không?
Giả sử Z chứa tất khóa S Điều có nghĩa là: Z
j S j K K
H K
Từ \ Z \ H = H
Bổ đề Cho S = <, F> lược đồ quan hệ cho Z Khi Z chứa tất các khóa S \ Z gồm thuộc tính khơng khóa, có nghĩa là:
\ Z H
Để thấy ý nghĩa bổ đề 3, ta trở lại với điều kiện (2), định lý 3.4 [3]
( \ R) K ( \ R) [L \ ( \ R)+ ], KKS
Rõ ràng (2) khẳng định Z = ( \ R) [L \ ( \ R)+ ] tập (siêu khóa) chứa tất khóa S
Để kiểm tra tính chất đó, ta dùng bổ đề Ta có:
\ Z = \ [( \ R) (L \ ( \ R)+) ] = R \ (L \ ( \ R)+) = (R \ L) (R ( \ R)+) (Ở đây, với ba tập A, B, C , ta áp dụng biến đổi quen thuộc
A \ (B \ C) = (A \ B) (A C))
Như vậy, \ Z = R \ (L \ ( \ R)+) = (R \ L) (R ( \ R)+) H (7)
Do có (R \ L) H (theo [1]) R ( \ R)+ H (theo bổ đề 2)
Chứng tỏ Z = ( \ R) [L \ ( \ R)+ ] siêu khóa chứa tất khóa S 5 KẾT LUẬN
(6)Nghiên cứu khoa học công nghệ
quan hệ S = <, F> Việc tìm điều kiện cần tốt (2) (3) nhằm rút gọn tốn tìm khóa vấn đề đáng quan tâm
TÀI LIỆU THAM KHẢO
[1] Ho Thuan and Le Van Bao, "Some results about keys of relational schemas", Acta Cybernetica, Tom 7, Fasc.1, Szeged, pp 99-113, 1985
[2] A Mora, I.P de Guzmán, M Enciso and P Cordero, "Ideal non-deterministic operators as a formal framework to reduce the key finding problem", International Journal of Computer Mathematics, Vol 88, No 9, 1860–1868, June 2011
[3] P Cordero, M Enciso, A Mora, "Automated Reasoning to Infer all Minimal Keys", In Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence, (IJCAI13), F.Rossi ed.,pp.817-823, AAAI Press, 2013 [4] Ho Thuan, "Contribution to the theory of relational databases", Tanulmányok
184/1986, Studies 184/1986, Budapest, Hungary ABSTRACT
SOME RESULTS FOR REDUCING THE KEY FINDING PROBLEM Let S = <, F> be a relation schema, where = {A1, A2, , An} is a finite set of attributes and F = {L1 R1, ,Lm Rm | Li, Ri , i = 1, ,m} is a finite set of functional dependencies that hold on S In [1], using the well-known semantics of functional dependency in the theory of relational databases and the algorithm to compute the closure of a subset of attributes, a necessary condition for which a subset X is a minimal key for S was established and some improvements of it were given In [2], basing on the study of idean non-deterministic operators in the framework of the lattice theory, the authors of [2] gave another necessary condition for which a subset of is a minimal key for a relation schema S = <, F> Thus, we have two results for the same problem, the first one was published in 1985 and the last one, in 2011, and apparently, they seem quite different In this paper, we show that the necessary condition in [2] is only an improved version of that one in [1] The relationship between the necessary conditions for which a subset of
is a minimal key for the relation scheme S = <, F> and the reduction of the key finding problem was also showed
Keywords: Relational database, Relation scheme, Functional dependency, Keys for a relation scheme
Nhận ngày 18 tháng 11 năm 2016 Hoàn thiện ngày 31 tháng 12 năm 2016 Chấp nhận đăng ngày 20 tháng 02 năm 2017 Địa chỉ: 1 Trường Cao đẳng Hải Dương;