Tải bản đầy đủ (.ppt) (18 trang)

bài tập học về cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (80.5 KB, 18 trang )


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}

×