Biên soạn : ThS.Phan Võ Minh Thắng
1
Cơ sở Dữ liệu : Chuẩn hóa
Nh
Nh
ậ
ậ
p môn Cơ s
p môn Cơ s
ở
ở
D
D
ữ
ữ
li
li
ệ
ệ
u
u
Ph
Ph
ầ
ầ
n 5
n 5
–
–
Chu
Chu
ẩ
ẩ
n h
n h
ó
ó
a
a
Biên soạn : ThS.Phan Võ Minh Thắng
2
Cơ sở Dữ liệu : Chuẩnhóa
N
N
ộ
ộ
i
i
dung
dung
•
•
Chu
Chu
ẩ
ẩ
n h
n h
ó
ó
a l
a l
à
à
g
g
ì
ì
, vai trò c
, vai trò c
ủ
ủ
a n
a n
ó
ó
trong vi
trong vi
ệ
ệ
c
c
thi
thi
ế
ế
t k
t k
ế
ế
CSDL
CSDL
•
•
C
C
á
á
c d
c d
ạ
ạ
ng chu
ng chu
ẩ
ẩ
n 1NF
n 1NF
, 2NF, 3NF, BCNF,
, 2NF, 3NF, BCNF,
v
v
à
à
4NF
4NF
•
•
C
C
á
á
ch chuy
ch chuy
ể
ể
n t
n t
ừ
ừ
d
d
ạ
ạ
ng chu
ng chu
ẩ
ẩ
n th
n th
ấ
ấ
p lên d
p lên d
ạ
ạ
ng
ng
chu
chu
ẩ
ẩ
n cao hơn
n cao hơn
Biên soạn : ThS.Phan Võ Minh Thắng
3
Cơ sở Dữ liệu : Chuẩnhóa
N
N
ộ
ộ
i
i
dung
dung
•
•
Vi
Vi
ệ
ệ
c
c
chu
chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
v
v
à
à
vi
vi
ệ
ệ
c
c
mô
mô
h
h
ì
ì
nh
nh
E
E
-
-
R
R
đư
đư
ợ
ợ
c
c
d
d
ù
ù
ng
ng
đ
đ
ồ
ồ
ng
ng
th
th
ờ
ờ
i
i
v
v
ớ
ớ
i
i
nhau
nhau
đ
đ
ể
ể
th
th
ự
ự
c
c
hi
hi
ệ
ệ
n
n
t
t
ố
ố
t
t
vi
vi
ệ
ệ
c
c
thi
thi
ế
ế
t
t
k
k
ế
ế
CSDL
CSDL
•
•
Trong
Trong
m
m
ộ
ộ
t
t
v
v
à
à
i
i
trư
trư
ờ
ờ
ng
ng
h
h
ợ
ợ
p
p
yêu
yêu
c
c
ầ
ầ
u
u
ph
ph
ả
ả
i
i
de
de
-
-
normalization
normalization
đ
đ
ể
ể
ph
ph
á
á
t
t
sinh
sinh
thông
thông
tin
tin
m
m
ộ
ộ
t
t
c
c
á
á
ch
ch
hi
hi
ệ
ệ
u
u
qu
qu
ả
ả
Biên soạn : ThS.Phan Võ Minh Thắng
4
Cơ sở Dữ liệu : Chuẩnhóa
C
C
á
á
c
c
b
b
ả
ả
ng
ng
trong
trong
CSDL
CSDL
v
v
à
à
s
s
ự
ự
chu
chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
•
•
B
B
ả
ả
ng
ng
l
l
à
à
th
th
à
à
nh
nh
ph
ph
ầ
ầ
n
n
cơ
cơ
s
s
ở
ở
trong
trong
thi
thi
ế
ế
t
t
k
k
ế
ế
CSDL
CSDL
•
•
C
C
ấ
ấ
u
u
tr
tr
ú
ú
c
c
b
b
ả
ả
ng
ng
l
l
à
à
m
m
ố
ố
i
i
quan
quan
tâm
tâm
h
h
à
à
ng
ng
đ
đ
ầ
ầ
u
u
•
•
C
C
ó
ó
hai
hai
trư
trư
ờ
ờ
ng
ng
h
h
ợ
ợ
p
p
:
:
–
–
V
V
ẫ
ẫ
n
n
c
c
ó
ó
th
th
ể
ể
còn
còn
t
t
ồ
ồ
n
n
t
t
ạ
ạ
i
i
c
c
á
á
c
c
b
b
ả
ả
ng
ng
c
c
ó
ó
c
c
ấ
ấ
u
u
tr
tr
ú
ú
c
c
không
không
t
t
ố
ố
t
t
trong
trong
thi
thi
ế
ế
t
t
k
k
ế
ế
CSDL
CSDL
h
h
ợ
ợ
p
p
lý
lý
–
–
Hi
Hi
ệ
ệ
u
u
ch
ch
ỉ
ỉ
nh
nh
CSDL
CSDL
s
s
ẵ
ẵ
n
n
c
c
ó
ó
,
,
v
v
à
à
c
c
ấ
ấ
u
u
tr
tr
ú
ú
c
c
c
c
á
á
c
c
b
b
ả
ả
ng
ng
không
không
t
t
ố
ố
t
t
•
•
Chu
Chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
c
c
ó
ó
th
th
ể
ể
gi
gi
ú
ú
p
p
ta
ta
nh
nh
ậ
ậ
n
n
bi
bi
ế
ế
t
t
c
c
á
á
c
c
b
b
ả
ả
ng
ng
c
c
ó
ó
c
c
ấ
ấ
u
u
tr
tr
ú
ú
c
c
không
không
t
t
ố
ố
t
t
v
v
à
à
chuy
chuy
ể
ể
n
n
n
n
ó
ó
th
th
à
à
nh
nh
c
c
á
á
c
c
b
b
ả
ả
ng
ng
c
c
ó
ó
c
c
ấ
ấ
u
u
tr
tr
ú
ú
c
c
t
t
ố
ố
t
t
hơn
hơn
Biên soạn : ThS.Phan Võ Minh Thắng
5
Cơ sở Dữ liệu : Chuẩnhóa
C
C
á
á
c
c
b
b
ả
ả
ng
ng
trong
trong
CSDL
CSDL
v
v
à
à
s
s
ự
ự
chu
chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
•
•
Chu
Chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
l
l
à
à
qu
qu
á
á
tr
tr
ì
ì
nh
nh
g
g
á
á
n
n
c
c
á
á
c
c
thu
thu
ộ
ộ
c
c
t
t
í
í
nh
nh
cho
cho
c
c
á
á
c
c
th
th
ự
ự
c
c
th
th
ể
ể
–
–
Gi
Gi
ả
ả
m
m
dư
dư
th
th
ừ
ừ
a
a
d
d
ữ
ữ
li
li
ệ
ệ
u
u
–
–
S
S
ử
ử
d
d
ụ
ụ
ng
ng
cho
cho
h
h
ế
ế
t
t
c
c
á
á
c
c
th
th
ự
ự
c
c
th
th
ể
ể
–
–
Gi
Gi
ú
ú
p
p
lo
lo
ạ
ạ
i
i
b
b
ỏ
ỏ
c
c
á
á
c
c
data anomalies
data anomalies
–
–
T
T
ạ
ạ
o
o
c
c
á
á
c
c
dư
dư
th
th
ừ
ừ
a
a
đư
đư
ợ
ợ
c
c
ki
ki
ể
ể
m
m
so
so
á
á
t
t
đ
đ
ể
ể
liên
liên
k
k
ế
ế
t
t
c
c
á
á
c
c
b
b
ả
ả
ng
ng
–
–
Đòi
Đòi
h
h
ỏ
ỏ
i
i
nhi
nhi
ề
ề
u
u
chi
chi
ph
ph
í
í
x
x
ử
ử
lý
lý
hơn
hơn
–
–
Tr
Tr
ả
ả
i
i
qua
qua
m
m
ộ
ộ
t
t
dãi
dãi
c
c
á
á
c
c
bư
bư
ớ
ớ
c
c
g
g
ọ
ọ
i
i
l
l
à
à
c
c
á
á
c
c
d
d
ạ
ạ
ng
ng
chu
chu
ẩ
ẩ
n
n
Biên soạn : ThS.Phan Võ Minh Thắng
6
Cơ sở Dữ liệu : Chuẩnhóa
Database Tables and
Database Tables and
Normalization
Normalization
•
•
C
C
á
á
c
c
giai
giai
đo
đo
ạ
ạ
n
n
chu
chu
ẩ
ẩ
n
n
h
h
ó
ó
a
a
–
–
1NF
1NF
-
-
First normal form
First normal form
–
–
2NF
2NF
-
-
Second normal form
Second normal form
–
–
3NF
3NF
-
-
Third normal form
Third normal form
–
–
4NF
4NF
-
-
Fourth normal form
Fourth normal form
Better in
dependency
Worse in
performance
(I/O)
Business
Bioinformatics
Statistical data
Biên soạn : ThS.Phan Võ Minh Thắng
7
Cơ sở Dữ liệu : Chuẩnhóa
Database Tables and
Database Tables and
Normalization
Normalization
•
•
V
V
í
í
d
d
ụ
ụ
:
:
M
M
ộ
ộ
t
t
công
công
ty
ty
xây
xây
d
d
ự
ự
ng
ng
–
–
Building projects
Building projects
•
•
Project number
Project number
•
•
Project name
Project name
•
•
Employees assigned
Employees assigned
•
•
…
…
–
–
Employee
Employee
•
•
Employee number
Employee number
•
•
Employee name
Employee name
•
•
Job classification
Job classification
Biên soạn : ThS.Phan Võ Minh Thắng
8
Cơ sở Dữ liệu : Chuẩnhóa
Ví dụ:
mộtmẫubáocáo
định kỳ tạicôngty.
Biên soạn : ThS.Phan Võ Minh Thắng
9
Cơ sở Dữ liệu : Chuẩnhóa
Table 4.1 should be here.
Biên soạn : ThS.Phan Võ Minh Thắng
10
Cơ sở Dữ liệu : Chuẩnhóa
K
K
ế
ế
t
t
qu
qu
ả
ả
quan
quan
s
s
á
á
t
t
t
t
ừ
ừ
h
h
ì
ì
nh
nh
4.1
4.1
•
•
PRO_NUM intended to be primary key, but
PRO_NUM intended to be primary key, but
it contains null values.
it contains null values.
•
•
Table entries invite data inconsistencies
Table entries invite data inconsistencies
Biên soạn : ThS.Phan Võ Minh Thắng
11
Cơ sở Dữ liệu : Chuẩnhóa
K
K
ế
ế
t
t
qu
qu
ả
ả
quan
quan
s
s
á
á
t
t
t
t
ừ
ừ
h
h
ì
ì
nh
nh
4.1
4.1
•
•
Table displays data redundancies which
Table displays data redundancies which
yield the following anomalies
yield the following anomalies
–
–
Update
Update
•
•
Modifying JOB_CLASS
Modifying JOB_CLASS
–
–
Insertion
Insertion
•
•
New employee must be assigned project (phantom
New employee must be assigned project (phantom
project)
project)
–
–
Deletion
Deletion
•
•
If employee deleted, other vital data lost
If employee deleted, other vital data lost
Biên soạn : ThS.Phan Võ Minh Thắng
12
Cơ sở Dữ liệu : Chuẩnhóa
Figure 4.2 is insert here.
Repeating group (any project can have a group of
data entries) which should not to be appeared in
relational table
Biên soạn : ThS.Phan Võ Minh Thắng
13
Cơ sở Dữ liệu : Chuẩnhóa
Data Organization: 1NF
Data Organization: 1NF
Figure 4.3
PK PK
Biên soạn : ThS.Phan Võ Minh Thắng
14
Cơ sở Dữ liệu : Chuẩnhóa
Conversion to 1NF
Conversion to 1NF
•
•
Repeating groups must be eliminated
Repeating groups must be eliminated
–
–
Proper primary key developed
Proper primary key developed
•
•
Uniquely identifies attribute values (rows)
Uniquely identifies attribute values (rows)
•
•
Combination of PROJ_NUM and EMP_NUM
Combination of PROJ_NUM and EMP_NUM
Biên soạn : ThS.Phan Võ Minh Thắng
15
Cơ sở Dữ liệu : Chuẩnhóa
Conversion to 1NF
Conversion to 1NF
•
•
Repeating groups must be eliminated
Repeating groups must be eliminated
–
–
Dependencies can be identified
Dependencies can be identified
–
–
Desirable dependencies based on primary key
Desirable dependencies based on primary key
–
–
Less desirable dependencies
Less desirable dependencies
•
•
Partial
Partial
–
–
based on part of composite primary key
based on part of composite primary key
•
•
Transitive
Transitive
–
–
one nonprime attribute depends on another nonprime
one nonprime attribute depends on another nonprime
attribute
attribute
Biên soạn : ThS.Phan Võ Minh Thắng
16
Cơ sở Dữ liệu : Chuẩnhóa
Dependency Diagram (1NF)
Dependency Diagram (1NF)
Figure 4.4
Above: Desired Dependencies
Below: Less Desired Dependencies
Composite primary key
Biên soạn : ThS.Phan Võ Minh Thắng
17
Cơ sở Dữ liệu : Chuẩnhóa
PROJ_NUM,EMP_NUM Æ PROJ_NAME, EMP_NAME,
JOB_CLASS,CHG_HOUR, HOURS
PROJ_NUM Æ PROJ_NAME
DESIRED DEPENDENCIES
EMP_NUM Æ EMP_NAME, JOB_CLASS, CHG_HOUR
PARTIAL DEPENDENCIES
JOB_CLASS -> CHG_HOUR
TRANSITIVE DEPENDENCIES
Biên soạn : ThS.Phan Võ Minh Thắng
18
Cơ sở Dữ liệu : Chuẩnhóa
1NF Summarized
1NF Summarized
•
•
All key attributes defined
All key attributes defined
•
•
No repeating groups in table
No repeating groups in table
•
•
All attributes dependent on
All attributes dependent on
primary key
primary key
Biên soạn : ThS.Phan Võ Minh Thắng
19
Cơ sở Dữ liệu : Chuẩnhóa
Conversion to 2NF
Conversion to 2NF
•
•
Start with 1NF format:
Start with 1NF format:
•
•
Write each key component on separate line
Write each key component on separate line
•
•
Write original key on last line
Write original key on last line
•
•
Each component is new table
Each component is new table
•
•
Write dependent attributes after each key
Write dependent attributes after each key
PROJECT (PROJ_NUM, PROJ_NAME)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR)
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
Biên soạn : ThS.Phan Võ Minh Thắng
20
Cơ sở Dữ liệu : Chuẩnhóa
2NF Conversion Results
2NF Conversion Results
Figure 4.5
Biên soạn : ThS.Phan Võ Minh Thắng
21
Cơ sở Dữ liệu : Chuẩnhóa
2NF Summarized
2NF Summarized
•
•
In 1NF
In 1NF
•
•
Includes no partial dependencies
Includes no partial dependencies
–
–
No attribute dependent on a portion of primary
No attribute dependent on a portion of primary
key
key
•
•
Still possible to exhibit transitive
Still possible to exhibit transitive
dependency
dependency
–
–
Attributes may be functionally dependent on
Attributes may be functionally dependent on
nonkey
nonkey
attributes
attributes
Biên soạn : ThS.Phan Võ Minh Thắng
22
Cơ sở Dữ liệu : Chuẩnhóa
Conversion to 3NF
Conversion to 3NF
•
•
Create separate
Create separate
table(s
table(s
) to eliminate
) to eliminate
transitive functional dependencies
transitive functional dependencies
PROJECT (PROJ_NUM, PROJ_NAME)
ASSIGN (PROJ_NUM, EMP_NUM, HOURS)
EMPLOYEE (EMP_NUM, EMP_NAME, JOB_CLASS)
JOB (JOB_CLASS, CHG_HOUR)
Biên soạn : ThS.Phan Võ Minh Thắng
23
Cơ sở Dữ liệu : Chuẩnhóa
3NF Summarized
3NF Summarized
•
•
In 2NF
In 2NF
•
•
Contains no transitive
Contains no transitive
dependencies
dependencies
Biên soạn : ThS.Phan Võ Minh Thắng
24
Cơ sở Dữ liệu : Chuẩnhóa
Additional DB Enhancements
Additional DB Enhancements
Figure 4.6
Biên soạn : ThS.Phan Võ Minh Thắng
25
Cơ sở Dữ liệu : Chuẩnhóa