Soạn bởi bộ môn Công nghệ phần mềm
5. BµI TËP VÒ chuẨN HOÁ
MỤC TIÊU CỦA BÀI NÀY GIÚP NGƯỜI HỌC
!"#$ #%
&'()*+,-'./ !01%
234503678 !9#$ #:;,#+,-'.
$ #:$ #<= !>6+? !#1@<%
AB)C#',-)*6D6+,-'.#$ #9)>E
FE%
A/ NHẮC LẠI LÝ THUYẾT
I. CÁC ĐỊNH NGHĨA, TÍNH CHẤT
1. Dạng chuẩn 1 (1NF - first normal form)
*+,-'.$ #αG:HI<',-J+0/ !)*:KI<L 70ML >5
)8C("# *N"#O'8 P?Q:FEB6#',-<%
Chú ý:
RNFEB6#',-M9N>,@'Q%
;(S#0P1>P#PCT>FU$ # !9#01V/KI%
2. Dạng chuẩn 2 ( 2NF- Second normal form)
RC,WF?X !XYH#ZD2N4[# 'P\
&D.)Y+,-'.$ #R:]RH^]2_<70
2_:]RH2HR_HR]HH_<65E78FL$"#"#
)*'@7(01'9%
RC1$ #R`]R+0F9#70C1$ #2_`]R702+0
F9#%
/$ #X#a3>PCT]RH2H_Z'(FL$ "#[7?
b2HR_HR]HZ'('Q,-c
&D0"#Y+,-'.$ #R702_,[# \
R
]R ^]2_
R1 RdPE
e RdPX#
9# RdP^#1
2_
]R 2 R_ R] _
R1 KK # Yf g%f
R1 KY h YK i j%k
9# KK # Yf j%f
9# KY h YK i l%f
e KK # Yf k%f
e Km YY n o%f
TrangK
Soạn bởi bộ môn Công nghệ phần mềm
3. Dạng chuẩn 3 ( 3NF- Second normal form)
;(S#\1+,-'.$ #αG:HI<H+,-'.α',-J+0/ !mHFN
+0mIHL ,+,-'./ !KI70 *NFEF1"#α+0FE
64 *0)pd 701F1N%
4. Dạng chuẩn Boyce Codd ( BCNF- Boyce Codd normal form)
Định nghĩa:1+,-'.$ #α G:HI<H+,-'.α',-J+0/ !n1Ph
1HFN +0nIHL ,+,-'./ !KI70L &i∈I
q
:i⊄&<`&
65+0[? F1"#+,-'.%
5. Tách lược đồ quan hệ
;(S#\D6+,-'.$ #αG:HI<+06D6#PL9T)*36+,-
'.1αG:HI<HGKH%%HF7W'8 F
≠φ∀GKH%%%HFH∪
GHI
GIr
HI
+0`L "#I+?36 *N
D6'9',-Fe +0σGsKHYH%%HFt
AN αG:HI<HσGsKHYH%%HFt+0)*6D6F'9O+0)*$ #C?HFN
)
δ
:O<GOu
K
vwOu
Y
vw%%%wOu
F
v
Định nghĩa: phép tách kết nối không mất thông tin
1+,-'.$ #αG:HI<706D6δ
GsKHYH%%HFt'Q7W+,-'.'9%
6D6δ',-J+06D6FLQFE)>EL )J$ #OC?`
#9)
δ
:O<GOH,-+L )
δ
:O<≠O`#96D6δ+06D6)>E%
6.Thuật toán kiểm tra phép tách kết nối có mất thông tin hay không?
D liệu v!o:
xR36 *N
xR3664 *0)I
xD6δGsKHYH%%HFt
Ra:
&'(+ 6D6δ9)>E#PFEy
Phương pháp:
^5[zGsKHYH%%HtH#ZPc)*5.)Fb*:G{{HFG{δ{<H*X
"#5X7W *NH0X|"#5X7W+,-'.1α
G:HI<H
070*|#'8FN #|:#JFN #|+0N N<L *N#| ∈HL
FE#'8(|:#J|+0N 64<%
nP}#L'~5,[# \
2W)•64 *0)&i∈IHL C19#0Q# C?36 *N&
#d+0)€Q# C?36 *Nih1$ Pp[# \
x L )*C1#C(+0N 64`#[z#+N(? 640N
NX+0[z#|0#|
x L 5#+0N(? 64`#[z#+#N '9T)*C1FN |H
X+0[z#+M[Q1Q# %
RL646464 *0)C15:FB64 *0)'•',-[z4<
1WFFEb64',-‚#%
#[C15 Qƒ\L Z >N>)*0.)10N
N:0.)10FN #<`6D6FLQ+0FE)>EHC,}-6
,-++0FLQ)>E%
7. Phương pháp chuẩn hóa dữ liệu
TrangY
Soạn bởi bộ môn Công nghệ phần mềm
7.1. Thuật toán tách lược đồ thành 3NF
Input: Lược đồ quan hệ α =(U, F)
Output: Các lược đồ ở dạng 3NF
:KHAK<H:YHAY<H„%H:HA<…#)•\
#<† #OC?`OuKvwOuYvw„wOuvGO
<AKHAYH„HA+0F1"#+,-'.1,X
Phương pháp:
1. Tìm một khóa K của lược đồ
α
2. Tìm một phủ G tối thiểu của F
G={K1
A1, K2
A2, …, Kp
Ap}
3. Ghép các phụ thuộc h!m có cùng vế trái trong G để thu được phủ
G={K1
X1, K2
X2, …, Kn
Xn}
4. Phép tách
δ
={K1X1, K2X2, …, KnXn} nếu khoá K không có mặt trong
th!nh phần n!o của
δ
thì thêm th!nh phần K v!o
δ
.
5. Return
δ
7.2. Tách không mất thông tin thành các lược đồ ở dạng BCNF
1+,-'.αG:HI<H706D6δGsKHYH%%HFtH6D6)*+,-'.0)*
36+,-'./nI+06D6…#)•\
x D6δ+06D6FLQFE)>E
x R>5+,-'.1αG:HI<'8 /nI
Phương pháp :
& >6=)*64 *0)&01'9"#IH64 *0)&0P76)'8
FnIH#ZPc6D6δGsKHYtH,@X7W+,-'.αK70αY[#11\
x D6'9+06D6FLQFE)>E
x 4 *0)&+064 *0)"#+,-'.αK709…#)•'8 F
#nIC1+,-'.0P
x L ,+,-'.αK70αY7‡,#/nI`L64$ C`'9H`
'8 76)nI'8 (+1…H Qƒ# ',-)*36+,-'.1'8 /
nI70$ C`+ E+ E')16D6FLQFE)>E%
@[/"# 31C?+01L+,-'.αG:HI<,#/nI1'9.
64 *0)&H&H&FE65+0[? F1
KG&HYGˆ
Nhận xét
&G
K
∩
Y
H
K
ˆ
Y
GH'•9&1'9
K
∩
Y
K
ˆ
Y
h1'(+e/6dC?`
6D6δGsKHYt+06D69FLQFE)>E%2`
K
G&7064 *
0)&+0 P>C?+,-'.αKG:KHIK<?&+0[? F1%
L αKHαY,#/nI`#64$ C`,@c% Qƒ#
',-)*36+,-'./nI70$ C`+0FE)>E%
Ví dụ:
1+,-'.αG:HI<7W
GOR^:\1 C[hHR\Rh#hCH1 CHO\O11)H\ hH^\^C1 6<
IGsRHOHOH^HOt
Trangm
Soạn bởi bộ môn Công nghệ phần mềm
Nhận xét
x,-'.0P9 P>)*F1+0
x,-'.0P,#/nI
xR#>PC1+,-'.αG:HI<964 *0)^76)'8 FnI?#
+,-'.0+,-KG^HYGRO
xR#>PC1+,-'.αYG:YHIY<964 *0)R76)'8 FnI?
#+,-'.0+,-mGRHoGO
xR#>PC1+,-'.αoG:oHIo<964 *0)O76)'8 FnI
?#+,-'.0+,-kGOHlG
,73P6D6 Qƒ+0δGs^HRHOHt
III.MỘT SỐ LƯU Ý
Rd)$ #CJ"#7 !9#‚+ %
!H6,@66$ #/ !>6+?
!#1@%
R 31FB)C#6D69)>EFEy
B/ BÀI TẬP MẪU
Bài số 1: AB)C#6D69)>E#PFEy
1+,-'.$ #αG:HI<7W
Gs
K
H
Y
H
m
H
o
H
k
t
IGs
K
Y
m
H
Y
o
k
H
Y
m
t
δGs
K
Y
o
H
Y
m
H
K
o
k
t
…CT6D6δC?9FLQFE)>EFEy
Hướng dẫn:
Trango
αG:HI<
K
G^
I
K
Gs^t
AG
Y
GRO
I
Y
GsRHOHOHOt
AG
m
GR
I
m
GsRt
AG
o
GO
I
o
GsOHOHOt
AG
k
GO
I
k
GsOHOt
AGOHAG
l
G
I
l
Gst
AG
Soạn bởi bộ môn Công nghệ phần mềm
‰64 31FB)C#6D69)>EFEH#L0=,W%
Giải:
&Pc5.)mbk*
x;8N 7015
A
1
A
2
A
3
A
4
A
5
U
1
#
1
a
2
b
13
a
4
b
15
U
2
b
12
a
2
a
3
b
24
b
25
U
3
a
1
b
32
b
33
a
4
a
5
xnL'~5C?c#7013664 *0)I
qz464 *0)
K
Y
m
#L'~5
A
1
A
2
A
3
A
4
A
5
U
1
a
1
a
2
b
13
a
4
b
15
U
2
b
12
a
2
a
3
b
24
b
25
U
3
a1
a
2
b
13
a
4
a
5
qz464 *0)
Y
o
k
A
1
A
2
A
3
A
4
A
5
U
1
a
1
a
2
b
13
a
4
a
5
U
2
b
12
a
2
a
3
b
24
b
25
U
3
a
1
a
2
b
13
b
4
a
5
qz464 *0)
Y
m
A
1
A
2
A
3
A
4
A
5
U
1
a
1
a
2
a
3
a
4
a
5
U
2
B
12
a
2
a
3
b
24
b
25
U
3
a
1
a
2
a
3
a
4
a
5
RC150P90 Qƒ.)10N NH173P6D6δ+06D6
FLQFE)>E%
C/ BÀI TẬP TỰ GIẢI
Bài tập 1:
ƒFŠ 35FB)C#6D6[# 9)>EFE
#<αG:HI<7WGnHIGs→nH→tHδGsnHt
Trangk
Soạn bởi bộ môn Công nghệ phần mềm
<αG:HI<7WGn_HIGs→Hn→H→H_→H_→tHδGsHnHn_H_t
<&'(705N !#1>"#+,-'.$ #αG:HI<7WGnH
IGs→H→nH→nt
Bài tập 2:
1+,-'.$ #αG:HI<7W
Gn_^
IGs→H_→nH→^Hn→_H→^H→t
…CT6D6δG:n_HnH_^<9FLQ)>EFE%
Bài tập 3:
1+,-'.$ #αG:HI<7W
GnHIGs→nH→Hn→t
&'( !#1>"#+,-'.$ #C?
Bài tập 4:
1+,-'.$ #αG:HI<7W
GnHIGs→nH→Hn→t
&'( !#1>"#+,-'.$ #C?
Bài tập 5:
1αG: HI<7W
Gn_70
IGs→Hn→H→H_→H_→t
FB)C#NFLQFE)>E'Q7W6D6
δGsHnHn_H_H_t
Bài tập 6:
1αG: HI<7W
Gn_I70
IGsn→H→nHn→_HI→t
FB)C#NFLQFE)>E'Q7W6D6
δGsnHHn_HnIt
Bài tập 7:
1αG: HI<7W
Gn_^
IGs→^H→H→_H→nt
FB)C#NFLQFE)>E'Q7W6D6
δGs^HH_Hnt
Bài tập 8:
1αG: HI<7W
Gn_70
IGs→Hn→H→H_→H_→t
FB)C#NFLQFE)>E'Q7W6D6
Trangl
Soạn bởi bộ môn Công nghệ phần mềm
δGsHHn_HnH_t
Bài tập 9:
1:G:HI<7W
G&i‹Œ7036
IGsi→ŒHŒ→iH&i→‹t
!#1>"#+,-'.+0`y
Bài tập 10:
1:G:HI<7W
Gn_^703664 *0)
IGsn→H→_H_^→Hn→^t
δGs_^Hn_^t
D6C?9)>EFEy
•PX))J$ #M9Y *N'8/ !nIy
Bài tập 11:
&D$ #O:n_<703664 *0)
IGsn→_H_→nH→t
•P`) !#1>"#+,-'.y
Bài tập 12:
&D$ #O:n_^<703664 *0)
IGs→nH→^H→_H→^t
- •P`)F1"#+,-'.
- •P`) !#1>"#+,-'.
Bài tập 13:
&D$ #O:n<703664 *0)
IGsn→H→nHn→t
•P`) !#1>"#+,-'.
Bài tập 14:
1αG: HI<7W
Gn_I
IGsn→H→nHn→_HI→t
,-'.9/nIFE
Trangj