-Ñoøi hoûi phaûi coù moät heä luaät daãn ñeå suy dieãn loâgic caùc phuï thuoäc haøm.. Khoùa – Thuaät toaùn tìm khoùa Baøi Toaùn Tìm khoùa:[r]
(1)PHỤ THUỘC HÀM
1 Định nghóa
2 Biểu diễn Pth đồ thị
3 Suy diễn logic phụ thuộc hàm Hệ tiên đề Amstrong
5 Bao đóng
(2)PHỤ THUỘC HÀM
Phụ thuộc hàm (Functional Dependency) cơng cụ dùng để biểu diễn, cách hình thức, số ràng buộc tồn vẹn
Phương pháp biểu diễn có nhiều ưu điểm áp dụng
cơng cụ tốn học để giải tốn tìm khóa đánh giá chất lượng thiết kế CSDL
GIỚI THIỆU
(3)1 Định nghóa
Quan hệ R định nghĩa tập thuộc tính U = { A1, A2, , An}
A, B U tập tập thuộc tính U
Nếu tồn ánh xạ f: A B ta nói A xác định hàm B, hay B phụ thuộc hàm vào A
(4)1 Định nghóa
Định nghĩa hình thức phụ thuộc hàm
nhö sau:
Quan hệ Q (A, B, C) có phụ thuộc hàm A xác định B (ký hiệu A B) nếu:
q, q’ Q, cho q.A = q’.A q.B = q’.B
Nghĩa là: ứng với giá trị A có
một giá trị B
A vế trái phụ thuộc hàm, B vế
phải phụ thuộc hàm
(5)1 Định nghóa
Ví dụ:
Trong quan heä Sinhvien (Masv, Hoten, Phai, NgSinh, Quequan, Diachi)
Có phụ thuộc hàm sau:
Masv Quequan, Diachi
Masv, Hoten Ngsinh, Quequan
Không có phụ thuộc hàm sau:
(6)1 Định nghóa
Trong QuanHệ CHITIẾT_HĐ (Số-hóa-đơn, Mã-hàng, Số-lượng, Đơn-giá, Trị-giá)
có phụ thuộc hàm sau:
(7)2 Biểu diễn Pth đồ thị
Pth biểu diễn đồ thị có hướng:
Các nút đồ thị chia thành loại:
Nút thuộc tính: biểu diễn tên thuộc
tính
Nút phụ thuộc hàm: biểu diễn hình
trịn có số thứ tự pth
Các cung đồ thị có loại:
(8)2 Biểu diễn Pth đồ thị Cho R (A, B, C, D, E, H)
(9)2 Biểu diễn Pth đồ thị Cho R (A, B, C, D, E, G)
(10)3 Suy diễn logic Pth
Cho lược đồ quan hệ R với tập thuộc tính
U tập Pth F
X Y laø pth; X,Y U
Ta nói X Y suy diễn lơgic từ F
nếu
r R, r thỏa tất pth F r
cũng thỏa X Y
(11)3 Suy diễn logic Pth
Ví dụ:
Với F = {X Y, X Z, Y T }
Thì ta có phụ thuộc hàm X YZ X
(12)4 Hệ tiên đề Amstrong
Năm 1974, Amstrong đưa hệ tiên đề (gọi hệ luật dẫn Amstrong) sau:
Cho lược đồ quan hệ Q với tập T.tính U X, Y, Z, W U Pth có tính chất sau:
Tính phản xạ:
Nếu Y X X Y Tính tăng trưởng:
Nếu X Y XZ YZ (Z U) Tính bắc cầu:
(13)4 Hệ tiên đề Amstrong
Ví dụ:
Cho F = {AB C, C A } CMR: BC ABC
Ta coù: (1) C A (giả thiết)
(2) BC AB (tăng trưởng 1)
(14)4 Hệ tiên đề Amstrong
Ví dụ:
1/ Cho F = {A B, BC D } CMR: AC BCD
(15)4 Hệ tiên đề Amstrong
Các luật bổ sung
Cho lược đồ quan hệ Q với tập T.tính U X, Y, Z, W U Pth có tính chất sau:
Luật phân rã:
Nếu X YZ X Y X Z Luật hợp:
(16)4 Hệ tiên đề Amstrong
Ví dụ: Cho R(A,B,C,D,E,G,H) CMR: ABE với
F = {ABC, BD, CDE, CEGH, GA }
Ta có: (1) ABC (cho trước)
(2) ABAB (tính chất phản xạ)
(3) ABB (luật tách)
(4) BD (cho trước)
(5) ABD (bắc cầu & 4) (6) ABCD (hợp & 5)
(7) CDE (cho trước)
(17)4 Hệ tiên đề Amstrong
Ví dụ:
Cho R(A,B,C,D,E,G,H,I,J)
F = {ABE, AGJ, BEI, EG, GIH } CMR: ABGH
1) ABE (cho trước – f1) 2) ABAB (phản xạ)
3) ABB (luật tách)
4) ABBE (hợp & 3) 5) BEI (cho trước - f3) 6) ABI (bắc cầu & 5) 7) EG (cho trước - f4)
(18)5 Bao đóng (Closure)
Gọi F+ bao đóng (Closure) F, tức tập
các phụ thuộc hàm suy diễn lôgic từ F
Nếu F = F+ ta nói F họ đầy đủ (full family)
(19)5 Bao đóng (Closure)
Bài tốn thành viên (MemberShip): Nêu vấn đề
Kiểm tra Pth X Y có suy diễn lơgíc từ F khơng? (tức X Y F+ ? )
-Đây tốn khó giải
(20)5 Bao đóng (Closure)
Bài tốn thành viên – ví dụ:
Cho lược đồ Q(ABCDEG)
F = {AE C, CG A, BD G, GA E }
CMR: BDC Q+ F+ (Q+ = ABCDEG)
Ta có: (1) BDCBDC (phản xạ)
(2) BDG (giả thiết f3)
(3) CGA (giả thieát f2)
(4) BDCA (tựa bắc cầu 2,3)
(5) BDCGA (hợp & 4)
(21)6 Bao đóng tập thuộc tính
Định nghĩa: Bao đóng tập thuộc tính X
đối với tập Pth F (ký hiệu: X+
F ) tập
tất thuộc tính A suy dẫn từ X nhờ tập bao đóng F (F+)
X+F = { A X A F+ }
Nhaän xét:
(22)6 Bao đóng tập thuộc tính
Thuật tốn Tìm bao đóng tập thuộc tính
Input: Tập U hữu hạn thuộc tính & tập
các Pth F U & X U
Output: X+ F
Phương pháp: Tính liên tiếp X0, X1, X2, … theo
(23)6 Bao đóng tập thuộc tính
Thuật tốn Tìm bao đóng tập thuộc tính
1.X0 = X
2.Xi+1 = Xi A Sao cho (Y Z ) F, maø A Z vaø Y Xi
3.Cho đến Xi+1 = Xi
(24)6 Bao đóng tập thuộc tính
Tìm bao đóng tập thuộc tính – Ví dụ
Cho R(U) với U=ABCDEG
F = {AB C, C A, BC D, ACD B,
D EG, BE C, CG BD, CE AG } Tính X+
F , với:
(25)6 Bao đóng tập thuộc tính
Tìm bao đóng tập thuộc tính – Ví dụ
Xi Tập Pth Xi+1
X0= D D EG DE
X1= DE D EG DEG
X2= DEG
(26)6 Bao đóng tập thuộc tính
F = {AB C, C A, BC D, ACD B,D EG, BE C, CG BD, CE AG }
Tìm bao đóng tập thuộc tính – Ví dụ
Xi Tập Pth Xi+1
X0= BD D EG BDEG
X1= BDEG D EG, BE C BCDEG X2= BCDEG C A, BC D,
D EG, BE C, CG BD, CE AG
ABCDEG
X3= ABCDEG Tất ABCDEG
(27)6 Bao đóng tập thuộc tính
Tìm bao đóng tập thuộc tính – Ví dụ
Cho R(U) với U=ABCDEGH
F = {B A, DA CE, D H, GH C, AC D }
Tính X+
F , với:
X= BD; X+
F = ABCDEH
X= AC; X+
(28)7 Khóa – Thuật tốn tìm khóa Định nghĩa:
• R lược đồ quan hệ định nghĩa tập
các thuộc tính U = { A1, A2, , An }, với tập phụ thuộc hàm F = { f1, f2, , fm } xác
định R K U khóa R thỏa mãn hai điều kiện sau đây:
(29)7 Khóa – Thuật tốn tìm khóa Bài Tốn Tìm khóa:
• Xác định tất khóa lược đồ
quan hệ Bài toán giải qua giai đoạn:
1. Giai đoạn 1: Xây dựng tập S chứa tất
caùc siêu khóa R
2. Giai đoạn 2: Xây dựng tập K chứa tất
(30)7 Khóa – Thuật tốn tìm khóa Bài Tốn Tìm khóa:
Để xác định tất siêu khóa
lược đồ quan hệ R, ta xét (2n-1) tập
hợp R+ : X
1, X2, …
Nếu tập Xi của R+ có bao đóng
đúng R+ tập X
i siêu khóa
Nếu R có siêu khóa S siêu khóa
(31)7 Khóa – Thuật tốn tìm khóa Bài Tốn Tìm khóa:
Trong trường hợp R có nhiều siêu
khóa (hữu hạn), để xác định tất
khóa định, ta so sánh cặp siêu khóa Si Sj Nếu Si Sj, ta loại Sj giữ lại Si
Lần lượt so sánh cặp siêu khóa để loại
(32)7 Khóa – Thuật tốn tìm khóa Bài Tốn Tìm khóa – Thuật tốn cải tiến:
Chúng ta cải tiến thuật toán dựa việc phân loại tập thuộc tính R+
A gọi thuộc tính nguồn A không
xuất vế phải Pth không hiển nhiên F Tập thuộc tính nguồn ký hiệu N
A gọi thuộc tính đích A
(33)7 Khóa – Thuật tốn tìm khóa Bài Tốn Tìm khóa – Thuật tốn cải tiến:
Tập hợp thuộc tính khơng phải nguồn
và đích gọi tập trung gian Ký hiệu laø L
Các tập hợp N, D, L rời đơi
và N D L = R+
Nhận xét
(34)7 Khóa – Thuật tốn tìm khóa Thuật toán cải tiến:
B1: Xây dựng 2v tập L: L
1, L2, …
bằng phương pháp đường chạy nhị phân
B2: Xây dựng tập K chứa siêu khóa
K =
Li, Xi = N Li Tính Xi+
F Nếu Xi+F = R+ K = K Xi
(35)7 Khóa – Thuật tốn tìm khóa Ví dụ:
Cho R(ABCDEG) với tập Pth
F = { AE C, CG A, BD G, GA E } Xác định tất khóa R
Ta có:
(36)7 Khóa – Thuật tốn tìm khóa
ACEG Li Xi = N Li Xi+
F
0000 BD BDG 0001 G BDG BDG 0010 E BDE BDEG 0011 EG BDEG BDEG
0100 C BDC ABDCGE=R+
0101 CG BDCG 0110 CE BDCE 0111 CEG BDCEG
1000 A BDA ABCDGE=R+
(37)7 Khóa – Thuật tốn tìm khóa Ví dụ:
Có 12 siêu khóa: BDC, BDA, …
Coù khoùa: BDC, BDA
(38)7 Khóa – Thuật tốn tìm khóa Ví dụ:
Cho R(ABCDEG) với tập Pth F = { EC B, AB C, EB D,
BG A, AE G }
Xác định tất khóa R Ta có:
N = {E} D = {D}
L = {ABCG}
(39)7 Khóa – Thuật tốn tìm khóa
ABCG Li Xi = N Li Xi+
F
0000 E E 0001 G EG EG 0010 C EC BCED
0011 CG ECG ABCDGE=R+
0100 B EB EBD
0101 BG EBG ABCDGE=R+
0110 BC EBC EBCD 0111 BCG EBCG
1000 A EA EAG 1001 AG EAG EAG
(40)7 Khóa – Thuật tốn tìm khóa
ABCG Li Xi = N Li Xi+
F
0000 E E 0001 G EG EG 0010 C EC ECBD
0011 CG ECG ECGBDA=R+
0100 B EB EBD
0101 BG EBG EBGDAC=R+
0110 BC EBC EBCD 0111 BCG EBCG
1000 A EA AEG 1001 AG EAG EAG
1010 AC EAC EACBDG=R+
1011 ACG EACG
1100 AB EAB EABDCG=R+
(41)7 Khóa – Thuật tốn tìm khóa Ví dụ:
(42)Bài tập
Cho lược đồ quan hệ R(ABCDEGH) Với tập phụ thuộc hàm:
(43)F = {AEB; ACDGH; BE}
N={ACD} D={GHE} L={B}
i Li Xi=N U Li Xi+F
(44) Cho lược đồ quan hệ R(ABCDEGH) Với tập phụ thuộc hàm:
(45)