1
Chương 6
Chương 6
Chuẩn hóa
Chuẩn hóa
(Normalization)
(Normalization)
1
2
Khái niệm “Chuẩn hóa”
•
Chuẩn hóa được xem như là một công cụ dùng trong các pp
thiết kế CSDL
–
Chuẩn hóa được thực hiện sau khi thiết kế
CSDL dùng mô hình ER
•
Là quá trình đánh giá và chỉnh sửa cấu trúc bảng để giảm thiểu
dư thừa dữ liệu
–
Dư thừa dữ liệu có khả năng làm cho dữ liệu
không nhất quán (mâu thuẫn dữ liệu)
•
Các dạng chuẩn 1NF, 2NF, 3NF, BCNF
3
Bảng chưa chuẩn hóa
Bảng chưa chuẩn hóa
•
Bảng không ở dạng chuẩn 1 ( hay chưa chuẩn hóa) nếu nó
chứa một hoặc nhiều nhóm giá trị lặp
•
Nhóm giá trị lặp(Repeating group)
3
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME
15 Evergreen 103, 101,
105
June E. Arbough, John G.
News, Alice K. Johnson
18 Amber Wave 114, 118,
104
Annelise Jones, James J.
Frommer, Anne K. Ramoras
Nhóm giá trị lặp
4
Dạng chuẩn 1 (1NF)
Dạng chuẩn 1 (1NF)
•
Lược đồ quan hệ R ở dạng chuẩn 1 _
First Normal Form,
First Normal Form, nếu
–
Có khóa chính, và
–
Không có nhóm lặp lại
4
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME
15 Evergreen 103 June E. Arbough
15 Evergreen 101 John G. News
15 Evergreen 105 Alice K. Johnson
18 Amber Wave 114 Annelise Jones
18 Amber Wave 118 James J. Frommer
18 Amber Wave 104 Anne K. Ramoras
5
Dạng chuẩn 2 (2NF)
•
Lược đồ quan hệ R(U,F) ở dạng chuẩn 2 khi :
–
Bảng ở dạng chuẩn 1, và
–
Mọi thuộc tính không khóa đều phụ thuộc
đầy đủ vào mọi khóa của R
•
Nhận xét : Nếu R chỉ có các khóa gồm một thuộc tính
thì đương nhiên R ở dạng chuẩn 2
•
Phụ thuộc hàm đầy đủ _
Full functional dependency
Full functional dependency
–
XA là phụ thuộc hàm đầy đủ ⇔ ∃ Y ⊂ X , YA
–
Ngược lại : XA là phụ thuộc hàm không đầy đủ
6
Dạng chuẩn 2 (2NF)
•
Lược đồ sau không đạt 2NF
Q(PROJ_NUM, EMP_NUM, PROJ_NAME, EMP_NAME)
với tập F = {
f1: PROJ_NUM, EMP_NUM PROJ_NAME, EMP_NAME
f2: EMP_NUM EMP_NAME
f3: PROJ_NUM PROJ_NAME }
Gọi : f1 là phụ thuộc hàm không đầy đủ
f2, f3 là phụ thuộc riêng phần_ partial FD
7
Dạng chuẩn 3 (3NF )
Dạng chuẩn 3 (3NF )
•
Định nghĩa 1: Lược đồ quan hệ R ở 3NF đối với tập phụ thuộc hàm
F nếu:
–
R ở dạng 2NF, và
–
Mọi thuộc tính không khóa đều không phụ thuộc
bắc cầu vào khóa chính của R
•
Định nghĩa 2: Lược đồ quan hệ R ở 3NF đối với tập phụ thuộc hàm
F nếu:
–
R ở dạng chuẩn 1, và
∀ X->A với A ∉X thì X là 1 siêu khoá của R hoặc
A là 1 thuộc tính khoá
7
8
Dạng chuẩn 3 (3NF )
Dạng chuẩn 3 (3NF )
•
Lược đồ sau không đạt 3NF
Q( EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR )
với tập F = {
f1 : EMP_NUM EMP_NAME,JOB_CLASS,CHG_HOUR
f2 : JOB_CLASS CHG_HOUR }
=> f2 là phụ thuộc hàm bắc cầu
(transitive dependency)
9
Dạng chuẩn BCNF
•
BCNF được xem là trường hợp đặc biệt của 3NF
•
Lược đồ quan hệ R(U,F), được gọi là đạt BCNF nếu
mọi X →A ∈ F , A∉X thì X là một siêu khóa của R
•
Lược đồ quan hệ sau không đạt BCNF
R( Proj_name, Emp_name, Assign_hours )
với 2 phụ thuộc hàm
f1: Proj_name, Emp_name Assign_hours
f2: Assign_hours Emp_num
10
Dạng chuẩn _ nhận xét
•
Các qui tắc xác định các dạng chuẩn đều dựa vào khóa
•
Dạng chuẩn 2NF tốt hơn 1NF; 3NF tốt hơn 2NF, …
–
Mỗi dạng chuẩn đưa ra các điều kiện bổ sung
cho dạng chuẩn thấp hơn nó
1NF
2NF
3NF
BCNF
11
Quá trình chuẩn hóa lược đồ CSDL
•
Thực hiện chuẩn hóa từng lược đồ quan hệ
–
Là quá trình biến đổi dạng chuẩn của một lược đồ
quan hệ từ thấp nhất tới dạng chuẩn cao nhất
–
Phân tách một LĐQH dần dần thành nhiều LĐQH
mới dựa trên việc nhận diện các phụ thuộc hàm
•
Dạng chuẩn của một lược đồ CSDL bằng dạng chuẩn của lược đồ
quan hệ cao nhất
12
f1: PROJ_NUM, EMP_NUM PROJ_NAME, EMP_NAME,
JOB_CLASS, CHG_HOUR, HOURS
f2: PROJ_NUM PROJ_NAME
f3: EMP_NUM EMP_NAME, JOB_CLASS, CHG_HOUR
f4: JOB_CLASS CHG_HOUR
Xét R(U,F) đạt dạng chuẩn 1
R ( PROJ_NUM, EMP_NUM, PROJ_NAME, EMP_NAME,
JOB_CLASS, CHG_HOUR, HOURS )
Ví dụ về chuẩn hóa
13
Ví dụ về chuẩn hóa
Chuyển đổi sang dạng chuẩn 2
Loại bỏ các phụ thuộc hàm riêng phần và tạo thêm các Lược đồ
quan hệ mới tương ứng
14
Ví dụ về chuẩn hóa
Chuyển đổi sang dạng chuẩn 3
•
Loại bỏ các phụ thuộc bắc cầu trong lđqh và tạo ra các
lđqh mới tương ứng
15
Sau quá trình chuẩn hóa Q, ta thu được một lược đồ CSDL
đạt 3NF
Lược đồ CSDL kết quả
16
Đạt BCNF
Ví dụ về chuẩn hóa
Chuyển đổi sang dạng chuẩn BCNF
•
Giả định, trong bảng ASSIGNMENT tồn tại 2 phụ thuộc
hàm
f1: Proj_name, Emp_name Assign_hours
f2: Assign_hours Emp_num
16
PROJ_NUM ASSIGN_HOURS EMP_NUM
PROJ_NUM
ASSIGN_HOURS EMP_NUMASSIGN_HOURS
Hoặc
17
Chuẩn hóa và Thiết kế CSDL
•
Chuẩn hóa được xem như một phương pháp thiết kế CSDL độc lập
–
Có 2 cách tiếp cận : tổng hợp và phân rã
•
Với phần lớn các mục tiêu thiết kế DB : 3NF là dạng chuẩn cao cần
đạt tới trong quá trình chuẩn hóa
–
Dạng chuẩn cao nhất không phải luôn luôn là mục
tiêu cần đạt tới
–
Giảm dạng chuẩn
18
Chuẩn hóa LDQH bằng Phân rã
•
Quá trình chuẩn hóa LDQH là quá trình phân rã LDQH ban đầu
thành một số LDQH con
–
Các LDQH con đạt dạng chuẩn cao hơn =>
giảm dư thừa dữ liệu
•
Về mặt lý thuyết, quá trình phân rã phải đảm bảo 2 yêu cầu
–
Bảo toàn thông tin
–
Bảo toàn phụ thuộc hàm
•
Thuật toán phân rã thành BC (hay 3NF) bảo toàn thông tin và
bảo toàn phụ thuộc hàm
19
Phân rã bảo toàn thông tin
•
Xét lược đồ quan hệ Q và tập F, giả sử Q được phân
rã thành D= { Q1, Q2 }
Nói rằng D là phép phân rã bảo toàn thông tin nếu với
mọi r là quan hệ bất kỳ của Q ta có
r = r.Q1 |><| r.Q2
•
Tính chất
Xét lược đồ quan hệ Q và tập F, D= { Q1, Q2 } là phân
rã bảo toàn thông tin nếu và chỉ nếu
(Q1+
∩
Q2+ )
→
Q2+
∈
F+ hoặc
(Q1+
∩
Q2+ )
→
Q1+
∈
F+
•
Phép tách Q thành n lược đồ quan hệ Q1, Q2,…Qn
bảo toàn thông tin , nếu ở các bước trung gian tách Q
thành Qi và Qik bảo toàn thông tin
20
Phân rã bảo tồn thơng tin
r
TENNCC DIACHI SANPHAM DONGIA
Hung 12 Nguyễn Kiệm Gạch ống 200
Hung 12 Nguyễn Kiệm Gạch thẻ 250
Hung 40 Nguyễn Oanh Gạch ống 200
r
2
= r.Q
2
+
r
1
= r.Q
1
+
TENNCC DIACHI TENNCC SANPHAM DONGIA
Hung 12 Nguyễn Kiệm Hung Gạch ống 200
Hung 40 Nguyễn Oanh Hung Gạch thẻ 250
r’ = r
1
|><|r
2
TENNCC DIACHI SANPHAM DONGIA
Hung 12 Nguyễn Kiệm Gạch ống 200
Hung 12 Nguyễn Kiệm Gạch thẻ 250
Hung 40 Nguyễn Oanh Gạch ống 200
Hung 40 Nguyễn Oanh Gạch thẻ 250
Phân rã khơng bảo tồn thơng tin
21
Phân rã bảo toàn phụ thuộc hàm
•
Cho phân rã D = (Q
1
, Q
2
,…, Q
k
) của lược đồ Q và tập pth F,
với hình chiếu của F trên Qi ký hiệu Π
Qi
(F)
sao cho Π
Qi
(F)={ X→Y | X → Y ∈ F
+
và XY ⊆ Q
i
}
Ta nói phân rã D bảo toàn tập phụ thuộc hàm F nếu
F ≡ ∪ Π
Qi
(F) ⇔ F
+
= (∪ Π
Qi
(F))
+
với i=1 k
22
Ý nghĩa của phân rã bảo toàn pth
•
Ví dụ
Phân rã không bảo toàn phụ thuộc hàm
23
Thuật toán phân rã thành 3NF bảo toàn
thông tin , bảo toàn phụ thuộc hàm
•
B1 : Tìm phủ tối thiểu Ftt của F
•
B2 :
–
Nếu có những thuộc tính của Q không nằm trong một
phụ thuộc nào của Ftt - dù ở vế phải hay vế trái của F
thì chúng tạo thành một lược đồ.
–
Nếu có một phụ thuộc hàm nào của Ftt mà liên quan
đến tất cả các thuộc tính của Q thì kết quả phân rã
chính là Q ( Q không thể phân rã)
–
Cứ mỗi phụ thuộc hàm X
→
A
∈
Ftt thì XA là một lược
đồ cần tìm
–
Nếu có một lược đồ con chứa khóa K của Q thì kết thúc
thuật toán .Ngược lại tạo một lược đồ con K
24
Thuật toán phân rã thành 3NF bảo toàn
thông tin , bảo toàn phụ thuộc hàm
Ví dụ: cho lược đồ
Q(CTHRSG),F={C→T,HR→C,TH→R,CS→G,HS→R}
Hãy phân rã Q thành các lược đồ con đạt dạng chuẩn 3 vừa bảo
toàn thông tin vừa bảo toàn phụ thuộc hàm?
Giải:
•
F = Ftt = {C→T,HR→C,TH→R,CS→G,HS→R} là phủ tối thiểu.
•
Áp dụng thuật toán trên Q được phân rã thành các lược đồ con
Q1(CT)
Q2(HRC)
Q3(THR)
Q4(CSG)
Q5(HSR)
•
Khóa của Q là HS
∀
⇒Q1,Q2,Q3,Q4,Q5 chính la ket qua phân rã
25
Tóm tắt
Tồn tại nhiều phụ thuộc hàm
trong một LĐQH
Dư thừa dữ liệu
Các dạng chuẩn
1NF, 2NF, 3NF, BCNF
Chuẩn hóa LĐQH
Chuẩn hóa
bằng Phân rã