Professional Documents
Culture Documents
1.4 Tim Khoa
1.4 Tim Khoa
Ví dụ
Giả thiết: R = <U,F>, U = ABCDEG;
F = {B → C, C → B, A → GD}
Ban đầu: K = ABCDEG
► (K \ C)F+ = ADEG U
► (K \ A)F+ = BCDEG U ► (K \ D)F+ = ACEGBD = U
► (K \ B)F+ = ACDEGB = U K = ACEG
K = ACDEG ► (K \ E)F+ = ACGBD U
► (K \ G)F+ = ACEGDB = U
Vậy K = ACE là khoá của lược đồ quan hệ. K = ACE
Nhược điểm: Phải xét hết tất cả các thuộc tính.
Trang | 3
Xác định một khoá của lược đồ quan hệ
Trang | 4
Xác định một khoá của lược đồ quan hệ
Các hệ quả
Trang | 6
Xác định một khoá của lược đồ quan hệ
Trang | 7
Xác định một khoá của lược đồ quan hệ
Ví dụ
Giả thiết: ► T=ABC
T P = BC
R = <U,F>, U = ABCDEG; ► P=BCDG
F = {B → C, C → B, A → GD} ► U \ P=AE
► Với K := (U \ P) (T P)
K = ABCE
► (K \ B)+ = (ACE)+ = AGDCBE = U
K = ACE
► (K \ C)+ = (AE)+ = AGDE U
ACE K
Vậy K = ACE là khoá của lược đồ quan hệ.
Trang | 8
Xác định một khoá của lược đồ quan hệ
Thuật toán 3: Tìm một khoá của lược đồ quan hệ R nhận S làm siêu khóa
► Vào: R =<U,F> và siêu khóa S
► Ra : 1 khoá của R nhận S làm siêu khóa
► Phương pháp
Function Key(R);
Begin
K := S
For mỗi A S-(U-P) Do
If (K\A)F+= U Then K:= K\
A;
Return K;
End;
Trang | 9
Định lý Lucchessi - Osborn
► Cho R = <U, F>. Gọi K là một tập khác rỗng các khoá của lược đồ
quan hệ R. Khi đó, điều kiện cần và đủ để có thể bổ sung khoá mới
Trang | 10
Thuật toán 4: Tìm tất cả các khoá của một lược đồ quan hệ
K := K {K’}
Goto 2; {không cần xét lại (K,XY)đã xét}
End;
End;
Trang | 11
Return K;
End;
Xác định tất cả các khoá
Ví dụ
Cho R = <U, F> với U = ABCDEG
F = {B C, C B, A GD}
Ở ví dụ trước ta đã xác định được 1 khoá là ACE
►Xét K = ACE K:
Xét B C F : T=B (K\C)=B AE T = ABE không
chứa phần tử nào của K
K’ =ABE K = {ACE, ABE}
Xét C B F : T=C (K\B) = C ACE T = ACE K
A GD F : T=A (K\GD) = A ACE T = ACE K
►Xét K =Xét
ABE K :
Xét B C F : T=B (K\C)=B ABE T = ABE K
Xét C B F : T=C (K\B) = C AE T = ACE K
Xét A GD F : T=A (K\GD) = A ABE T = ABE K
Vậy K
Trang | 12
= {ABE, ACE}