MỘT SỐ KẾT QUÁ VỀ KHÓA CỦA SƠ ĐỒ QUAN HỆ NGUYÊN HOÀNG SƠN, NGUYÊN VIỆT HÙNG Abstract.. Trong quá trình thiết kế cơ sở dữ liệu CSDL, việc tìm khóa của một sơ đô quan hệ là rất quan trọng.
Trang 1MỘT SỐ KẾT QUÁ VỀ KHÓA CỦA SƠ ĐỒ QUAN HỆ
NGUYÊN HOÀNG SƠN, NGUYÊN VIỆT HÙNG
Abstract In this paper, we present some results for the key finding problem on relation schemes
Tóm tắt Trong quá trình thiết kế cơ sở dữ liệu (CSDL), việc tìm khóa của một sơ đô quan hệ là
rất quan trọng Trong bài này, chúng tôi đưa ra một số kết quả về bài toán tìm khóa của một sơ đồ quan hệ
1 MỞ ĐẦU Bài toán tìm khóa của một sơ đỗ quan hệ đóng vai trò rất quan trọng trong quá trình thiết kế CSDL Những kết quả về khóa đã được nghiên cứu nhiều, có thể xem trong [1 5| Trong bài này
để tìm khóa của sơ đồ quan hệ Š ban đầu, chúng tôi dịch chuyển sơ đồ Š về sơ 5 dé S, là sơ đồ có
số thuộc tính ít hơn, số các phụ thuộc hàm ít hơn Chúng tôi chứng mình được rằng có mối liên hệ giữa khóa của Š và khóa của Š Lưu ý rằng trên sơ đồ Š việc tìm khóa đơn giản hơn rất nhiều
2 MỘT SỐ KHÁI NIỆM VÀ KẾT QUÁ CƠ SỞ
Về các ký hiệu, chúng tôi sử dụng theo [2]
Cho S = (U, F) lA mot sơ đồ quan hệ, trong đó = {Ai, 4a, , 4„} là tập các thuộc tính, F'= {L¡ — Rị | Lị, Rị C U, Lịn Rị — Ø, ? — 1,2, , k} là tập các phụ thuộc hàm xác định trên U
Ký hiệu:
L=(Jli, R=(JRi
Định nghĩa 2.1 Cho Š = (U, F) là một sơ đồ quan hệ, X là một tập con thuộc tính cla U, X
được gọi là khóa của sơ đỗ quan hệ Š nếu X thỏa mãn hai điều kiện sau:
() (X>U)€Ƒ”,
(2) 1X! C X sao cho (X —> U) c FT
Trường hợp nếu X không phải là khóa nhưng thỏa điều kiện (1) thì X được gọi là siêu khóa cua S
Bổ đề 2.1 (Bổ dé 3 trong [2]) Cho S = (U, F) la mét so dé quan hệ, X là một khóa của S Khi đó
XnRn(L-R)' =ø
Định lý 2.1 (Định lý 3 trong [2]) Cho S = (U, F) la mét sơ đồ quan hệ, X là một khóa của S
Khi do
U-RCX C(U—R)U((LNR) —a(L, R)),
Khi đó có thể viết lại X như sau:
Trang 2Ghi chi Trong bai nay, tir day vé sau ta ky hiệu X > U thay cho (X > U) € F* Trong truéng hợp không sợ nhầm lẫn ta viết X —— Ù
Trong các kết qủa sau chúng tôi còn có sử dụng thêm một tính chất
Bổ đề 2.2 (Bài toán thành viên) X -> Y khi vd chỉ khí V C X1
Định nghĩa 2.2 Goi U = (LOR) —a(L, R)= (LOR) - (L—R)t,
Fea {L;0U +R, NU | LN #2, RAT 40, Ly > RP}
Ta goi so dé quan hé S= (U, BF ) là ảnh của sơ đồ quan hệ Š qua phép dịch chuyển sơ đồ
3 KẾT QUÁ Mệnh đề 3.1 Với mợi A € Ù thà tôn tại (Li > R!) € F sao cho AE Ri
Chứng mánh, Từ A € Ù =(EnR)— (L— RẠT suy ra A € (Ln R), nên tổn tại phụ thuộc hàm
L;,—- RR, € F sao cho AE R; Dodd ACR, NU
Ngoài ra ta thấy L¿nÙ # Øø Thật vậy, giả sử L¿n Ù = @ suy ra L; C (L— R)* và do đó
Tir (1) va (2) ta c6 L — R—¬ A Suy ra A € (L— R)* Điều này là mâu thuẫn với A € U Nhu vậy
LịnÙ zø, do đó 1n ¬ R,nÙcf
Đặt Li —= L¿ñ Ũ, R= Rin U Ta cé diéu phai chttng minh, nghia IA ton tại [Ls Rie F sao cho
Tir dinh ly trén ta dé dang suy ra hé qua sau:
Hệ quả 3.1 U = © khi vd chi khi F = @
Mệnh đề 3.2 Nếu (X) = U thi (L—R)UX 40
Chitng minh Theo thuật toán tính bao đồng của (X); thi ton tai k € N sao cho:
x—x9cC xữ)C cC xứ C C xứ) - xứ?!) _
với
xứ!) = xÐU{A|3Y'—¬Z'cf, AcZ!, Y'C XŒ},¡=0,1, b
Đầu tiên ta chứng minh
(L— R)U XÖÐ 4, xX) Yi =0,1, ,k
Một cách tương đương ta chứng mình
(L—-R)UX 4*,4 VAẠC XÉT),
Nếu 4€ XÉ) thì phép chứng minh hiển nhiên Còn nếu A Z Xf) thì tổn tại - -
Y! = Z'eFF, AcZ, Y!C XẾ) Do đó tổn tại Y — Z € F sao cho Y =YÝYnU, Z'= ZnD
Mặt khác dễ thấy Y — Ứ € (L— R)*, do đó L— R-°› Y — Ữ Suy ra
(L—R)UY'’ 45 (Y —U)uY’,
Trang 3Ma ta c6 Y’ CX, do dé (L— R)UX® 4 Y,
Theo qui tắc bắc cầu, từ (— R) UX 2 Y,Y ¬ Z, Z—Z'(vZCZ),Z'— A(vì Ae Z9),
suy ra
(L—R)UX® 4,4, VAEX@D, §=0,1, ,k
Do vậy ta có:
(L—R)UX® 4 xX) Vị =0,1, E
Ma X) = X va X@+) =U Do dé (L— R)UX —+ U Ménh dé duge ching minh
Mệnh đề 3.3 Voi moi Ac U, L; > Ri € F sao cho A€ R; thi
Lịn Ù z ø và LịnÙ —¬ RịnDe F
Chúng mảnh Giả sử L; AU = @, suy ra L; C (L— R)† hay L— R—— Ly
Mặt khác ta có l¿ — Ï¿ và f — A Do đó theo tính bac cu L— R —> A hay Ac (L— R)T Điều này mâu thuẫn với A € U Do vay
Ngoài ra ta có
Từ (3) và (4) suy ra 1ñ — In Ù e F' Mệnh đề được chứng minh
Mệnh đề 3.4 X là siêu khóa của 5, khả oà chỉ khá XU (U — R) là siêu khóa của S
Chúng mánh Giả sử ÄÃ là siêu khóa của Š, khi đó (X); = U, do đó theo Mệnh đề 3.2 ta có
(L— R)UX OU
Suy ra (L— R)U XU(U— R) ——> U(U — R), hay (U — R)U X ——Ư Do vậy (U— R)U X là siêu khóa của ®
Ngược lại giả sử K = (Ư — R)U X là siêu khóa của ®S, khi đó (K)g = U Mặt khác (X);, CŨ Đặt
M=U- (X)z Để chứng minh X là siêu khóa của Š ta chỉ cần chứng minh Ä⁄ # Ø Thật vậy, giả
sử ă ⁄ Ø Từ thuật toán tính bao đóng của ứng với F ta suy ra ton tai so k € N sao cho:
K = KØ) C KŒ) C C KŒ C C KỨ) C KứŒ+Đ 5 Ũ,
Với ¡ =0,1, ,k ta có KữT1 = K#) U{A|3Y >ZcF,Ac Z,YcC K},
Với mỗi thuộc tính Ö thuộc Ä⁄ ta xét các trường hợp sau:
(i) Nếu 8c KẾ) = K thì
Mà ta biết (U — R)n Ù = Ø Do đó từ (5) suy ra (X > B) € F* Điều này vô lý Suy ra ă = Ø (¡) Nếu tổn tại chỉ số ¿ € {1,2, ,k} sao cho Ö € (K)ŒT và K n M = ø Từ Kữn M = Ø ta
suy ra KOU C (X); hay
Vi B € K@ nén ton tai Y + Z € Ft sao cho Y C KM va Be Z Ta Y C K™ suy ra
K® —Y € F*, hay
Trang 4Tt Be Z suy ra BE ZNU, hay 7 7
Tir (6),(7),(8) và (9) suy ra X > Be Ft Diéu nay vo ly Vay M = @
Tóm lại M = Ø, hay (X);, =U, nghia lA X là siêu khóa của Š Mệnh đề được chứng mỉnh
Định lý 3.1 X ià khóa của Š khá oà chỉ kh¿ X U (U — R) là khóa của S
Chúng mảnh Giả sử X là khóa của Š Do đó theo Mệnh đề 3.4 K = (U — R)U X là siêu khóa của
S Nếu K không là khóa của Š thì tổn tại K7 CK, K' 1a khéa cua S, sao cho K’ = (U — R)U X'
Và do đó theo Mệnh đề 3.4 X” là siêu khóa của S Từ K“C K suy ra X'° C X Điều này trái với giả thiết X là khóa của Š Do vậy K là khóa của S
Ngược lại, giả sử K = (U = R) UX 1a khéa cua S Do dé theo Mệnh đề 3.4 X là siêu khóa của S Nếu X không là khóa của Š thì tốn tại X' C X, X! là khóa của Š
Xét K' = (U_— R)U X' Rõ ràng K7 là siêu khóa của $
Từ X?C X suy ra K?C K Điều này trái với giả thiết K là khóa của S
Vậy X là khóa của S Định lý được chứng minh
a
Từ những kết quả được tìm ra trên, chúng tôi đưa ra thuật toán tìm khóa dựa vào phép dịch chuyển
sơ đồ quan hệ
4 THUẬT TOÁN TÌM KHÓA
Chức năng tìm khóa của sơ đồ quan hệ S$ = (U, F)
Vào:
- Tập thuộc tính Ứ = {44, 4a, , A„}
- Tập phụ thuộc hàm F = {L; — | b¿, R C U, L¿ñ Rị — Ø, ¡ — 1,2, , k}
Ra: X CU, X là khóa của S
Phương pháp:
Bước 1 Tính X :=Ữ —
Bước 2 Nếu X” = thì kết luận X là khóa duy nhất của Š, thuật toán dừng Còn nếu
XT 7 thì thực hiện bước 3
Bước 3 Xây dựng lược đồ chuyển dịch Š = (Ù, F) với:
Ữ =(EnR)—(L- R", P,={L¿nÙ — RịnD|L¿nDÙ #ø, RịnÙ ø, Lị — Rịc P, Ví = 1,2, ,k}
Bước 4 Sử dụng thuật toán (1) trong [2| để tìm khóa X” của lược đồ quan hệ S
Bước ð Kết luận: X := X”U (U — R) là khóa củ a lược đồ quan hệ 6$ Thuật toán dừng
Ví dụ Cho sơ dé quan hệ S = (U, F), voi U = {A,B,C,D,E,F,G,H.1,J,K},
F ={AC > FH, F > K,IG > ABC, BE > JKD, DF > AE}
So dé quan hé chuyén dich § = (U, F) véi U va F duoc xéc dinh nhu sau:
L={A,B,C,D,E,F,G,I}va R={A,B,C,D,E,F, J, K,H},
U—R={G,T}, LAR={A,B,C,D,E,F,}, L— R={I,G},
Trang 5(L—R)+ ={1,G}* = {1,G, A, B,C, FH, K},
& = (LAR) —(L— R)*+ = {D, E}
F={L,NU SR NU|L,NU 4 @,R NU 49, L; > Re F,Vi = 1,2, ,5}
={E—>D,D— F}
Ta nhận thấy rằng sơ đô quan hệ chuyển dịch Š = (U FB ) đơn giản hon nhiều so với sơ đồ quan
hệ ban đầu Š = (U, F) Khóa của sơ đồ quan hệ Š là {P} và {G} Từ đó suy ra khóa của sơ đồ quan hệ Š là {, Œ, T} và {D, G, T}
TÀI LIỆU THAM KHẢO
[1] J Demetrovics, Ho Thuan, Le Van Bao, and Nguyen Xuan Huy, Translation of relation schemes, Balanced relation schemes and the problem of key representation, J Inf Process Cybern EIK
23 (1987) 81-97
[2} Ho Thuan, Le Van Bao, Some results about key of relational schemas, Acta Cybernetica (1985) 99-113
[3] Ho Thuan, Contribution to the Theory of Relational Databases, Tanulmanyok 184/1986, Studies 184/1986
[4] Maier, D., The Theory of Relational Databases, Computer Science Press, 1980
[5] Ullman, J D., Principles of Database and Knowledge - Base Systems, Vol 1 &2, Computer Science Press, 1986
Nhận bài ngàu 17 - 7 - 2001
Nhận lại sưu khi sta ngay 15 - 3 - 2002
Khoa Toán - Cơ - Tín học, Trường Đạt học Khoa học Huế