[DATABASE] Tìm mọi khóa của lược đồ quan hệ
Cách thực hiện:
Gọi K là tập khóa cần tìm
- B1. Tìm tập nguồn N và Tính N+F
- Nếu N+F = Q+ thì suy ra lược đồ quan hệ chỉ có một khóa duy nhất là N và kết thúc thuật toán
- Ngược lại, qua bước 2
- B2. Tìm tập trung gian TG
- Nếu TG = thì lược đồ quan hệ có 1 khóa là tập nguồn N và kết thúc thuật toán
- Ngược lại, nếu TG ≠ thì tìm tất cả tập con khác rỗng Xi của tập TG
- Lấy từng Xi hợp với N => N ∪ Xi
- TH1: Nếu (N ∪ Xi)+F = Q+ thì (N ∪ Xi) là khóa, loại tính toán đối với các tập con khác của TG có chứa Xi ; thêm khóa vào tập K
- TH2: Nếu (N ∪ Xi)+F ≠ Q+ thì (N ∪ Xi) không là khóa
- B3. Kết luận: Khóa của lược đồ quan hệ là tập K
------------
Giải thích:
- N là tập thuộc tính nguồn (chứa những thuộc tính chỉ xuất hiện ở vế trái của các phụ thuộc hàm; các thuộc tính không xuất hiện ở cả vế trái và vế phải của phụ thuộc hàm)
- TG là tập thuộc tính trung gian (chứa những thuộc tính vừa xuất hiện ở vế trái, vừa xuất hiện ở vế phải của các phụ thuộc hàm)
- Tập đích là những thuộc tính chỉ xuất hiện ở vế phải của phụ thuộc hàm => những thuộc tính này sẽ không bao giờ tham gia vào khóa
- Nếu ở Bước 1 tập nguồn N = thì cứ nhảy qua bước 2 như bình thường nhé
- N+F là bao đóng của tập nguồn N đối với phụ thuộc hàm F
- Q+ là tập tất cả thuộc tính của quan hệ
------------
Liên kết hỗ trợ:
- Tìm mọi khóa của lược đồ quan hệ: https://www.youtube.com/watch?v=SRAp2i4S-zI
- Tìm bao đóng của tập thuộc tính: https://www.youtube.com/watch?v=x1FnU9nQfzw
- Tìm bao đóng của tập thuộc tính: https://www.youtube.com/watch?v=x1FnU9nQfzw
Nhận xét
Đăng nhận xét