127
B3: Tìm tất cả các tập con X
i
của TG
B4: Tìm Siêu khóa (S
i
) Với ∀ X
i
, nếu (TN U X
i
)+ = U thì khi đó S
i
= TN
U X
i
B5: Tìm Khóa (K
i
) bằng cách loại bỏ các siêu khóa không tối thiểu Với
mọi S
i
S
j
thuộc S, nếu S
i
chứa
trong S
j
thì loại bỏ S
j
ra khỏi tập siêu
khóa. Khi đó, tập S còn lại chính là tập khóa cần tìm
Bảng 4.4: Tìm khóa trong lược đồ quan hệ.
Ví dụ 1: S = {AB, ABC, ED, EDF}
Nhận thấy AB chứa trong ABC, ED chứa trong EDF, vậy cần loại bỏ ABC và EDF.
Vậy S = {AB, ED} chính là tập khóa cần tìm
Ví dụ 2: Cho một tập cơ sở dữ liệu R =
, với U = {ABC}, F = {AB→C,
C→A}.
Tìm tất cả các khóa thuộc tập cơ sở dữ liệu trên.
Lời giải:
- L = {ABC} R = {CA}
- TN = {B} TG = {AC}≠∅ nên ta làm tiếp bước 3
- Ta có tập con X
i
của tập TG = {0, A, C, AC}
- Lấy từng thuộc tính thuộc tập con X
i
của tập TG hợp với TN ta có các thuộc tính
sau:
▪ S
1
= TN U
∅ = B Ta có B
+
= B ≠ U nên S
1
= B không là siêu khóa
▪ S
2
= TN U A = AB Ta có AB
+
= ABC = U nên S
2
= AB là siêu khóa
▪ S
3
= TN U C = BC Ta có BC
+
= ABC = U nên S
3
= BC là siêu khóa
▪ S
4
= TN U AC = ABC Ta có ABC
+
= ABC = U nên S
4
= ABC là siêu khóa
128
▪ Vậy ta có tập siêu khóa S = {AB, BC, ABC}.
▪ Tuy nhiên, vì AB chứa trong ABC và BC chứa trong ABC nên loại bỏ siêu
khóa ABC ra khỏi tập siêu khóa
▪ Vậy ta có, tập khóa K = {AB,BC} là khóa của lược đồ quan hệ
Từ một tập các phụ thuộc hàm có thể suy diễn ra các phụ thuộc hàm khác. Trong
một tập phụ thuộc hàm cho sẵn, có thể có các phụ thuộc hàm bị coi là dư thừa → Làm
thế nào để có được một tập phụ thuộc hàm tốt?
Chia sẻ với bạn bè của bạn: