2.13
Cho lược đồ quan hệ R=ABCDEGH và tập phụ thuộc hàm trên R :
F={ABC → D, AB → E, BC → DC, C → ED, CE → H, DC → G,
CH → G, AD → H}
1) Tìm một phủ tối tiểu của F.
Bước 1 : Tách F thành một tập phụ thuộc hàm mà vế phải chỉ có một
thuộc tính:
F={ABC → D
AB → E
BC → D
BC → C
C → E
C → D
CE → H
DC → G
CH → G
AD → H}
Bước 2 : Loại bỏ những phụ thuộc hàm không đầy dủ :
Loại 1 : BC → C bỏ khỏi F
Loại 2 :
ABC → D
BC → D
C → D
Loại bỏ ABC → D, BC → D khỏi F
Loại 3: Với AB → E
A
+
F
= A E
B
+
F
= B E
Với CE → H
C
+
F
= CEDH… H thay CE → H bỡi C → H
Với DC → G
D
+
F
= D G
C
+
F
= CEDHG… G thay DC → G bỡi C → G
Với CH → G
C
+
F
= CEDHG… G thay CH → G bỡi C → G
Với AD → H
A
+
F
= A H
D
+
F
= D H
F={AB → E, C → E, C → D, CE → H, DC → G, CH → G, AD → H}
Sau bước 2 F={AB → E
C → E
C → D
C → H
C → G
AD → H}
Bước 3 :
Với f
1
: AB → E, F
1
= F \{f
1
}
AB
+
F1
= AB E
Với f
2
: C → E, F
2
= F \{f
2
}
C
+
F2
= CDHG E
Với f
3
: C → H, F
3
= F \{f
3
}
C
+
F3
= CEDG H
Với f
4
: AD → H, F
4
= F \{f
4
}
AD
+
F4
= AD H
Vậy PTT(F) ={AB → E, C → E, C → D, C → H, C → G, AD → H}
2) Tìm một khoá của R dựa vào F
PTT(F) ={AB → E, C → E, C → D, C → H, C → G, AD → H}
A
B
E
C
D
H G
K = ABC
K
+
F
= ABCDEGH
Vậy K=ABC là khoá của R.
3) Tìm một phân rã của R dựa trên phủ tối tiểu của F có dạng chuẩn
3 và bảo toàn thông tin.
F = {AB → E, C → E, C → D, C → H, C → G, AD → H}
ABCDEGH
AB → E
ABE ABCDGH
C → D
C → H
CD
ABCGH
CH ABCG
ρ = {ABE, CD, CH, ABCG} là một phân rã bảo toàn thông tin,
dạng chuẩn 3 của R.
2.14
Cho lược đồ quan hệ R=ABCDEGHI và tập phụ thuộc hàm
trên R :
F={A→CB, AB→CD, C→D, CI→DG, AC→BD, E→CD, AC→BI,
EC→A, EG→B, G→CD}
1) Tìm một phủ tối tiểu của F.
Bước 1 : Tách F thành một tập phụ thuộc hàm mà vế phải chỉ có
một thuộc tính:
F={A→C,
A→B,
AB→C,
AB→D,
C→D,
CI→D,
CI→G,
AC→B,
AC→D,
E→C,
E→D,
AC→B,
AC→I ,
EC→A,
EG→B,
G→C,
G→D}
Bước 2 : Loại bỏ những phụ thuộc hàm không đầy dủ
Loại 1 : Không có.
Loại 2 :
A→ C
AB → C
Loại bỏ AB → C khỏi F
A→ B
AC → B
Loại bỏ AC → B khỏi F
C → D
CI → D
AC → D
Loại bỏ CI → D, AC → D khỏi F
Loại 3 :
Với AB→D
Có A
+
F
= ACBD… chứa D ⇒ thay AB→D bỡi A→D
Với CI→ G
Có C
+
F
= CD không chứa G
Có I
+
F
= I không chứa G
E→D,
A→I ,
E→A,
E→B,
G→C,
G→D}
Sau bước 2 F={A→C,
A→B,
A→D,
C→D,
CI→G,
E→C,
Với AC→ I
Có A
+
F
= ACBDI… chứa I ⇒ thay AC→I bỡi A→I
Với EC→ A
Có E
+
F
= ECDA… chứa A ⇒ thay EC→A bỡi E→A
Với EG→ B
Có E
+
F
= ECDAB… chứa B ⇒ thay EG→B bỡi E→B
Bước 3 :
Với f
1
= A→C, F
1
= F\{f
1
}
A
+
F1
= ABDI không chứa C.
Với f
2
= A→B, F
2
= F\{f
2
}
A
+
F2
= ACDIG không chứa B.
Với f
3
= A→D, F
3
= F\{f
3
}
A
+
F3
= ACBD… chứa D, loại f
3
khỏi F.
Với f
4
= C→D, F
4
= F\{f
4
}
C
+
F4
= C không chứa D.
Với f
5
= E→C, F
5
= F\{f
5
}
E
+
F5
= EDAC… chứa C, loại f
5
khỏi F.
Với f
6
= E→D, F
6
= F\{f
6
}
E
+
F6
= EABCD… chứa D, loại f
6
khỏi F.
Với f
7
= E→B, F
7
= F\{f
7
}
E
+
F7
= EACB… chứa B, loại f
7
khỏi F.
Với f
8
= G→C, F
8
= F\{f
8
}
G
+
F8
= GD không chứa C.
Với f
9
= G→D, F
9
= F\{f
9
}
G
+
F9
= GCD… chứa D, loại f
9
khỏi F.
Vậy PTT(F)={A→C, A→B, C→D, CI→G, A→I , E→A, G→C}
2) Tìm một khóa của R dựa vào phủ tối tiểu của F.
PTT(F)={A→C, A→B, C→D, CI→G, A→I , E→A, G→C}
Đồ thị của R và F :
A C
B
D
I
G
E
H
K = HE
K
+
F
=HEACBDIG = R
Vậy HE là một khoá của R.
3) Tìm một phân rã của R dựa trên phủ tối tiểu của F có dạng chuẩn 3
và bảo toàn thông tin.
PTT(F)={A→C, A→B, C→D, CI→G, A→I , E→A, G→C}
A→C
A→B
A→I
E→A
AC
ABDEGHI
AB ADEGHI
AI ADEGH
EA DEGH
ABCDEGHI
ρ = {AC, AB, AI, EA, DEGH} là một phân rã bảo toàn thông tin,
dạng chuẩn 3 của R.
2.15 Cho lược đồ quan hệ R=ABCDEGH và tập phụ thuộc hàm trên R :
F={A→CB, AB→CD, C→D, CH→DG, E→CD, AC→BD, EC→A,
EG→B, G→CD}
1) Tìm một phủ tối tiểu của F.
Bước 1 : Tách F thành một tập phụ thuộc hàm mà vế phải chỉ có một
thuộc tính:
F={A→C,
A→B,
AB→C,
AB→D,
C→D,
CH→D,
CH→G,
E→C,
E→D,
AC→B,
AC→D,
EC→A,
EG→B,
G→C,
G→D}
Bước 2 : Loại bỏ những phụ thuộc hàm không đầy dủ
Loại 1 : Không có.
Loại 2 :
A→ C
AB → C
Loại bỏ AB → C khỏi F
F={A→C, A→B, A→D, C→D, CH→G, E→C, E→D, EC→A, EG→B, G→C, G→D}
A→ B
AC → B
Loại bỏ AC → B khỏi F
C → D
CH→ D
AC → D
Loại bỏ CH → D, AC → D khỏi F
Loại 3 :
Với AB→D
Có A
+
F
= ACBD… chứa D ⇒ thay AB→D bỡi A→D
Với CH→ G
Có C
+
F
= CD không chứa G
Có H
+
F
= H không chứa G
Với EC→ A
Có E
+
F
= ECDA… chứa A ⇒ thay EC→A bỡi E→A
Với EG→ B
Có E
+
F
= ECDAB… chứa B ⇒ thay EG→B bỡi E→B
Sau bước 2 : F={A→C, A→B, A→D, C→D, CH→G, E→C,
E→D, E→A, E→B, G→C, G→D}
F={A→C, A→B, A→D, C→D, CH→G, E→C, E→D, E→A, E→B, G→C, G→D}
Bước 3 :
Với f
1
= A→C, F
1
= F\{f
1
}
A
+
F1
= ABD không chứa C.
Với f
2
= A→B, F
2
= F\{f
2
}
A
+
F2
= ACD không chứa B.
Với f
3
= A→D, F
3
= F\{f
3
}
A
+
F3
= ACBD… chứa D, loại f
3
khỏi F.
Với f
4
= C→D, F
4
= F\{f
4
}
C
+
F4
= C không chứa D.
Với f
5
= E→C, F
5
= F\{f
5
}
E
+
F5
= EDAC… chứa C, loại f
5
khỏi F.
Với f
6
= E→D, F
6
= F\{f
6
}
E
+
F6
= EABCD… chứa D, loại f
6
khỏi F.
Với f
7
= E→B, F
7
= F\{f
7
}
E
+
F7
= EACB… chứa B, loại f
7
khỏi F.
Với f
8
= G→C, F
8
= F\{f
8
}
G
+
F8
= GD không chứa C.
Với f
9
= G→D, F
9
= F\{f
9
}
G
+
F9
= GCD… chứa D, loại f
9
khỏi F.
F={A→C, A→B, A→D, C→D, CH→G, E→C, E→D, E→A, E→B, G→C, G→D}
Vậy PTT(F) ={A→C, A→B, C→D, CH→G, E→A, G→C}
2) Tìm một khóa của R dựa vào phủ tối tiểu của F.
PTT(F)={A→C, A→B, C→D, CH→G, E→A, G→C}
Đồ thị của R và F :
A C
B
D
H
G
E
I
K = IEH
K
+
F
=IEHACBDIG = R
Vậy IHE là một khoá của R.
3) Tìm một phân rã của R dựa trên phủ tối tiểu của F có dạng chuẩn 3
và bảo toàn thông tin.
A→C
A→B
E→A
AC
ABDEGHI
AB ADEGHI
EA DEGHI
ABCDEGHI
ρ = {AC, AB, EA, DEGHI} là một phân rã bảo toàn thông tin,
dạng chuẩn 3 của R.
PTT(F)={A→C, A→B, C→D, CH→G, E→A, G→C}