Chương 66 Chương
ChuChuẩẩn hn hóóaa (Normalization) (Normalization)
1
1
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
2
BBảảngng chưa
chưa chuchuẩẩnn hhóóaa
• 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)
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
3
3
1 (1NF) DDạạngng chuchuẩẩnn 1 (1NF)
First • Lược ñồ quan hệ R ở dạng chuẩn 1 _ First
Form, nếu
Normal Form, Normal – Có khóa chính, và – Không có nhóm lặp lại
PROJ_NUM
EMP_NUM
PROJ_NAME
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
4
4
18
Amber Wave
104
Anne K. Ramoras
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
Full functional dependency • Phụ thuộc hàm ñầy ñủ _ Full functional dependency – X(cid:1)A là phụ thuộc hàm ñầy ñủ ⇔ ∃ Y ⊂ X , Y(cid:1)A – Ngược lại : X(cid:1)A là phụ thuộc hàm không ñầy ñủ
5
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 (cid:1) PROJ_NAME, EMP_NAME f2: EMP_NUM (cid:1) EMP_NAME f3: PROJ_NUM (cid:1) 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
6
DDạạngng chuchuẩẩnn 3 3 (3NF
(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
7
7
hoặc A là 1 thuộc tính khoá
DDạạng chu
n 3 (3NF ) 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 (cid:1) EMP_NAME,JOB_CLASS,CHG_HOUR f2 : JOB_CLASS (cid:1) CHG_HOUR }
=> f2 là phụ thuộc hàm bắc cầu
(transitive dependency)
8
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 (cid:1) Assign_hours f2: Assign_hours (cid:1) Emp_num
9
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ó
BCNF
3NF
2NF
1NF
10
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
11
Ví dụ về chuẩn hóa
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 )
f1: PROJ_NUM, EMP_NUM (cid:1)(cid:1)(cid:1)(cid:1) PROJ_NAME, EMP_NAME,
JOB_CLASS, CHG_HOUR, HOURS
f2: PROJ_NUM (cid:1)(cid:1)(cid:1)(cid:1) PROJ_NAME f3: EMP_NUM (cid:1)(cid:1)(cid:1)(cid:1) EMP_NAME, JOB_CLASS, CHG_HOUR f4: JOB_CLASS (cid:1)(cid:1)(cid:1)(cid:1) CHG_HOUR
12
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
13
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
14
Lược ñồ CSDL kết quả
Sau quá trình chuẩn hóa Q, ta thu ñược một lược ñồ CSDL ñạt 3NF
15
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 (cid:1) Assign_hours f2: Assign_hours (cid:1) Emp_num
Hoặc
PROJ_NUM ASSIGN_HOURS EMP_NUM
PROJ_NUM
ASSIGN_HOURS
ASSIGN_HOURS EMP_NUM
16
16
ðạt BCNF
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
17
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
18
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
19
Phân rã bảo toàn thông tin
r
TENNCC DIACHI DONGIA SANPHAM
12 Nguyeãn Kieäm Gaïch oáng Hung 200
12 Nguyeãn Kieäm Gaïch theû Hung 250
+
+
40 Nguyeãn Oanh Gaïch oáng Hung 200
DIACHI r1 = r.Q1 TENNCC SANPHAM DONGIA r2 = r.Q2 TENNCC
12 Nguyeãn Kieäm Hung Gaïch oáng Hung 200
40 Nguyeãn Oanh Hung Gaïch theû Hung 250
SANPHAM DONGIA DIACHI r’ = r1|><|r2 TENNCC
12 Nguyeãn Kieäm Gaïch oáng Hung 200
12 Nguyeãn Kieäm Gaïch theû Hung 250
40 Nguyeãn Oanh Gaïch oáng Hung 200
20
Phân rã không bảo toàn thông tin
40 Nguyeãn Oanh Gaïch theû Hung 250
Phân rã bảo toàn phụ thuộc hàm
• Cho phân rã D = (Q1, Q2,…, Qk) 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 ⊆ Qi} 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
21
Ý nghĩa của phân rã bảo toàn pth
• Ví dụ
22
Phân rã không bảo toàn phụ thuộc hàm
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
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
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ã
24
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ã
25