Skip to content

Instantly share code, notes, and snippets.

@KevinNitroG
Last active June 6, 2026 11:33
Show Gist options
  • Select an option

  • Save KevinNitroG/8c564b997027ab0f28feb0eec522c4a7 to your computer and use it in GitHub Desktop.

Select an option

Save KevinNitroG/8c564b997027ab0f28feb0eec522c4a7 to your computer and use it in GitHub Desktop.
BT 3, 4 CSDLNC, kiểm tra thử

Bao đóng

Bài 1

{BD}+F

{BD}+F = {BD}

Duyệt lần 1:

  • Từ f1: {BD}+F = {BCA}
  • Từ f2: {BD}+F = {BCACE}
  • Từ f3: {BD}+F = {BCACEH}

Duyệt lần 2: không thay đổi

Vậy {BD}+F = {BCACEH}

{BCG}+F

{BCG}+F = {BCG}

Duyệt lần 1:

  • Từ f1: {BCG}+F = {BCGA}
  • Từ f5: {BCG}+F = {BCGAD}

Duyệt lần 2:

  • Từ f2: {BCG}+F = {BCGADE}
  • Từ f3: {BCG}+F = {BCGADEH} = U (tập thuộc tính của lược đồ quan hệ Q)

Vậy {BCG}+F = {BCGADEH}


Thành viên

Bài 2

{TX}+F = {TX}

Duyệt lần 1:

  • Từ f1: {TX}+F = {TXV}
  • Từ f3: {TX}+F = {TXVW}
  • Từ f4: {TX}+F = {TXVWZ}

Duyệt lần 2: không thay đổi

Vậy {TX}+F = {TXVWZ}, mà {UV} không thuộc {TXVWZ} nên {TX} -> {UV} không suy dẫn từ F


Khoá

Bài 3

N = U - ∪∀f∈Fright(f) = {ABCDEG} - {CAGE} = {BD}

N+F = {BD}+F = {BDG} ≠ U

D = ∪∀f∈Fright(f) - ∪∀f∈Fleft(f) = {CAGE} - {AECGBD} = ∅

L = U - N+FD = {ABCDEG} - {BDG} = {ACE}

Các tập con của L là {A}, {C}, {E}, {AC}, {AE}, {EC}, {ACE}

  • Xét {BDA}+F = {BDAGEC} = U => {BDA} là khoá của Q. Loại các tập cha của {A} là {AC}, {AE}, {ACE}
  • Xét {BDC}+F = {BDCGAE} = U => {BDC} là khoá của Q. Loại các tập cha của {C} là {AC}, {EC}, {ACE}
  • Xét {BDE}+F = {DBGE} ≠ U => {BDE} không phải là khoá của Q

Vậy có hai khoá tối thiểu của Q là {BDA} và {BDC}

Bài 4

N = U - ∪∀f∈Fright(f) = {MaGV, HoTen, MaMH, TenMH, Phong, Gio} - {HoTen, TenMH, MaMH, Phong} = {MaGV, Gio}

N+F = {MaGV, Gio}+F = {MaGV, Gio, HoTen, Phong, MaMH, TenMH} = U

Vậy có một khoá tối thiểu của Q là {MaGV, Gio}

Bài 5

N = U - ∪∀f∈Fright(f) = {ABCEG} - {BCAG} = {E}

N+F = {E}+F = {E} ≠ U

D = ∪∀f∈Fright(f) - ∪∀f∈Fleft(f) = {BCAG} - {ABCEG} = ∅

L = U - N+FD = {ABCEG} - {E} = {ABCG}

Các tập con của L là {A}, {B}, {C}, {G}, {AB}, {AC}, {AG}, {BC}, {BG}, {CG}, {ABC}, {ABG}, {ACG}, {BCG}, {ABCG}

  • Xét {EA}+F = {EAG} ≠ U => {EA} không phải là khoá của Q
  • Xét {EB}+F = {EBAGC} = U => {EB} là khoá của Q. Loại các tập cha của {B} là {AB}, {BC}, {BG}, {ABC}, {ABG}, {BCG}, {ABCG}
  • Xét {EC}+F = {ECBAG} = U => {EC} là khoá của Q. Loại các tập cha của {C} là {AC}, {BC}, {CG}, {ABC}, {ACG}, {BCG}, {ABCG}
  • Xét {EG}+F = {EG} ≠ U => {EG} không phải là khoá của Q
  • Xét {EAG}+F = {EAG} ≠ U => {EAG} không phải là khoá của Q

Vậy có hai khoá tối thiểu của Q là {EB} và {EC}


Phủ tối thiểu

Bài 6

B1. Phân rã vế phải

  • f1: ABH -> C
  • f2: ABH -> K
  • f3: A -> D
  • f4: C -> E
  • f5: BGH -> F
  • f6: F -> A
  • f7: F -> D
  • f8: E -> F
  • f9: BH -> E

B2. Loại bỏ các thuộc tính vế trái thừa

Xét f1: ABH -> C
  • {A}+F-{f1} = {AD} không chứa C
  • {B}+F-{f1} = {B} không chứa C
  • {H}+F-{f1} = {H} không chứa C
  • {AB}+F-{f1} = {ABD} không chứa C
  • {AH}+F-{f1} = {AHD} không chứa C
  • {BH}+F-{f1} = {BHEFAD} không chứa C, nhưng chứa A, thay thế f1: ABH -> C bằng f1: BH -> C
Xét f2: ABH -> K
  • {A}+F-{f2} = {AD} không chứa K
  • {B}+F-{f2} = {B} không chứa K
  • {H}+F-{f2} = {H} không chứa K
  • {AB}+F-{f2} = {ABD} không chứa K
  • {AH}+F-{f2} = {AHD} không chứa K
  • {BH}+F-{f2} = {BHEFAD} không chứa K, nhưng chứa A, thay thế f2: ABH -> K bằng f2: BH -> K
Xét f5: BGH -> F
  • {B}+F-{f5} = {B} không chứa F
  • {G}+F-{f5} = {G} không chứa F
  • {H}+F-{f5} = {H} không chứa F
  • {BH}+F-{f5} = {BHEFAD} có chứa F => G thừa. Thay thế f5: BGH -> F bằng f5: BH -> F
Xét f9: BH -> E
  • {B}+F-{f9} = {B} không chứa E
  • {H}+F-{f9} = {H} không chứa E

Vậy ta có:

  • f1: BH -> C
  • f2: BH -> K
  • f3: A -> D
  • f4: C -> E
  • f5: BH -> F
  • f6: F -> A
  • f7: F -> D
  • f8: E -> F
  • f9: BH -> E

B3. Loại bỏ các phụ thuộc hàm thừa

Xét f3: A -> D
  • {A}+F-{f3} = {A}
Xét f4: C -> E
  • {C}+F-{f4} = {C}
Xét f5: BH -> F
  • {BH}+F-{f5} = {BHCKEF} chứa F => f5 thừa nên loại f5

Vậy ta được:

  • f1: BH -> C
  • f2: BH -> K
  • f3: A -> D
  • f4: C -> E
  • f5: F -> A
  • f6: F -> D
  • f7: E -> F
  • f8: BH -> E
Xét f6: F -> D
  • {F}+F-{f6} = {FAD} chứa D => f6 thừa nên loại f6

Vậy ta được:

  • f1: BH -> C
  • f2: BH -> K
  • f3: A -> D
  • f4: C -> E
  • f5: F -> A
  • f6: E -> F
  • f7: BH -> E
Xét f7: BH -> E
  • {BH}+F-{f7} = {BHCKEF} chứa E => f7 thừa nên loại f7
Kết luận

Phủ tối thiểu của tập PTH F là:

  • f1: BH -> C
  • f2: BH -> K
  • f3: A -> D
  • f4: C -> E
  • f5: F -> A
  • f6: E -> F

Bài 7

B1. Phân rã vế phải

  • f1: A -> B
  • f2: A -> C
  • f3: BE -> G
  • f4: E -> D
  • f5: D -> G
  • f6: A -> B
  • f7: AG -> B
  • f8: AG -> C

Ta thấy f6 trùng f1 nên loại bỏ f6: A -> B. Giảm các f7, f8 về 1 bậc

  • f1: A -> B
  • f2: A -> C
  • f3: BE -> G
  • f4: E -> D
  • f5: D -> G
  • f6: AG -> B
  • f7: AG -> C

B2. Loại bỏ các thuộc tính vế trái thừa

Xét f3: BE -> G
  • {B}+F-{f3} = {B} không chứa G
  • {E}+F-{f3} = {EDG} không chứa G

Vâỵ f3 không bị loại bỏ

Xét f6: AG -> B
  • {A}+F-{f6} = {ABC} chứa B => G thừa. Thay thế f6: AG -> B bằng f6: A -> B nhưng trùng với f1: A -> B nên loại bỏ f6

  • f1: A -> B

  • f2: A -> C

  • f3: BE -> G

  • f4: E -> D

  • f5: D -> G

  • f6: AG -> C

Xét f6: AG -> C
  • {A}+F-{f6} = {ABC} chứa C => G thừa. Thay thế f6: AG -> C bằng f6: A -> C nhưng trùng với f2: A -> C nên loại bỏ f6

  • f1: A -> B

  • f2: A -> C

  • f3: BE -> G

  • f4: E -> D

  • f5: D -> G

B3. Loại bỏ các phụ thuộc hàm thừa

Xét f3: BE -> G
  • {B}+F-{f3} = {B} không chứa G
Xét f5: D -> G
  • {D}+F-{f5} = {D} không chứa G
Kết luận

Phụ thuộc hàm tối thiểu là:

  • f1: A -> B
  • f2: A -> C
  • f3: BE -> G
  • f4: E -> D
  • f5: D -> G

Bài 8

B1. Phân rã vế phải

  • f1: A -> B
  • f2: A -> D
  • f3: A -> E
  • f4: J -> H
  • f5: J -> I
  • f6: E -> D
  • f7: E -> G
  • f8: BC -> G
  • f9: BC -> H
  • f10: DE -> G
  • f11: H -> J
  • f12: HG -> J

B2. Loại bỏ các thuộc tính vế trái thừa

Xét f8: BC -> G
  • {B}+F-{f8} = {B} không chứa G
  • {C}+F-{f8} = {C} không chứa G

Vậy f8 không bị loại bỏ

Xét f9: BC -> H
  • {B}+F-{f9} = {B} không chứa H
  • {C}+F-{f9} = {C} không chứa H

Vậy f9 không bị loại bỏ

Xét f10: DE -> G
  • {D}+F-{f10} = {D} không chứa G

  • {E}+F-{f10} = {EDG} chứa G => D thừa, thay thế f10: DE -> G bằng f10: E -> G nhưng trùng với f7: E -> G nên loại bỏ f10

  • f1: A -> B

  • f2: A -> D

  • f3: A -> E

  • f4: J -> H

  • f5: J -> I

  • f6: E -> D

  • f7: E -> G

  • f8: BC -> G

  • f9: BC -> H

  • f10: H -> J

  • f11: HG -> J

Xét f11: HG -> J
  • {H}+F-{f11} = {HJ} chứa J => G thừa, thay thế f11: HG -> J bằng f11: H -> J nhưng trùng với f10: H -> J nên loại bỏ f11

  • f1: A -> B

  • f2: A -> D

  • f3: A -> E

  • f4: J -> H

  • f5: J -> I

  • f6: E -> D

  • f7: E -> G

  • f8: BC -> G

  • f9: BC -> H

  • f10: H -> J

B3. Loại bỏ các phụ thuộc hàm thừa

Xét f2: A -> D
  • {A}+F-{f2} = {ABDEG} chứa D => f2 thừa nên loại bỏ f2

  • f1: A -> B

  • f3: A -> E

  • f4: J -> H

  • f5: J -> I

  • f6: E -> D

  • f7: E -> G

  • f8: BC -> G

  • f9: BC -> H

  • f10: H -> J

Xét f4: J -> H
  • {J}+F-{f4} = {JI} không chứa H => f4 không bị loại bỏ
Xét f9: BC -> H
  • {BC}+F-{f9} = {BCG} không chứa H => f9 không bị loại bỏ
Xét f7: E -> G
  • {E}+F-{f7} = {ED} không chứa G => f7 không bị loại bỏ
Xét f8: BC -> G
  • {BC}+F-{f8} = {BCH} không chứa G => f8 không bị loại bỏ

Kết luận

Phủ tối thiểu của tập PTH F là:

  • f1: A -> B
  • f2: A -> E
  • f3: J -> H
  • f4: J -> I
  • f5: E -> D
  • f6: E -> G
  • f7: BC -> G
  • f8: BC -> H
  • f9: H -> J

Đề 2020 - 2021

Câu 1

Q(TUVWXYZ) F = {X -> V; Z -> X; T -> W; {TX} -> Z; {WY} -> {UV}}

Đặt tên:

  • f1: X -> V
  • f2: Z -> X
  • f3: T -> W
  • f4: {TX} -> Z
  • f5: {WY} -> {UV}

a. {TX} -> {UV} có suy dẫn từ F không

Trước tiên {TX}+F = {TX}

Duyệt lần 1:

  • Từ f1: {TX}+F = {TVX}
  • Từ f3: {TX}+F = {TVWX}
  • Từ f4: {TX}+F = {TVWXZ}

Duyệt lần 2:

  • Từ f2: {TX}+F = {TVWXZ} = U (tập thuộc tính của lược đồ quan hệ F)

Vậy {TX}+F = {TVWXZ}

Mà {UV} không thuộc {TVWXZ} nên {TX}

Nên PTH {TX} -> {UV} không suy dẫn từ F

b. Xác định khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {TUVWXYZ} - {UVXWZ} = {TY}

N+F = {TY}+F = {TY} ≠ U

D = ∪∀f∈Fright(f) - ∪∀f∈Fleft(f) = {UVXWZ} - {TWXYZ} = {UV}

L = U - N+FD = {TUVWXYZ} - {TUVY} = {XZ}

Các tập con của L là {X}, {Z}, {XZ}

  • Xét {TXY}+F = {TUVWXYZ} = U => {TXY} là khoá của Q. Loại các tập cha của {X} là {XZ}
  • Xét {TYZ}+F = {TUVWXYZ} = U => {TYZ} là khoá của Q. Loại các tập cha của {Z} là {XZ}

Vậy có hai khoá tối thiểu của Q là {TXY} và {TYZ}

Câu 2

F={AB → CD; AB → C; AB → D}

B1

Vậy ta có:

  • f1: AB → C
  • f2: AB → D
  • f3: B → C
  • f4: C → D

B2

Xét f1: AB → C

  • {A}+F - f1 = {A} không chứa C
  • {B}+F - f1 = {BCD} chứa C. => A thừa. Thay thế f1: AB → C bởi f1 : B → C, nhưng trùng với f3: B → C. → Loại bỏ f1.

Xét f2: AB → D

  • {A}+F - f2 = {A} không chứa D
  • {B}+F - f2 = {BCD} chứa D. → A thừa. Thay thế f2: AB → D bởi f2: B → D.

Vậy ta có:

  • f1: B → D
  • f2: B → C
  • f3: C → D

B3

Xét f1: B → D

  • {B}+F - f1 = {BCD} chứa C. → f1 thừa nên loại f1

Vậy phủ tối thiểu của tập PTH F là:

  • f1: B → C
  • f2: C → D

Câu 3

a. Các khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {ABCDEFGHIJKL} - {BCDEFHIJKL} = {AG}

N+F = {AG}+F = {ABCDEFGHIJKL} = U

Vậy Q có khoá duy nhất là {AG}


Đề 2021 - 2022

Câu 1

a. Minimal cover C of R

B1. Phân rã vế phải
  • f1: AB -> C
  • f2: AB -> D
  • f3: A -> B
  • f4: B -> C
  • f5: C -> E
  • f6: BD -> A
B2. Loại bỏ các thuộc tính vế trái thừa
Xét f1: AB -> C
  • {A}+F-{f1} = {ABCDE} chứa C => B thừa. Thay thế f1: AB -> C bằng f1: A -> C

  • f1: A -> C

  • f2: AB -> D

  • f3: A -> B

  • f4: B -> C

  • f5: C -> E

  • f6: BD -> A

Xét f2: AB -> D
  • {A}+F-{f2} = {ABCE} không chứa D, nhưng chứa B. Thay thế f2: AB -> D bằng f2: A -> D

  • f1: A -> C

  • f2: A -> D

  • f3: A -> B

  • f4: B -> C

  • f5: C -> E

  • f6: BD -> A

Xét f6: BD -> A
  • {B}+F-{f6} = {BC} không chứa A
  • {D}+F-{f6} = {D} không chứa A

Vậy f6 không bị loại bỏ

B3. Loại bỏ các phụ thuộc hàm thừa
Xét f1: A -> C
  • {A}+F-{f1} = {ABCE} chứa C => f1 thừa. Loại bỏ f1

Vậy phủ tối thiểu của tập PTH F là:

  • f1: A -> D
  • f2: A -> B
  • f3: B -> C
  • f4: C -> E
  • f5: BD -> A

b. Các khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {ABCDE} - {ABCDE} = ∅

D = ∪∀f∈Fright(f) - ∪∀f∈Fleft(f) = {ABCDE} - {ABCD} = {E}

L = U - N+FD = {ABCDE} - {E} = {ABCD}

Các tập con của L là {A}, {B}, {C}, {D}, {AB}, {AC}, {AD}, {BC}, {BD}, {CD}, {ABC}, {ABD}, {ACD}, {BCD}, {ABCD}

  • Xét {A}+F = {ABCDE} = U => {A} là khoá của Q. Loại các tập cha của {A} là {AB}, {AC}, {AD}, {ABC}, {ABD}, {ACD}, {ABCD}
  • Xét {B}+F = {BCE} ≠ U, nên {B} không phải là khoá của Q
  • Xét {C}+F = {CE} ≠ U, nên {C} không phải là khoá của Q
  • Xét {D}+F = {D} ≠ U, nên {D} không phải là khoá của Q
  • Xét {BC}+F = {BCE} ≠ U, nên {BC} không phải là khoá của Q
  • Xét {BD}+F = {ABDCE} = U => {BD} là khoá của Q. Loại các tập cha của {BD} là {BCD}, {ABD}, {BCD}, {ABCD}
  • Xét {CD}+F = {CDE} ≠ U, nên {CD} không phải là khoá của Q

Vậy có hai khoá tối thiểu của Q là {A} và {BD}

Câu 2

Có F = {f1: AB -> C; f2: A -> DE; f3: B -> F; f4: F -> GH; f5: D -> IJ}

a. Tìm khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {ABCDEFGHIJ} - {CDEFGHIJ} = {AB}

N+F = {AB}+F = {ABCDEFGHIJ} = U, nên có một khoá tối thiểu của Q là {AB}

Đề thi 2020 - 2021

Câu 3

Q(ABCDEFGHIJKL)

F = {f1: A -> BCDEF; f2: I -> J; f3: G -> HIJ; f4: AG -> K; f5: K -> L; f6: E -> F}

a. Các khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {ABCDEFGHIJKL} - {BCDEFHIJKL} = {AG}

N+F = {AG}+F = {ABCDEFGHIJKL} = U

Vậy Q có khoá duy nhất là {AG}

b. Chuẩn hoá Q sao cho vẫn bảo toàn thông tin

Q chưa đạt dạng 2NF vì có PTH riêng phần: f1: A -> BCDEF => Tách làm hai quan hệ

  • Q1(A, B, C, D, E, F): không đạt 3NF vì có PTH bắc cầu f6: E -> F => Tách làm hai quan hệ
  • Q2(A, G, H, I, J, K, L): không đạt 2NF vì có PTH riêng phần f3: G -> HIJ => Tách làm hai quan hệ

Ta tách được:

  • Q11(A, B, C, D, E): đạt 3 NF
  • Q12(E, F): đạt 3 NF
  • Q21(G, H, I, J): không đạt 3NF vì có PTH bắc cầu f2: I -> J => Tách làm hai quan hệ
  • Q22(A, G, K, L): không đạt 3NF vì có PTH bắc cầu f5: K -> L => Tách làm hai quan hệ

Ta tách được:

  • Q211(I, J): đạt 3NF
  • Q212(G, H, I): đạt 3NF
  • Q221(A, G, K): đạt 3NF
  • Q222(K, L): đạt 3NF

Vậy Q được chuẩn hoá thành các quan hệ:

  • Q11(A, B, C, D, E)
  • Q12(E, F)
  • Q211(I, J)
  • Q212(G, H, I)
  • Q222(K, L)
  • Q221(A, G, K)

c. Chứng minh cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin

1 2 3 4 5 6 7 8 9 10 11 12
A B C D E F G H I J K L
Q1(ABCDE) a1 a2 a3 a4 a5 b16 b17 b18 b19 b110 b111 b112
Q12(EF) b21 b22 b23 b24 a5 a6 b27 b28 b29 b210 b211 b212
Q211(IJ) b31 b32 b33 b34 b35 b36 b37 b38 a9 a10 b311 b312
Q212(GHI) b41 b42 b43 b44 b45 b46 a7 a8 a9 b410 b411 b412
Q222(KL) b51 b52 b53 b54 b55 b56 b57 b58 b59 b510 a11 a12
Q221(AGK) a1 b62 b63 b64 b65 b66 a7 b68 b69 b610 a11 b612

Sau khi xét:

1 2 3 4 5 6 7 8 9 10 11 12
A B C D E F G H I J K L
Q1(ABCDE) a1 a2 a3 a4 a5 a6 b17 b18 b19 b110 b111 b112
Q12(EF) b21 b22 b23 b24 a5 a6 b27 b28 b29 b210 b211 b212
Q211(IJ) b31 b32 b33 b34 b35 b36 b37 b38 a9 a10 b311 b312
Q212(GHI) b41 b42 b43 b44 b45 b46 a7 a8 a9 a10 b411 b412
Q222(KL) b51 b52 b53 b54 b55 b56 b57 b58 b59 b510 a11 a12
Q221(AGK) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12

Vậy cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin vì có Q221(AGK) chứa tất cả các thuộc tính của Q


Đề thi 2021 - 2022

Câu 2

Q(ABCDEFGHIJ)

Có F = {f1: AB -> C; f2: A -> DE; f3: B -> F; f4: F -> GH; f5: D -> IJ}

a. Tìm khoá tối thiểu của Q

N = U - ∪∀f∈Fright(f) = {ABCDEFGHIJ} - {CDEFGHIJ} = {AB}

N+F = {AB}+F = {ABCDEFGHIJ} = U, nên có một khoá tối thiểu của Q là {AB}

b. Chứng minh Q đạt BCNF, đảm bảo thông tin

Q chưa đạt 2NF vì có PTH riêng phần f2: A -> DE => Tách làm hai quan hệ

  • Q1(A, D, E): đạt 3NF
  • Q2(A, B, C, F, G, H, I, J): không đạt 2NF vì có PTH riêng phần f3: B -> F => Tách làm hai quan hệ

Ta tách được:

  • Q21(B, F): đạt 3NF
  • Q22(A, B, C, G, H, I, J): đạt 3NF

Vậy Q được chuẩn hoá thành các quan hệ:

  • Q1(A, D, E)
  • Q21(B, F)
  • Q22(A, B, C, G, H, I, J)

Xét đảm bảo thông tin:

1 2 3 4 5 6 7 8 9 10
A B C D E F G H I J
Q1(ADE) a1 b12 b13 a4 a5 b16 b17 b18 b19 b110
Q21(BF) b21 a2 b23 b24 b25 a6 b27 b28 b29 b210
Q22(ABCGHIJ) a1 a2 a3 b34 b35 b36 a7 a8 a9 a10

Sau khi xét:

1 2 3 4 5 6 7 8 9 10
A B C D E F G H I J
Q1(ADE) a1 b12 b13 a4 a5 a6 b17 b18 b19 b110
Q21(BF) b21 a2 b23 b24 b25 a6 b27 b28 b29 b210
Q22(ABCGHIJ) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10

Vậy cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin vì có Q22(ABCGHIJ) chứa tất cả các thuộc tính của Q

c. Cho rằng Q chuẩn hoá thành các quan hệ R1(AB, C, D), R2(D, E), R3(B, F), R4(F, G, H), R5(D, I, J). Chứng minh cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin

1 2 3 4 5 6 7 8 9 10
A B C D E F G H I J
R1(ABCD) a1 a2 a3 a4 b15 b16 b17 b18 b19 b110
R2(DE) b21 b22 b23 a4 a5 b26 b27 b28 b29 b210
R3(BF) b31 a2 b33 b34 b35 a6 b37 b38 b39 b310
R4(FGH) b41 b42 b43 b44 b45 a6 a7 a8 b49 b410
R5(DIJ) b51 b52 b53 a4 b55 b56 b57 b58 a9 a10

Sau khi xét:

1 2 3 4 5 6 7 8 9 10
A B C D E F G H I J
R1(ABCD) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
R2(DE) b21 b22 b23 a4 a5 a6 b27 b28 a9 a10
R3(BF) b31 a2 b33 b34 b35 a6 a7 a8 b39 b310
R4(FGH) b41 b42 b43 b44 b45 a6 a7 a8 b49 b410
R5(DIJ) b51 b52 b53 a4 a5 a6 b57 b58 a9 a10

Vậy cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin vì có R1(ABCD) chứa tất cả các thuộc tính của Q

Câu 1

  1. AI -> EMP (gt)
  2. AI -> EM (chiếu tách 1)
  3. E -> GH (gt)
  4. AI -> GMH (tựa bắc cầu 2 và 3)

Câu 2

Việc gom tất cả các thuộc tính vào một bảng thô duy nhất QUANLYNHAHANG(Q) khiến:

  • Dữ liệu bị dư thừa, khó bảo trì và cập nhật
  • Muốn thêm mới / xoá một nhân viên mới, bắt buộc phải thêm cả hoá đơn, chi nhánh, món ăn, đầu bếp..., tương tự với các trường còn lại
  • Muốn sửa tên một chi nhánh, phải sửa ở nhiều bản ghi khác nhau

Câu 3

N = U - ∪∀f∈Fright(f) = {ABCDEGHIKLMNPS} - {BCDEGHKLNMPS} = {AI}

N+F = {AI}+F = N

Vậy khoá chính tối thiểu của Q là {AI}


Câu 4

Thêm f7: IPS -> A

N = U - ∪∀f∈Fright(f) = {ABCDEGHIKLMNPS} - {ABCDEGHKLMNPS} = {I}

N+F = {I}+F = {KL} ≠ U

D = U∀f∈Fright(f) - U∀f∈Fleft(f) = {ABCDEGHKLMNPS} - {AEHIMPS} = {BCDGKLN}

L = U - N+FD = {ABCDEGHIKLMNPS} - {BCDGKLN} = {AEHIMPS}

Các tập con của L: {AI}, {IPS}, ...

Lần lượt tính bao đóng {NLi}+F của các tập con Li trong L:

  • {AI}+F = U => {AI} là một khoá tối thiểu của Q, loại ...
  • {IPS}+F = U => {IPS} là một khoá tối thiểu của Q, loại ...

Vậy tập các khoá tối thiểu của Q là: {AI}, {IPS}


Câu 5

Có danh sách các phụ thuộc hàm:

  • f1: A -> BCDE
  • f2: E -> GH
  • f3: I -> KL
  • f4: M -> N
  • f5: AI -> EMP
  • f6: AHLP -> S

Bước 1

  • f1: A -> B
  • f2: A -> C
  • f3: A -> D
  • f4: A -> E
  • f5: E -> G
  • f6: E -> H
  • f7: I -> K
  • f8: I -> L
  • f9: M -> N
  • f10: AI -> E
  • f11: AI -> M
  • f12: AI -> P
  • f13: AHLP -> S

Bước 2

Xét:

  • f10:
    • {A}+F-{f10} = {ABCDEGH} có chứa E => I thừa trong f10. Thay f10 bằng f10: A -> E nhưng đã tồn tại là f4 nên loại f10.

Ta được:

  • f1: A -> B
  • f2: A -> C
  • f3: A -> D
  • f4: A -> E
  • f5: E -> G
  • f6: E -> H
  • f7: I -> K
  • f8: I -> L
  • f9: M -> N
  • f10: AI -> M
  • f11: AI -> P
  • f12: AHLP -> S

Xét:

  • f10:
    • {A}+F-{f10} = {ABCDEGH} không chứa M hoặc I
    • {I}+F-{f10} = {IKL} không chứa M hoặc A
  • f11:
    • {A}+F-{f11} = {ABCDEGH} không chứa P hoặc I
    • {I}+F-{f11} = {IKL} không chứa P hoặc A
  • f12:
    • {A}+F-{f12} = {ABCDEGH} không chứa S hoặc L, nhưng chứa H => thay f12 bằng f12: ALP -> S
    • {L}+F-{f12} = {L} không chứa S, A, P
    • {P}+F-{f12} = {P} không chứa S, A, L
    • {AL}+F-{f12} = {ABCDEGHL} không chứa S, P
    • {AP}+F-{f12} = {ABCDEGHP} không chứa S, L
    • {LP}+F-{f12} = {LP} không chứa S, A

Ta được:

  • f1: A -> B
  • f2: A -> C
  • f3: A -> D
  • f4: A -> E
  • f5: E -> G
  • f6: E -> H
  • f7: I -> K
  • f8: I -> L
  • f9: M -> N
  • f10: AI -> M
  • f11: AI -> P
  • f12: ALP -> S

Đó cũng là tập phụ thuộc hàm tối thiểu của Q.


Câu 6

Q(AIBCDEGHKLMNPS)

  1. Q Chưa đạt 3NF vì tồn tại E -> GH là phụ thuộc hàm gián tiếp vào khoá chính AI. Tách:
  • Q1(EGH) đạt 3NF
  • Q2(AIBCDEKLMNPS)
  1. Q2 Chưa đạt 3NF vì tồn tại M -> N là phụ thuộc hàm gián tiếp vào khoá chính AI. Tách:
  • Q21(MN) đạt 3NF
  • Q22(AIBCDEKLMPS)
  1. Q22 Chưa đạt 3NF vì tồn tại A -> BCDE là phụ thuộc hàm gián tiếp vào khoá chính AI. Tách:
  • Q221(ABCDE) đạt 3NF
  • Q222(AIKLMPS)
  1. Q222 Chưa đạt 2NF vì tồn tại ALP -> S là phụ thuộc hàm không đầy đủ vào khoá chính AI. Tách:
  • Q2221(ALPS) đạt 3NF
  • Q2222(AIKLMP)
  1. Q2222 Chưa đạt 3NF vì tồn tại I -> KL là phụ thuộc hàm gián tiếp vào khoá chính AI. Tách:
  • Q22221(IKL) đạt 3NF
  • Q22222(AIMP) đạt 3NF

Vậy Q được chuẩn hoá thành:

  • Q1(EGH)
  • Q21(MN)
  • Q221(ABCDE)
  • Q2221(ALPS)
  • Q22221(IKL)
  • Q22222(AIMP)

Câu 7

1 2 3 4 5 6 7 8 9 10 11 12 13 14
A I E M H L P B C D G K N S
Q1(EGH) a3 a5 a6
Q21(MN) a4 a13
Q221(ABCDE) a1 a3 a8 a9 a10
Q2221(ALPS) a1 a6 a7 a14
Q22221(IKL) a2 a6 a12
Q22222(AIMP) a1 a2 a4 a7

Sau khi xét:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
A I E M H L P B C D G K N S
Q1(EGH) a3 a5 a6
Q21(MN) a4 a13
Q221(ABCDE) a1 a3 a5 a8 a9 a10 a6
Q2221(ALPS) a1 a6 a7 a14
Q22221(IKL) a2 a6 a12
Q22222(AIMP) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a6 a12 a13 a14

Vậy cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin vì có Q22222(AIMP) chứa tất cả các thuộc tính của Q

Câu 1

  1. A -> BCDE (gt)
  2. A -> E (phân rã 1)
  3. E -> GH (gt)
  4. A -> GH (bắc cầu 2, 3)
  5. AI -> GHI (tăng 4 lên I)
  6. AI -> R (gt)
  7. AI -> GHIR (hợp 5, 6)
  8. AI -> GHR (tách I ra khỏi 7)

Câu 2

Việc gom tất cả các thuộc tính vào một bảng thô duy nhất QUANLYGAME(Q) khiến:

  • Dữ liệu bị dư thừa, khó bảo trì và cập nhật

Câu 3

N = U - ∪∀f∈Fright(f) = {ABCDEGHIKLMNOPRS} - {BCDEGHKLNORS} = {AIP}

N+F = {AIP}+F = {ABCDEGHIKLPRS}

D = U∀f∈Fright(f) - U∀f∈Fleft(f) = {BCDEGHKLNORS} - {AEIMHRP} = {BCDGKLNOS}

L = U - N+FD = {ABCDEGHIKLMNOPRS} - {ABCDEGHIKLNOPRS} = {M}

Vậy tập các khoá tối thiểu của Q là: N+FL {AIPM}


Câu 4

Thêm

  • f7: AIP -> S
  • f8: AIS -> P

N = U - ∪∀f∈Fright(f) = {ABCDEGHIKLMNOPRS} - {BCDEGHKLNOPRS} = {AI}

N+F = {AI}+F = {ABCDEGHIKLR}

D = U∀f∈Fright(f) - U∀f∈Fleft(f) = {BCDEGHKLNOPRS} - {AEIMHRPS} = {BCDGKLNO}

L = U - N+FD = {ABCDEGHIKLMNOPRS} - {ABCDEGHIKLNOR} = {MPS}

Các tập con của L: {M}, {P}, {S}, {MP}, {MS}, {PS}, {MPS}

Lần lượt tính bao đóng {NLi}+F của các tập con Li trong L:

ABCDEGHIKLMNOPRS

  • {AIM}+F = {ABCDEGHIKLMNOR} != U
  • {AIP}+F = {ABCDEGHIKLPRS} != U
  • {AIS}+F = {ABCDEGHIKLPRS} != U
  • {AIMP}+F = {ABCDEGHIKLMNORPS} = U, {AIMP} là một khoá tối thiểu của Q, loại {MPS}
  • {AIMS}+F = {ABCDEGHIKLMNORPS} = U, {AIMS} là một khoá tối thiểu của Q
  • {AIPS}+F = {ABCDEGHIKLPRS} != U

Vậy tập các khoá tối thiểu của Q là: {AIMP}, {AIMS}


Câu 5

Có danh sách các phụ thuộc hàm:

  • f1: A -> BCDE
  • f2: E -> GH
  • f3: I -> KL
  • f4: M -> NO
  • f5: AI -> R
  • f6: HRP -> S

Bước 1

  • f1: A -> B
  • f2: A -> C
  • f3: A -> D
  • f4: A -> E
  • f5: E -> G
  • f6: E -> H
  • f7: I -> K
  • f8: I -> L
  • f9: M -> N
  • f10: M -> O
  • f11: AI -> R
  • f12: HRP -> S

Bước 2

Xét:

  • f11:
    • {A}+F-{f11} = {ABCDEGH} không chứa R hoặc I
    • {I}+F-{f11} = {IL} không chứa R hoặc A
  • f12:
    • {H}+F-{f12} = {H} không chứa S hoặc R hoặc P
    • {R}+F-{f12} = {R} không chứa S hoặc H hoặc P
    • {P}+F-{f12} = {P} không chứa S hoặc H hoặc R
    • {HR}+F-{f12} = {HR} không chứa S hoặc P
    • {HP}+F-{f12} = {HP} không chứa S hoặc R
    • {RP}+F-{f12} = {RP} không chứa S hoặc H

Vậy tập phụ thuộc hàm trên không đổi, không có thuộc tính mà vế phải lặp lại, cũng chính là phụ thuộc hàm tối thiểu của Q.


Câu 6

Q(AIPMBCDEGHKLNORS)

  1. Q chưa đạt 2NF vì tồn tại HRP -> S là phụ thuộc hàm không đầy đủ với khoá AIPM. Tách:
  • Q1(HRPS) Đạt 3NF
  • Q2(AIPMBCDEGHKLNOR)
  1. Q2 chưa đạt 2NF vì tồn tại AI -> R là phụ thuộc hàm không đầy đủ với khoá AIPM. Tách:
  • Q21(AIR) Đạt 3NF
  • Q22(AIPMBCDEGHKLNO)
  1. Q22 chưa đạt 2NF vì tồn tại M -> NO là phụ thuộc hàm không đầy đủ với khoá APM. Tách:
  • Q221(MNO) Đạt 3NF
  • Q222(AIPMBCDEGHKL)
  1. Q222 chưa đạt 3NF vì tồn tại E -> GH là phụ thuộc hàm gián tiếp với khoá AIPM. Tách:
  • Q2221(EGH) Đạt 3NF
  • Q2222(AIPMBCDEKL) Đạt 3NF
  1. Q2222 chưa đạt 2NF vì tồn tại A -> BCDE là phụ thuộc hàm không đầy đủ với khoá AIPM. Tách:
  • Q22221(ABCDE) Đạt 3NF
  • Q22222(AIPMKL) Đạt 3NF
  1. Q22222 chưa đạt 2NF vì tồn tại I -> KL là phụ thuộc hàm không đầy đủ với khoá AIPM. Tách:
  • Q222221(IKL) Đạt 3NF
  • Q222222(AIPM) Đạt 3NF

Vậy Q được chuẩn hoá thành:

  • Q1(HRPS)
  • Q21(AIR)
  • Q221(MNO)
  • Q2221(EGH)
  • Q22221(ABCDE)
  • Q222221(IKL)
  • Q222222(AIPM)

Câu 7

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A I P M E H R O B C D G K L N S
Q1(HRPS) a3 a6 a7 a16
Q21(AIR) a1 a2 a7
Q221(MNO) a4 a8 a15
Q2221(EGH) a5 a6 a12
Q22221(ABCDE) a1 a5 a9 a10 a11
Q222221(IKL) a2 a13 a14
Q222222(AIPM) a1 a2 a3 a4

Sau khi xét:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A I P M E H R O B C D G K L N S
Q1(HRPS) a3 a6 a7 a16
Q21(AIR) a1 a2 a7
Q221(MNO) a4 a8 a15
Q2221(EGH) a5 a6 a12
Q22221(ABCDE) a1 a5 a9 a10 a11
Q222221(IKL) a2 a13 a14
Q222222(AIPM) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16

Vậy cấu trúc csdl sau chuẩn hoá vẫn đảm bảo thông tin vì có Q222222(AIPM) chứa tất cả các thuộc tính của Q

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment