2
Cơ sở dữ liệu
1.1. Chuẩn hoá
Trong một số trường hợp quan hệ có thể
chứa các thông tin trùng lặp (dư thừa),
nên việc cập nhật dữ liệu (thêm, sửa, huỷ)
gây ra những dị thường.
Các quan hệ trên cần thiết phải biến đổi
thành các dạng phù hợp hơn được gọi là
chuẩn hoá.
1. G
iới thiệu chung
3
Cơ sở dữ liệu
1.2. Quan hệ được chuẩn hoá
L
à quan hệ trong đó mỗi miền của
một thuộc tính chỉ chứa những giá trị
nguyên tố tức là không phân nhỏ
được nữa
1.3. Quan hệ không chuẩn hoá
Quan hệ có chứa các miền giá trị là
không nguyên tố
1. G
iới thiệu chung
4
Cơ sở dữ liệu
M
ỗi quan hệ thuộc một trong các dạng
Không chuẩn hoá
Chuẩn 1
Chuẩn 2
Chuẩn 3
Chuẩn Boyce codd
5
Cơ sở dữ liệu
Định nghĩa
Quan hệ R ở dạng chuẩn 1 (1NF - First
Normal Form) nếu mọi thuộc tính của R đều
chứa các giá trị nguyên tố (atomic value), giá
trị này không là một danh sách các giá trị
hoặc các giá trị phức hợp (composite value).
Các thuộc tính của quan hệ R
Không là thuộc tính đa trị (multivalued
attribute).
Không là thuộc tính phức hợp (composite
attribute).
2. Dạng chuẩn 1
6
Cơ sở dữ liệu
Cho l
ược đồ quan hệ:
CHUYEN_MON(MaGV,MonGD)
MonGD là chuỗi gồm môn học mà
giáo viên có khả năng giảng dạy
Xét thể hiện sau:
CHUYEN_MON(MaGV,MonGD)
GV1, CTDL,CSDL,C
GV2, Pascal, VB, C
MonGD không phải là thuộc tính
nguyên tố.
V
í dụ:
7
Cơ sở dữ liệu
2. Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp Điểmthi
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Quan hệ R không ở dạng chuẩn 1 vì thuộc tính Điểmthi là thuộc
tính phức hợp.
8
Cơ sở dữ liệu
2. Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Quan hệ R ở 1NF vì các thuộc tính của R không là thuộc tính đa trị,
không là thuộc tính phức hợp.
9
Cơ sở dữ liệu
Các bất thường của quan hệ ở 1NF
Thêm vào
Không thể thêm thông tin của sinh viên mới có
mã là S4, tên là Thành, thuộc lớp có mã là L1
nếu sinh viên này chưa đăng ký học môn học
nào cả.
Cập nhật
Sửa tên của sinh viên có tên là Tiến với tên mới
là Thành sẽ phải sửa tất cả các hàng của sinh
viên này.
Xóa bỏ
Xóa thông tin sinh viên S3 đăng ký môn học M1
sẽ làm mất thông tin của sinh viên này.
Nguyên nhân
Tồn tại thuộc tính không khóa phụ thuộc hàm
riêng phần vào khóa.
2. Dạng chuẩn 1
10
Cơ sở dữ liệu
Định nghĩa
Quan hệ R ở dạng chuẩn 2 (2NF - Second
Normal Form) nếu R ở dạng chuẩn 1 và mọi
thuộc tính không khóa đều phụ thuộc hàm
đầy đủ vào mọi khóa của R.
3. Dạng chuẩn 2
11
Cơ sở dữ liệu
3. Dạng chuẩn 2
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc Điểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Các phụ thuộc hàm: Khóa của R: {Mãsv, Mônhọc}
Mãsv {Họtên, Mãlớp}
Mãlớp Tênlớp
{Mãsv, Mônhọc} Điểm
Lược đồ quan hệ R không ở 2NF vì thuộc tính không khóa Họtên
phụ thuộc hàm riêng phần vào khóa {Mãsv, Mônhọc}.
12
Cơ sở dữ liệu
3. Dạng chuẩn 2
R
1
Mãsv Họtên Mãlớp Tênlớp
S1 Tiến L1 MT01
S2 Trúc L1 MT01
S3 Hiền L2 MT02
Mãsv Mônhọc Điểm
S1 M1 9
S1 M2 7
S1 M3 8
S2 M1 9
S2 M2 8
S3 M1 5
R
2
Khóa của R
1
: Mãsv
Lược đồ quan hệ R
1
và R
2
đều ở 2NF vì các thuộc tính không
khóa đều phụ thuộc hàm đầy đủ vào khóa.
Khóa của R
2
: {Mãsv, Mônhọc}
13
Cơ sở dữ liệu
Các bất thường của quan hệ ở 2NF
Thêm vào
Không thể thêm thông tin của lớp L3 có tên là
MT03 nếu chưa có sinh viên nào học lớp này.
Cập nhật
Sửa tên của lớp có mã L1 với tên mới là MT_1 sẽ
phải sửa tất cả các hàng của lớp này.
Xóa bỏ
Xóa thông tin của sinh viên có mã S3 sẽ làm mất
thông tin của lớp L2.
Nguyên nhân
Tồn tại thuộc tính không khóa phụ thuộc bắc
cầu vào khóa.
3. Dạng chuẩn 2
14
Cơ sở dữ liệu
Định nghĩa
Quan hệ R ở dạng chuẩn 3 (3NF- Third
Normal Form) nếu R ở dạng chuẩn 1 và mọi
thuộc tính không khóa đều không phụ thuộc
bắc cầu vào một khóa của R.
4. Dạng chuẩn 3
15
Cơ sở dữ liệu
4. Dạng chuẩn 3
R
1
Mãsv Họtên Mãlớp Tênlớp
S1 Tiến L1 MT01
S2 Trúc L1 MT01
S3 Hiền L2 MT02
Lược đồ quan hệ R
1
không ở 3NF vì thuộc tính không khóa
Tênlớp phụ thuộc bắc cầu vào khóa Mãsv.
Mãsv Mãlớp Mãlớp Tênlớp
Mãlớp / Mãsv Tênlớp {Mãsv, Mãlớp}
16
Cơ sở dữ liệu
4. Dạng chuẩn 3
R
11
Mãlớp Tênlớp
L1 MT01
L2 MT02
Mãsv Họtên Mãlớp
S1 Tiến L1
S2 Trúc L1
S3 Hiền L2
R
12
Khóa của R
11
: Mãlớp
Khóa của R
12
: Mãsv
Lược đồ quan hệ R
11
và R
12
đều ở 3NF vì các thuộc tính không
khóa đều không phụ thuộc bắc cầu vào khóa.
Tóm tắt 3 dạng chuẩn 1-3
NF Nhận biết Cách chuẩn hóa
1 Quan hệ ko có thuộc
tính đa trị và quan hệ
lặp
Chuyển tất cả quan hệ lặp
hoặc đa trị thành 1 quan
hệ mới
2 Phụ thuộc 1 phần vào
thuộc tính khóa
Tách thuộc tính phụ
thuộc 1 phần thành lược
đồ mới, đảm bảo quan hệ
với lược đồ liên quan
3 Phụ thuộc ẩn, tồn tại
phụ thuộc hàm giữa
các thuộc tính ko phải
là khóa
Tách các thuộc tính đó
thành lược đồ mới
Ví dụ:
MaSV Hoten Mamon Tenmon Sodvht
1 Hoa M1 CSDL 5
2 Tuấn M1 CSDL 5
3 Lan M2 TTNT 6
4 Hương M2 TTNT 6
Ví dụ:
MaSV Hoten Mamon
1 Hoa M1
2 Tuấn M1
3 Lan M2
4 Hương M2
1 Hoa M2
Mamon Tenmon Sodvht
M1 CSDL 5
M2 TTNT 6
R1
R2
Ví dụ 2:
MaSV Mamon Tenmon Diem
1 M1 CSDL 5
2 M1 CSDL 4
3 M2 TTNT 7
4 M2 TTNT 6
R3
Ví dụ 2:
MaSV Mamon Diem
1 M1 5
2 M1 4
3 M2 7
4 M2 6
Mamon Tenmon
M1 CSDL
M2 TTNT
R4
R5
5. Dạng chuẩn Boyce-Codd
5.1. Định nghĩa
Lược đồ quan hệ R với tập các phụ thuộc
hàm F được gọi là ở dạng chuẩn Boyce-Codd
nếu X A đúng trên R, với A là thuộc tính
không thuộc X th
ì X
là một khoá bao hàm.
Nhận xét:
(1) Ta phải xét mọi phụ thuộc hàm không tầm
thường X A của F
+
(2) X là một khoá bao hàm (siêu khoá) nghĩa là
X phải chứa một khoá nào đó của R
5. Dạng chuẩn Boyce-Codd
5.1. Định nghĩa
Lược đồ quan hệ R với tập các phụ thuộc
hàm F được gọi là ở dạng chuẩn Boyce-Codd
nếu X A đúng trên R, với A là thuộc tính
không thuộc X là một khoá bao hàm.
5.2. Nhận xét:
(1) Ta phải xét mọi phụ thuộc hàm không tầm
thường X A của F
+
(2) X là một khoá bao hàm (siêu khoá) nghĩa là
X phải chứa một khoá nào đó của R
5. Dạng chuẩn Boyce-Codd
V
í dụ:
Cho lược đồ R(CSZ) với các phụ thuộc
hàm:
CS Z và Z C
Lược đồ R có 2 khoá là SC và SZ
Các thuộc tính đều là thuộc tính khoá,
do đó lược đồ đạt 3NF.
5. Dạng chuẩn Boyce-Codd
V
í dụ:
Vì Z C đúng trong CSZ nhưng Z không
phải là khoá của CSZ
Lược đồ quan hệ CSZ không có dạng
BCNF