You are on page 1of 4

Câu 2: Cho lược đồ quan hệ Q (M, N, P, Q) có Q+ = { M, N, P, Q } và tập phụ

thuộc hàm F = { Q→N, M→P, N→MPQ }. Áp dụng thuật toán để tìm tất cả các
khóa của lược đồ quan hệ Q.
 Áp dụng thuật toán bao đóng
Kiến thức:
Q là tập cơ sở dữ liệu
F là tập phụ thuộc hàm
L(left) : là các thuộc tính chỉ xuất hiện bên trái
R(right) : là các thuộc tính chỉ xuất hiện ở vế phải
S(supperkey) : là tập các siêu khóa
K(key) : là tập các khóa

Tập thuộc tính nguồn (TN) : bao gồm các thuộc tính chỉ xuất hiện ở vế trái,
không xuất hiện ở vế phải của F( tập phụ thuộc hàm) và các thuộc tính không xuất
hiện ở cả vế trái và vế phải của F.
Vậy TN = Q \ R
Nghĩa là ta lấy Q trừ cho R để tìm thuộc tính chỉ xuất hiện ở L và các thuộc tính
không xuất hiện ở cả L và R
Ví dụ : Cho tập cơ sở dữ liệu Q = {A,B,C,D,E} L = {A,B} R = {B,C,E}
TN = Q \ R = {A,D}

Tập thuộc tính đích (TĐ) : Bao gồm các thuộc tính chỉ xuất hiện ở R, không xuất
hiện ở L.
Vậy TĐ = R \ L
Ví dụ : Cho L = {A,B,C,D,E} R = {E,F,G,H}
TĐ = {F,G,H}

Tập thuộc tính trung gian (TG) : Chứa các thuộc tính xuất hiện ở cả L và R.
Vậy TG = L Giao R (Giao của 2 tập hợp để lấy thuộc tính chung của 2 Tập hợp đó)
Ví dụ : Cho L = {A,B,C,D,E} R = {D,E,F,G}
Vậy TG = L /cap R = {D,E}
Thuật toán :
Bước 1:
- Tạo tập nguồn TN và tập trung gian TG
Bước 2:
- Nếu TG=0(rỗng) thì K=TN, kết thúc. ngược lại qua bước 3.
Bước 3:
- Tìm tất cả tập con X i của tập trung gian.
Bước 4:
- Tìm siêu khóa Si bằng cách với mọi X i ,
+¿ ¿
nếu ( TN ∪ X i ) = Q+¿¿ thì Si = TN U X i
Bước 5:
- Tìm khóa bằng cách loại bỏ các siêu khóa không tối thiểu .
- Với mọi Si, S j thuộc S
Nếu Si chứa trong S j thì loại bỏ tập Sj ra khỏi siêu khóa (VD: Si=AB, S j=ABC thì
loại bỏ S j ra khỏi tập siêu khóa)
S còn lại chính là tập khóa cần tìm.

Ví dụ :
cho lược đồ quan hệ Q={CSZ} tập phụ thuộc hàm F={CS → Z; Z → C} tìm tất cả
các khóa của lược đồ quan hệ trên.
Bước 1:
- TN={S}, TG={CZ}
Bước 2:
- Nếu TG = {0} thì K(Key) = TN, và kết thúc thuật toán, xuất ra K của tập cơ sở
dữ liệu
- TG khác rỗng nên qua bước 3
Bước 3:
- tập con Xi của tập trung gian X={0,C,Z,CZ} ghi chú 0: là rỗng
Bước 4:
- ta có TN u Xi = S u 0 = S tính S+= S khác Q à không phải là siêu khóa
- ta có TN u Xi = S u C = {SC} tính SC+={SCZ} bằng với Q nên siêu khóa SC.
- SZ+=SZC bằng với Q nên Siêu khóa là CZ
- SCZ+= bằng với Q nên Siêu khóa là CSZ
Bước 5:
- Vậy tập siêu khóa S={SC, SZ, CSZ} Vì SC chứa trong CSZ và CZ chứa trong
CSZ nên loại bỏ siêu khóa CSZ khỏi tập siêu khóa.
- Kết quả khóa của lược đồ quan hệ trên là SC và SZ. K={SC, SZ}

Bài làm:

You might also like