BÀI TẬP VỀ KHÓA VÀ PHỦ TỐI THIỂU Bài 1: Cho lược đồ quan hệ (U, F), với U=(ABCDEGH) F={AB → CDE; AC → BCG; BD → G; ACH → HE; CG → BDE} K= (ACGH) Hỏi K có khóa lược đồ khơng? Giải: Xét K+ = (ACGH)+ = ACGHBED = U => K siêu khóa (CGH)+ = CGHBDE U (AGH)+ = AGH U (CAH)+ = CAHBGDE = U => CAH siêu khóa => K khơng khóa lược đồ Bài 2: Cho lược đồ (U, F) với U=(ABCDE), F={DE → A, B → C, E → AD} a) Tìm khóa lược đồ b) Tìm tất khóa lược đồ Giải: a Tìm khóa lược đồ Cách 1: K=ABCDE Lặp 1: (BCDE)+ = BCDEA = U => K = BCDE Lặp 2: (CDE)+ = CDEA U Lặp 3: (BDE)+ = BDEAC = U => K = BDE Lặp 4: (BE)+ = BECAD = U => K = BE Lặp 5: (B)+ = BC U Vậy khóa K=BE Cách 2: F={DE → A, B → C, E → AD} U = { ABCDE} VT = {D, E, B} VP = {A, C, D} TN = {BE} TG = {D} (BE)+ = BECAD = U => BE khóa tối thiểu BE khóa lược đồ b Tìm tất khóa lược đồ Cách 1: VT = {D, E, B} VP = {A, C, D} TN = {EB} TG = {D} (EB)+ = EBCAD = U Tập tất khóa:{EBD} Cách 2: - Ta có: U = { ABCDE} VT = {D, E, B} VP = {A, C, D} TG = {D} - Lại có: TD = U – VP = {BE} - Ta có: TD TG = {BED} (EBD)+ = EBCAD = U Vậy có khóa tối thiểu là: EBD Bài 3: Cho lược đồ quan hệ R(A,B,C,D,E,F,G,H,I,J) tập phụ thuộc hàm sau đây: F1 = {AB → C, A → DE, B → F, F → GH, D → IJ} a) Tính bao đóng tập thuộc tính sau F1: AC, AF b) Các phụ thuộc hàm sau có suy dẫn từ F1 hay không? AB → H, A → J, AB → I hai cách c) Tìm khóa, tất khóa lược đồ d) Xác định dạng chuẩn cao lược đồ e) Đưa phân rã R dạng chuẩn 3NF bảo tồn thơng tin phụ thuộc hàm Giải: a Tính bao đóng tập thuộc tính sau F1: AC, AF (AC)+ (AC)+ = ACDEIJ (AF)+ => (AF)+ = ADEFGHIJ b Các phụ thuộc hàm sau có suy dẫn từ F1 hay khơng? AB → H, A → J, AB → I hai cách F1 = {AB → C, A → DE, B → F, F → GH, D → IJ} AB → H Cách 1: F → GH => F → G, F → H (Luật Phân Giã) B → F => AB → AF (Luật Tăng Trưởng) AB → AF => AB → A, AB → F (Luật Phân Giã) AB → F, F → H => AB → H (Luật Bắc Cầu) Cách 2: (AB)+ = ABCDEFGHIJ có chứa H => AB → H suy diễn từ F1 A→ J Cách 1: D → IJ => D → I, D → J (Luật Phân Giã) A → DE => A → D, A → E (Luật Phân Giã) A → D, D → J => A → J (Luật Bắc Cầu) Cách 2: (A)+ = ADEIJ có chứa J => A → J suy diễn từ F1 AB → I Cách 1: D → IJ => D → I, D → J (Luật Phân Giã) A → DE => A → D, A → E (Luật Phân Giã) A → D => AB → DB (Luật Tăng Trưởng) AB → DB => AB → D, AB → B (Luật Phân Giã) AB → D, D → J => AB → J (Luật Bắc Cầu) Cách 2: (AB)+ = ABCDEFGH IJ có chứa J => AB → I suy diễn từ F1 c Tìm khóa tất khóa lược đồ F1 = {AB → C, A → DE, B → F, F → GH, D → IJ} * Tìm Khóa: Cách 1: K = U = {ABCDEFGHIJ} Lặp 1: (Bỏ A) (BCDEFGHIJ)+ = BCDEFGHIJ U Lặp 2: (Bỏ B) (ACDEFGHIJ)+ = ACDEFGHIJ U Lặp 3: (Bỏ C) (ABDEFGHIJ)+ = ABCDEFGHIJ = U => K = ABDEFGHIJ Lặp 4: (Bỏ D) (ABEFGHIJ)+ = ABEFGHIJDC = U => K = ABEFGHIJ Lặp 5: (Bỏ E) (ABFGHIJ)+ = ABFGHIJCDE = U => K = ABFGHIJ Lặp 6: (Bỏ F) (ABGHIJ)+ = ABGHIJCDEF = U => K = ABGHIJ Lặp 7: (Bỏ G) (ABHIJ)+ = ABHIJCDEFG = U => K = ABHIJ Lặp 8: (Bỏ H) (ABIJ)+ = ABIJCDEFGH = U => K = ABIJ Lặp 9: (Bỏ I) (ABJ)+ = ABJCDEFGHI = U => K = ABJ Lặp 10: (Bỏ J) (AB)+ = ABCDEFGHIJ = U => K = AB Vậy khóa K=AB Cách 2: VT = {A, B, F, D} VP = {C, D, E, F, G, H, I, J} TN = {AB} TG = {FD} (AB)+ = ABCDEFGHIJ = U => AB khóa tối thiểu lược đồ Vậy AB khóa lược đồ * Tìm tất khóa TN = {AB} TG = {FD} (AB)+ = ABCDEFGHIJ = U Tập tất khóa:{ABF, ABD} d Xác định dạng chuẩn cao lược đồ e Đưa phân rã R dạng chuẩn 3NF bảo tồn thơng tin phụ thuộc hàm F1 = {AB → C, A → DE, B → F, F → GH, D → IJ} AB → C => R1(ABC) A → DE => R2(ADE) B → F => R3(BF) F → GH => R4(FGH) D → IJ => R5(DIJ) AB(R1) Bài 4: Cho lược đồ quan hệ R(U,F), U = ABCDEG F = {AC → D, ABD → C, D → A, D → EG, DG → BC, CD → B, CE → D, DE → AG} a) Tính (AD)+ b) Tìm phủ tối thiểu lược đồ quan hệ c) Tìm khóa lược đồ quan hệ d) Lược đồ quan hệ đạt dạng chuẩn 3NF chưa? Nếu chưa đưa lược đồ quan hệ dạng chuẩn 3NF Giải: a Tính (AD)+ (AD)+ => (AD)+ = ABCDEG b Tìm phủ tối thiểu lược đồ quan hệ Tách vế phải F = {AC → D, ABD → C, D → A, D → E, D →G, DG → B, DG →C, CD → B, CE → D, DE → A, DE →G} Loại bỏ dư thừa thuộc tính D→A D→E D →G AC → D Bỏ thử A, cịn lại C D => (C)+ = C => Khơng D => không bỏ A Bỏ thử C, lại A D => (A)+ = A => Không chứa D => Bỏ C => Kết A D ABD → C Bỏ thử A, lại BD C => (BD)+ = BDAEGC => Chứa C => bỏ A Bỏ thử B, lại AD C => (AD)+ = ADEGBC => Chứa C => Bỏ B Bỏ thử D, lại AB C => (AB)+ = AB => Không chứa C => Không bỏ D => Kết D C DG → B Bỏ thử D, cịn lại G B => (G)+ = G => Khơng chứa B => Không bỏ D Bỏ thử G, lại D B => (D)+ = DAEGBC => Chứa B => Bỏ G => Kết D B DG → C Bỏ thử D, cịn lại G C => (G)+ = G => Khơng chứa C => Không bỏ D Bỏ thử G, lại D C => (D)+ = DAEGBC => Chứa C => Bỏ G => Kết D C CD → B Bỏ thử C, lại D B => (D)+ = DAEGBC => Chứa B => Bỏ C Bỏ thử D, lại C B => (C)+ = C => Không chứa B => Không bỏ D => Kết D B CE → D Bỏ thử C, cịn lại E D => (E)+ = E => Khơng chứa D => Không bỏ C Bỏ thử E, lại C D => (C)+ = C => Không chứa D => Không bỏ E => Kết CE D DE → A Bỏ thử D, lại E A => (E)+ = E => Không chứa A => Không bỏ D Bỏ thử E, lại D A => (D)+ = DAEGBC => Chứa A => Bỏ E => Kết D A DE → G Bỏ thử D, lại E G => (E)+ = E => Không chứa G => Không bỏ D Bỏ thử E, lại D G => (D)+ = DAEGBC => Chứa G => Bỏ E => Kết D G - Kết luận: Phủ tối thiểu F* = {D → E, D G, D C, D B, D A, CE D, A D} Vậy phủ tối thiểu F = {D → EGCBA, CE → D, A → D} c Tìm khóa lược đồ quan hệ K=ABCDEG Lặp (BCDEG)+=ABCDEG=U=>K=BCDEG Lặp (CDEG)+=CDEGAB=U=>K=CDEG Lặp (DEG)+=DEGABC=U=>K=DEG Lặp (EG)+=EGU=> ko loại đc Lặp (DG)+=DGAEBC=U=>K=DG Lặp D+=DAEGBC=U=>K=D Vậy khóa K=D d Lược đồ quan hệ đạt dạng chuẩn 3NF chưa? Nếu chưa đưa lược đồ quan hệ dạng chuẩn 3NF ... (C)+ = C => Không chứa B => Không bỏ D => Kết D B CE → D Bỏ thử C, lại E D => (E)+ = E => Không chứa D => Khơng bỏ C Bỏ thử E, cịn lại C D => (C)+ = C => Không chứa D => Không bỏ E => Kết... A => (E)+ = E => Không chứa A => Không bỏ D Bỏ thử E, lại D A => (D)+ = DAEGBC => Chứa A => Bỏ E => Kết D A DE → G Bỏ thử D, lại E G => (E)+ = E => Không chứa G => Không bỏ D Bỏ thử E,... R(A,B,C,D,E,F,G,H,I,J) tập phụ thuộc hàm sau đây: F1 = {AB → C, A → DE, B → F, F → GH, D → IJ} a) Tính bao đóng tập thuộc tính sau F1: AC, AF b) Các phụ thuộc hàm sau có suy dẫn từ F1 hay không? AB → H,