THUẬT TOÁN TÌM MỘT KHÓA CỦA LƯỢC ĐỒ QUAN HỆ

Một phần của tài liệu Co so du lieu Chuong 5 ThS Nguyen Vuong Thinh (Trang 35 - 39)

X + Các tập con của

5.5.3.THUẬT TOÁN TÌM MỘT KHÓA CỦA LƯỢC ĐỒ QUAN HỆ

a) K+ =Ω (hay F∈ +).

5.5.3.THUẬT TOÁN TÌM MỘT KHÓA CỦA LƯỢC ĐỒ QUAN HỆ

Ý tưởng:

Khóa của lược đồ quan hệ bị kẹp giữa hai tập thuộc tính là Ω\R và (Ω\R) (L∩R)∪

36

Input: Tập thuộc tính Ω và tập phụ thuộc hàm F. Output: Một khóa K của lược đồ quan hệ.

begin X:= Ω\R If (Ω\R)+ Ω ⊂ then begin X:= X (L∩R)∪ for each Ai L∩R ∈ do

if (X\{Ai})+ = Ω then X:= X\{Ai}; end;

K:=X;end. end.

Ví dụ 5.7: Cho lược đồ quan hệ R(A,B,C,D,E,G) với tập phụ thuộc hàm F = {B→C, C→B, A→GD}

Hãy chỉ ra một khóa của lược đồ quan hệ này.

Giải

Ω = ABCDEG, L = ABC, R = BCDGΩ\R = AE, L∩R = BC Ω\R = AE, L∩R = BC

Ta thấy (Ω\R)+ = (AE)+ = AEDG Ω nên:⊂

X = Ω\R (L∩R) = ABCE∪

Xét (X\{B})+ = (ACE)+ = ABCEGD = Ω ⟹ X = ACE

Xét (X\{C})+ = (AE)+ = ADEG ≠ Ω ⟹ Không thể loại bỏ C khỏi X. Vậy K = X = ACE là một khóa của lược đồ quan hệ.

38

Ví dụ 5.8: Cho lược đồ quan hệ R(A,B,C,D,E,G,H,I) với tập phụ thuộc hàm

F = {AB→E, AG→I, BE→I, E→G, GI→H}Hãy chỉ ra một khóa của lược đồ quan hệ này. Hãy chỉ ra một khóa của lược đồ quan hệ này.

Giải

Ω = ABCDEGHI, L = ABEGI, R = EGHIΩ\R = ABCD, L∩R = EGI Ω\R = ABCD, L∩R = EGI

Ta thấy (Ω\R)+ = (ABCD)+ = ABCDEGHI = Ω

Bước 1: Đặt TN = Ω\R và TG = L∩R

Bước 2:

if TG= ⍉ then

Lược đồ quan hệ chỉ có một khóa K = TN; Kết thúc thuật toán;

else

Qua bước 3;

Bước 3: Tìm tất cả các tập con Xi của tập TG

Bước 4:

Gọi S là tập các khóa của lược đồ quan hệ; Đặt S = ;⍉ Tìm các siêu khóa Si bằng cách: ∀Xi if (TN X∪ i)+ = Ω then begin Si = TN X∪ i; S = S {S∪ i};

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Co so du lieu Chuong 5 ThS Nguyen Vuong Thinh (Trang 35 - 39)