siêu khóa không tối thiểu.
2929 29
www.tdt.edu.vn
www.tdt.edu.vn CCơơSSởở D Dữữ Li Liệệuu
5.7. Khóa – Thuật toán tìm khóa
Bài Toán Tìm khóa:
ª Để xác định tất cả các siêu khóa của 1 lược đồ
ª Để xác định tất cả các siêu khóa của 1 lược đồ
quan hệ R, ta lần lượt xét (2n-1) tập hợp con của R+ : X11, X, 22, … ,
ª Nếu 1 tập con Xi của R+ có bao đóng bằng đúng R+ thì tập con Xii chính là 1 siêu khóa.
ª Nếu R chỉ có 1 siêu khóa S thì siêu khóa đó cũng là khóa của lược đồ quan hệ R
5.7. Khóa – Thuật toán tìm khóa
Bài Toán Tìm khóa:
ª Trong trường hợp R có nhiều hơn 1 siêu khóa ª Trong trường hợp R có nhiều hơn 1 siêu khóa
(hữu hạn), để xác định tất cả các khóa chỉ định, ta so sánh 1 cặp siêu khóa Si và Sjj. Nếu Si ⊂ Sjj, ta loại Sj và giữ lại Si.
ª Lần lượt so sánh từng cặp siêu khóa để loại bỏ ố
tập lớn, cuối cùng thu được tập các khóa chỉ định của R.
Æ Th ậ á khô khả hi khi lớ
Æ Thuật toán không khả thi khi n lớn
3131 31
www.tdt.edu.vn
www.tdt.edu.vn CCơơSSởở D Dữữ Li Liệệuu
5.7. Khóa – Thuật toán tìm khóa
Bài Toán Tìm khóa – Thuật toán cải tiến:
Chúng ta sẽ cải tiến thuật toán dựa trên việc phân Chúng ta sẽ cải tiến thuật toán dựa trên việc phân loại tập thuộc tính R+
ª A ggọọi là thuộộc tính ngug ồn nếu A không xug ất hiệện
ở vế phải của bất kỳ PTH không hiển nhiên nào của F.
ª Tập các thuộc tính nguồn ký hiệu là N
ª A gọi là thuộc tính đích nếu A không phải thuộc
ồ ấ ế ấ
tính nguồn và A không xuất hiện ở vế trái của bất kỳ PTH không hiển nhiên nào của F.
5.7. Khóa – Thuật toán tìm khóa
Bài Toán Tìm khóa – Thuật toán cải tiến:
TTậập hp hợợp các thup các thuộộc tính không phc tính không phảải ngui nguồồn vàn và
không phải đích gọi là tập trung gian. Ký hiệu là L
Các tậậpp hợợp N, D, L rp , , ời nhau từngg đôi mộột và N ∪ D ∪ L = R+
Nhận xétậ
Nếu K là khóa của R thì K chứa tất cả các thuộc tính nguồn và không chứa bất kỳ thuộc tính đích nào.
3333 33
www.tdt.edu.vn
www.tdt.edu.vn CCơơSSởở D Dữữ Li Liệệuu
5.7. Khóa – Thuật toán tìm khóa
Thuật toán cải tiến:
ª B1: Xây dựng 2y ự g v tập con của L: Lập 11, L22, … bằngg phương pháp đường chạy nhị phân.
ª B2: Xây dựng tập K chứa các siêu khóa
Ö K = ∅Ö ∀ Li Xi = N ∪ Li