• 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
25 trang |
Chia sẻ: candy98 | Lượt xem: 1016 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 6: Chuẩn hóa - Nguyễn Việt Cường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Chương 6
Chuẩn hóa
(Normalization)
1
2Khá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
3Bả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
Annelise Jones, James J.
Frommer, Anne K. Ramoras
114, 118,
104
Amber Wave18
June E. Arbough, John G.
News, Alice K. Johnson
103, 101,
105
Evergreen15
EMP_NAMEEMP_NUMPROJ_NAMEPROJ_NUM
Nhóm giá trị lặp
4Dạng chuẩn 1 (1NF)
• Lược ñồ quan hệ R ở dạng chuẩn 1 _ First
Normal Form, nếu
– Có khóa chính, và
– Không có nhóm lặp lại
4
Anne K. Ramoras104Amber Wave18
James J. Frommer118Amber Wave18
Annelise Jones114Amber Wave18
Alice K. Johnson105Evergreen15
John G. News101Evergreen15
June E. Arbough103Evergreen15
EMP_NAMEEMP_NUMPROJ_NAMEPROJ_NUM
5Dạ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
– 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 ñủ
6Dạ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
7Dạ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
8Dạ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)
9Dạ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 toàn thông tin
200Gaïch oáng40 Nguyeãn OanhHung
250Gaïch theû12 Nguyeãn KieämHung
200Gaïch oáng12 Nguyeãn KieämHung
DONGIASANPHAMDIACHITENNCC
r
250Gaïch theûHung40 Nguyeãn OanhHung
200Gaïch oángHung12 Nguyeãn KieämHung
DONGIASANPHAMTENNCCDIACHITENNCC
r1 = r.Q1
+r2 = r.Q2
+
250Gaïch theû40 Nguyeãn OanhHung
200Gaïch oáng40 Nguyeãn OanhHung
250Gaïch theû12 Nguyeãn KieämHung
200Gaïch oáng12 Nguyeãn KieämHung
DONGIASANPHAMDIACHITENNCC
r’ = r1|><|r2
Phân rã không bảo toàn thông tin
21
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
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ã