M thu được sau khi loại bỏ tất cả các phần tử thỏa mãn biểu thức (*) chính là họ tất cả các khóa của lược đồ α..[r]
(1)BÀI 12: PHỦ CỦA TẬP PHỤ THUỘC HÀM
12.1: Định nghĩa tương đương
Định lý: Cho F tập phụ thuộc hàm U f phụ thuộc hàm U, việc sau tương đương
(1)F├f (2)F╞f
(2)12.2: Các tập phụ thuộc hàm tương đương
Cho F G hai tập phụ thuộc hàm tập thuộc tính U, ta nói tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G F+ =G+ Nếu F+ =G+ ta nói F phủ G ngược lại G phủ F
*Thuật toán xác định F G có tương đương hay khơng?
Bước 1: Với phụ thuộc hàm X→Y F ta xác định xem X→Y có suy dẫn từ G khơng?
(3)Ví dụ: Cho lược đồ quan hệ có: F={A→BC, A→D, CD→E}
G={A→BCE, A→ABD, CD→E} a) F có tương đương với G khơng?
b) F có tương đương với G’={A→BCDE} khơng?
a) Ta có AG+ = ABCDE
=> Trong G+có A→BC A→D => F G+=> F+
G+(1)
AF+= ABCDE => F+có A→ BCE A→ABD =>F+G => F+ G+(2)
(4)12.3: Phụ thuộc hàm không dư thừa 12.3.1: Phụ thuộc hàm dư thừa
Cho F tập phụ thuộc hàm trêu U, f phụ thuộc hàm F tức f F, f gọi dư thừa F
như (F-f)+ = F+
(5)* Thuật tốn xác định f= X→Y có phải thành viên F hay không?
Bước 1: Tạm xóa f khỏi F, gọi G tập thu G=F-f, G chuyển qua bước 2, cịn khơng kết thúc
thuật tốn kết luận f không dư thừa F
Bước 2: Giả sử f = X→Y G├f tứcY XG+ f dư thừa F cịn ngược lại f không dư thừa(là thành
viên)
Hay
Bước 1: Tính
(6)Ví dụ: Cho F={AB→C, C→D, AB→D}
Cho biết AB→D có dư thừa F hay không?
Bước 1: G = F-{f} = {AB→C,C→D}
Bước 2: (AB)G+= AB C = ABC D = ABCD D
ÞG├ f
(7)12.3.2: Phủ khơng dư
Cho F G tập phụ thuộc hàm U, F gọi phủ không dư G
+ F+ = G+ (F phủ G)
+f F (F-f)+ F (tức phụ thuộc hàm F không dư thừa)
(8)12.4: Phủ thu gọn
12.4.1: Phụ thuộc hàm có vế trái dư thừa
F tập phụ thuộc hàm lược đồ quan hệ Q, Z tập thuộc tính, Z→Y F Nói phụ thuộc hàm Z→Y
có vế trái dư thừa ( phụ thuộc khơng đầy đủ ) có A Z cho:
F=F-{Z→Y} {(Z-A)→Y}
Ngược lại Z→Y mọt phụ thuộc hàm có vế trái khơng dư thừa hay Y phụ thuộc hàm đầy đủ vào Z hay phụ thuộc hàm đầy đủ
(9)* Thuật toán loại khỏi F phụ thuộc hàm có vế trái dư thừa
Bước 1: Lần lượt thực hiên bước cho phụ thuộc hàm Z→Y F (với phụ thuộc hàm có vế trái có từ thuộc tính trở lên)
Bước 2: Với tập thật X,
(10)12.4.2: Tập phụ thuộc hàm có vế phải thuộc tính
Mỗi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G gồm thuộc tính
Ví dụ:
F={A→BC, B→C, AB→D} ta suy
(11)12.4.3: Tập phụ thuộc hàm không dư thừa(phủ không dư)
Nói F tập phụ thuộc hàm khơng dư thừa không tồn F’ F cho F’ ≡ F Ngược lại, F tập
phụ thuộc hàm dư thừa Ví dụ:
Cho F={A → BC, B → D, AB → D}
(12)* Thuật toán loại khỏi F phụ thuộc hàm dư thừa
Bước 1: Lần lượt xét phụ thuộc hàm X → Y F
Bước 2: Nếu X → Y thành viên F- {X → Y } loại X → Y khỏi F
(13)12.4.4: Tập phụ thuộc hàm tối thiểu
F gọi phụ thuộc hàm tối thiểu (phủ tối thiểu) F thỏa mãn đồng thời ba điều kiên sau:
F tập phụ thuộc hàm có vế trái không dư thừa F tập phụ thuộc hàm có vế phải thuộc tính F tập phụ thuộc hàm không dư thừa
(14)*Thuật tốn tìm phủ tối thiểu tập phụ thuộc hàm
Bước 1: Loại bỏ khỏi F phụ thuộc hàm có vế trái dư thừa
Bước 2: Tách phụ thuộc hàm có vế phải
thuộc tính thành phụ thuộc hàm có vế phải thuộc tính
(15)Ví dụ: Cho lược đồ quan hệ Q(A, B, C, D) tập phụ thuộc hàm F sau F={AB →CD, B →C, C→ D} Hãy tính phủ tối thiểu F?
Bước 1: AB →CD phụ thuộc hàm có vế trái dư thừa? B →CD F+?
Trả lời: B+ = BCD => B →CD F+
Vậy AB →CD phụ thuộc hàm có vế trái dư thừa A
ÞKết bước là:
F={B →CD, B →C, C→ D}
(16)Bước 3: Trong F1tt , B→C phụ thuộc hàm dư thừa?
B→C G+ ? với G= F1tt -{B→C} = {B→D, C→D}
BG+= BD => B→C G+ => F1tt ,B→C không
dư thừa
Trong F1tt , B→D phụ thuộc hàm dư thừa?
B→D G+ ?với G =F1tt -{B→D} = {B→C, C→D}
BG+= BCD => B→D G+ => F1tt ,B→D dư
thừa
(17)BÀI 14:KHÓA CỦA LƯỢC ĐỒ QUAN HỆ
14.1: Khóa siêu khóa
Đn1: Cho lược đồ quan hệ α=(U,F), KU K+=U, ta nói K siêu khóa
Chú ý: Điều kiện K+=U thay K →U K→ U\K
Đn2: Cho lược đồ quan hệ α=(U,F), tập KU gọi
(18)Chú ý: Định nghĩa tương đương với định nghĩa :
Cho lược đồ quan hệ α=(U,F), tập KU gọi khóa
lược đồ α thỏa mãn: a) K→ UF+
b)K1K K1 → UF+
Hai điều kiện tương đương với: a) K+=U
b)AK (K-{A})+U
Hoặc tương đương với a)K→U
(19)*Tính chất khóa siêu khóa
1 Hợp siêu khóa siêu khóa
2 Giao siêu khóa chưa siêu khóa Hai khóa khơng giao
4 Hợp khóa khóa lược đồ có
duy khóa
5 Một lược đồ có nhiều khóa Bản thân U siêu khóa
(20)* Tìm siêu khóa lược đồ
Cho lược đồ quan hệ α=(U,F), tìm siêu khóa K lược đồ
Ta tìm siêu khóa K lược đồ theo bước sau: Đặt L= Li |Li →Ri F
Đặt R= Ri |Li→Ri F
Đặt K = U\R L K siêu khóa
(21)14.2: Họ Sperner khóa
Nếu gọi Kα tập tất khóa lược đồ α=(U,F), phần tử Kα tập thuộc tính tập hợp khơng bao
Định nghĩa: Họ Sperner U họ M ={X|X U}
cho hai phần tử M không bao
(22)14.3: Một số vấn đề khóa
14.3.1: Kiểm tra tập cho trước có phải là khóa hay khơng?
Cho K U hỏi K có phải khóa hay khơng?
Cách làm: Tính
+)Nếu U K khơng khóa lược đồ +)Nếu K+=U chứng tỏ K siêu khóa
Để kiểm tra K có phải khóa khơng ta lấy tập thực K, tất tập thực K khơng siêu khóa chứng tỏ K khóa, tồn tập thực K siêu khóa K khơng phải
(23)14.3.2: Tìm khóa lược đồ quan hệ
Cho lược đồ α=(U,F), tìm khóa K Tư tưởng chung:
B1) Trước hết chọn siêu khóa K
B2) Từ siêu khóa kiểm tra xem có phải khóa khơng
B3) Nếu K khóa dừng thuật toán, ngược lại chuyển bước
(24)14.3.3: Giao tất khóa
Ký hiệu Iα tập mà phần tử tham gia vào tất khóa lược đồ hay Iα giao tất khóa lược đồ
Ký hiệu Nα tập mà phần tử khơng tham gia vào khóa lược đồ
Ký hiệu Sα ={U\ (Ri -Li )| Li →RiF}
(25)Định nghĩa: Cho lược đồ quan hệ α=(U,F), thuộc tính A
trong U gọi thuộc tính tiền định A có mặt vế phải phụ thuộc hàm A phải xuất vế trái phụ thuộc hàm thuộc tính A khơng xuất phụ thuộc hàm
Định lý 1: Cho lược đồ quan hệ α=(U,F),
gọi N={ (Ri -Li )| Li Iα} N Nα (hay N tập
(26)Định lý 2: Với Y Nα X Iα Y (XY)+ \ X Nα
1
Hệ : Từ định lý ta thấy N={ (Ri -Li )| Li Iα }
thì N’=(N Iα)+\Iα Nα
Định lý 3: Cho lược đồ quan hệ α=(U,F), gọi N”=R\L| (R=Ri ,,L= Li )| Li →RiF} (N” tập tất
(27)14.3.4: Thuật tốn tìm giao tất khóa
(28)14.3.5: Thuật toán kiểm tra lược đồ cho có hay nhiều khóa?
Bước 1: Tìm giao tất khóa lược đồ Iα
Bước 2: Nếu (Iα)+= U lược đồ cho có khóa
(29)14.3.6: Thuật tốn tìm tất khóa lược đồ quan hệ
*Thuật toán 1:
Bước 1: Xác định tất tập khác rỗng Q+ Kết
quả tìm giả sử tập thuộc tính X1, X2, …, X2n -1
Bước 2: Tìm bao đóng X1
Bước 3: Siêu khóa X1 có bao đóng Q+
Giả sử ta có siêu khóa S = {S1, S2,…,Sm}
Bước 4: Xây dựng tập chứa tất khóa Q từ tập S
(30)*Thuật toán 2:
B1) Xác định Iα
B2) Nếu (Iα)+ =U kết luận lược đồ có khóa
là Iα kết thúc thth tốn, ngược lại chuyển sang
bước
B3) Xác định N={ (Ri -Li )| Li Iα }
+) Đặt N’ = (IαN)+\ Iα (N’Nα )
+) Đặt B =U\N’\Iα
B4) Nếu |B|=2 (tập B gồm có thuộc tính ), giả sử
B=B1B2 lược đồ có khóa B1 B2, kết thúc
thuật tốn Ngược lại |B| > chuyển sang bước
B5) Tìm tất tập khác rỗng B, ký hiệu tập là{B1, B2, …, Bn} Tính ( Bi Iα)+ (i=1…n),
(31)*Thuật toán 2:
B6) Khi M={ M1, M2, …, Mh} họ tất siêu khóa
của lược đồ α
B7) Loại bỏ siêu khóa khơng tối thiểu khỏi M, tức Mi Mj(*) (i≠j,i,j= ) loại Mj khỏi M Tập