CƠ SỞ DỮ LIỆU
( Databases )
Chương 5: Dạng chuẩn và Chuẩn hóa
Nội dung
1. Dạng chuẩn
2. Chuẩn hóa lược đồ CSDL
3. Bài tập
Chương 5 - Dạng chuẩn và chuẩn hóa
2
5.1. Dạng chuẩn
Chuẩn hóa là gì?
– Chuẩn hóa là kỹ thuật dùng để tạo ra một tập các quan
hệ có các đặc điểm mong muốn dựa vào các yêu cầu
về dữ liệu của 1 enterprise
– Chuẩn hóa là 1 cách tiếp cận từ dưới lên (bottom-up
approach) để thiết kế CSDL, bắt đầu từ các mối liên hệ
giữa các thuộc tính
Mục đích của chuẩn hóa
– Loại bỏ các bất thường của 1 quan hệ để có được các
quan hệ có cấu trúc tốt hơn, nhỏ hơn
Quan hệ có cấu trúc tốt (well-structured relation):
– Là quan hệ có sự dư thừa dữ liệu là tối thiểu và cho
phép người dùng thêm, sửa, xóa mà không gây ra mâu
thuẫn dữ liệu
3
Chương 5 - Dạng chuẩn và chuẩn hóa
5.1.1.Sự dư thừa dữ liệu
Sự phụ thuộc giữa các thuộc tính gây ra sự dư thừa
– Ví dụ:
• Điểm các môn học
• Địa chỉ
zip code
Điểm trung bình
xếp loại
MAPHG
TRPHG
NG_NHANCHUC MANV
TENNV
HONV
…
Nghien cuu
5
333445555
05/22/1988
333445555
Tung
Nguyen
…
Dieu hanh
4
987987987
01/01/1995
987987987
Hung
Nguyen
…
Quan ly
1
888665555
06/19/1981
888665555
Vinh
Pham
…
TENPHG
Chương 5 - Dạng chuẩn và chuẩn hóa
4
5.1.1.Sự dư thừa dữ liệu (tt)
Thuộc tính đa trị trong lược đồ ER
trong lược đồ quan hệ
nhiều bộ số liệu
Ví dụ:
NHANVIEN(TENNV, HONV, NS,DCHI,GT,LUONG, BANGCAP)
TENNV
HONV
NS
DCHI
GT
LUONG
BANGCAP
Tung
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
Trung học
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
Trung học
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
Đại học
Hung
Nguyen
09/15/1962
Ba Ria VT
Nam
38000
Thạc sỹ
5
Chương 5 - Dạng chuẩn và chuẩn hóa
5.1.1.Sự dư thừa dữ liệu (tt)
Sự dư thừa
sự dị thường
– Thao tác sửa đổi: cập nhật tất cả các giá trị liên quan
– Thao tác xóa: người cuối cùng của đơn vị
mất thông
tin về đơn vị
– Thao tác thêm:
MAPHG
TRPHG
NG_NHANCHUC MANV
Nghien cuu
5
333445555
05/22/1988
Dieu hanh
4
987987987
Quan ly
1
888665555
TENPHG
TENNV
HONV
…
333445555
Tung
Nguyen
…
01/01/1995
987987987
Hung
Nguyen
…
06/19/1981
888665555
Vinh
Pham
…
Chương 5 - Dạng chuẩn và chuẩn hóa
6
5.1.1.Sự dư thừa dữ liệu (tt)
Các giá trị không xác định
– Đặt thuộc tính Trưởng phòng vào quan hệ NHANVIEN
thay vì vào quan hệ PHONGBAN
Các bộ giả
– Khi sử dụng các phép nối
Chương 5 - Dạng chuẩn và chuẩn hóa
7
5.1.1.Sự dư thừa dữ liệu (tt)
Một số quy tắc khi thiết kế CSDL quan hệ
– NT1: Rõ ràng về mặt ngữ nghĩa, tránh các sự phụ
thuộc giữa các thuộc tính với nhau
– NT2: Tránh sự trùng lặp về nội dung đảm bảo tránh
được các dị thường khi thao tác cập nhật dữ liệu
• Phải có một số thao tác khi thêm mới và cập nhật vào lược đồ quan
hệ, cũng như có thể gây sai hỏng trong trường hợp xóa bỏ các bộ
– NT3: Tránh sử dụng các thuộc tính có nhiều giá trị Null
• Khó thực hiện các phép nối và kết hợp
– NT4: Thiết kế các lược đồ quan hệ sao cho chúng có
thể được nối với điều kiện bằng trên các thuộc tính là
khoá chính hoặc khoá ngoài theo cách đảm bảo không
sinh ra các bộ “giả”
Chương 5 - Dạng chuẩn và chuẩn hóa
8
5.1.2. Các dạng chuẩn
Mỗi một dạng chuẩn là một tập các điều kiện trên
lược đồ nhằm đảm bảo các tính chất của nó (liên
quan tới dư thừa và bất thường trong cập nhật)
Chuẩn hóa dữ liệu: quá trình phân tích lược đồ quan
hệ dựa trên các FD và các khóa chính để đạt được
– Cực tiểu sự dư thừa
– Cực tiểu các phép cập nhật bất thường
Chương 5 - Dạng chuẩn và chuẩn hóa
9
5.1.2. Các dạng chuẩn (tt)
Phân loại
–
–
–
–
–
Dạng chuẩn 1 (1NF – first normal form)
Dạng chuẩn 2 (2NF – second normal form)
Dạng chuẩn 3 (3NF – third normal form)
Dạng chuẩn BCNF (Boyce-Codd normal form)
Dạng chuẩn 4NF
Chương 5 - Dạng chuẩn và chuẩn hóa
10
Dạng chuẩn 1
Định nghĩa: quan hệ R được gọi là ở dạng 1NF nếu
miền giá trị của một thuộc tính chỉ chứa giá trị nguyên
tố đơn, ko phân chia được) và giá trị của mỗi thuộc
tính cũng là một giá trị đơn lấy từ miền giá trị của nó
Ví dụ
PHONGBAN( MaPHG, TenPHG, DDIEM)
Thuộc
tính đa trị
PHONGBAN(MaPHG, TenPHG)
DDIEM_PHG(MaPHG, DDIEM)
Chương 5 - Dạng chuẩn và chuẩn hóa
11
Dạng chuẩn 1 (tt)
Table (Key1, . . . (Key2, . . . (Key3, . . .) ) )
Table1(Key1, . . .)
TableA (Key1,Key2 . . .(Key3, . . .) )
Table2 (Key1, Key2 . . .)
Table3 (Key1, Key2, Key3, . . .)
Lược đồ gốc:
Table (Key1, aaa. . . (Key2, bbb. . . (Key3, ccc. . .) ) )
Để thỏa mãn 1NF chúng ta thực hiện
– Table1(Key1, aaa . . .)
– Table2(Key1, Key2, bbb . .)
– Table3(Key1, Key2, Key3, ccc. . .)
Chương 5 - Dạng chuẩn và chuẩn hóa
12
Dạng chuẩn 1 (tt)
Vấn đề còn tồn tại trong 1NF
Xét lược đồ
DDIEM_PHG(MaPHG, DDIEM)
– Vẫn bị lặp lại
– Ẩn chứa các phụ thuộc hàm
bộ phận
MAPHG
DIADIEM
1
TP HCM
4
HA NOI
5
VUNGTAU
5
NHATRANG
5
TP HCM
Chương 5 - Dạng chuẩn và chuẩn hóa
13
Dạng chuẩn 2
Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm X → Y
là một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ thuộc
tính A nào ra khỏi X thì phụ thuộc hàm không còn
đúng nữa.
∀ A, A ∈ X, (X – {A}) → Y : là sai.
Phụ thuộc hàm bộ phận: Một phụ thuộc hàm X → Y
là phụ thuộc bộ phận nếu có thể bỏ một thuộc tính A∈
X, ra khỏi X phụ thuộc hàm vẫn đúng, điều đó có
nghĩa là với
∃A∈ X, (X – {A}) → Y
Chương 5 - Dạng chuẩn và chuẩn hóa
14
Dạng chuẩn 2 (tt)
2NF:
– Thỏa mãn 1NF
– Phụ thuộc hàm đầy đủ vào khóa chính
Với các quan hệ có thuộc tính khóa đơn thì ko phải
xét
Chỉ kiểm tra các lược đồ có chứa phụ thuộc hàm bộ
phận
Chương 5 - Dạng chuẩn và chuẩn hóa
15
Dạng chuẩn 2 (tt)
Ví dụ
Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA(MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
Chương 5 - Dạng chuẩn và chuẩn hóa
16
Dạng chuẩn 2 (tt)
Ví dụ
Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA(MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
NV_DA(MaNV, MaDA, Sogio)
DUAN(MaDA, TenDA)
DUAN(MaDA, DDiemDA)
Chương 5 - Dạng chuẩn và chuẩn hóa
17
Dạng chuẩn 3
3NF dựa trên khái niệm phụ thuộc bắc cầu.
Định nghĩa: Một lược đồ quan hệ R là ở 3NF nếu nó:
– Thỏa mãn 2NF
– Không có thuộc tính không khoá nào của R là phụ
thuộc bắc cầu vào khoá chính.
Chương 5 - Dạng chuẩn và chuẩn hóa
18
Dạng chuẩn 3 (tt)
Phụ thuộc vào MaNV
NV_DV(MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
Tất cả các thuộc tính phải phụ thuộc vào thuộc tính
khóa
- Một vài thuộc tính phụ thuộc vào thuộc tính ko phải là
khóa
- Chuẩn hóa
Tách nhóm các thuộc tính đó thành quan
hệ mới
Chương 5 - Dạng chuẩn và chuẩn hóa
19
Dạng chuẩn 3 (tt)
Phụ thuộc vào MaNV
NV_DV(MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
NHANVIEN(MaNV, TenNV, NS, DCHI, MaDV)
DONVI(MaDV, TenDV, TruongPHG)
Chương 5 - Dạng chuẩn và chuẩn hóa
20
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 Chuyển tất cả quan hệ lặp
trị và 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ách thuộc tính phụ thuộc 1
tính khóa
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ụ Tách các thuộc tính đó thành
thuộc hàm giữa các thuộc lược đồ mới
tính ko phải là khóa
21
Chương 5 - Dạng chuẩn và chuẩn hóa
Dạng chuẩn Boyce-Codd
Một lược đồ quan hệ R được gọi là ở dạng chuẩn
Boyce-Codd (BCNF) nếu nó
– Thỏa mãn dạng chuẩn 3NF
– Không có thuộc tính phụ thuộc hàm vào thuộc tính
không khóa.
Ví dụ
R
A
B
C
D
FD1
FD2
FD5
Chương 5 - Dạng chuẩn và chuẩn hóa
22
Dạng chuẩn Boyce-Codd(tt)
Ví dụ:
R (A1,A2,A3,A4,A5)
Với các phụ thuộc hàm:
A1,A2 → A3,A4,A5
A4 → A2
Chương 5 - Dạng chuẩn và chuẩn hóa
23
Dạng chuẩn Boyce-Codd(tt)
Nếu một lược đồ quan hệ không thoả mãn điều kiện BCNF,
thủ tục chuẩn hóa bao gồm:
– Loại bỏ các thuộc tính khóa phụ thuộc hàm vào thuộc tính
không khóa ra khỏi quan hệ
– tách chúng thành một quan hệ riêng có khoá chính là thuộc tính
không khóa gây ra phụ thuộc.
Ví dụ trên: R (A1,A2,A3,A4,A5)
Với các phụ thuộc hàm:
– A1,A2 → A3,A4,A5
– A4 → A2
lược đồ được tách ra như sau:
– R1( A4, A2)
– R2(A1, A4, A3, A5)
Chương 5 - Dạng chuẩn và chuẩn hóa
24
Dạng chuẩn Boyce-Codd(tt)
Ví dụ
Phụ thuộc vào cả 2 MaSV, MaMH
SV_MH_GV(MaSV, MONHOC, GIANGVIEN)
Phụ thuộc vào MONHOC
Chương 5 - Dạng chuẩn và chuẩn hóa
25
Dạng chuẩn Boyce-Codd(tt)
Ví dụ
Phụ thuộc vào cả 2 MaSV, MaMH
SV_MH_GV(MaSV, MaMH, MaGV)
Phụ thuộc vào MONHOC
SV_MH(MaSV, MaMH)
MH_GV(MaGV, MaMH)
Chương 5 - Dạng chuẩn và chuẩn hóa
26
5.1.3. Phân rã lược đồ quan hệ
Lược đồ quan hệ chung R(A1, …, An)
– Tập hợp tất cả các thuộc tính của các thực thể.
Xác định tập phụ thuộc hàm F trên R.
Phân rã
– Sử dụng các thuật toán chuẩn hóa để tách R thành tập
các lược đồ D = {R1, …, Rm}.
Yêu cầu
– Bảo toàn thông tin
– Các lược đồ Ri phải ở dạng chuẩn 3 hoặc BCNF.
Chương 5 - Dạng chuẩn và chuẩn hóa
27
Phân rã bảo toàn thông tin
Sau phân rã, CSDL không còn lưu trữ quan hệ R
nữa mà chỉ lưu lại các quan hệ chiếu của nó R1,
R2,..,Rn. CSDL phải có khả năng khôi phục lại
quan hệ gốc R từ các quan hệ chiếu này.
Nếu không khôi phục lại được quan hệ R thì việc
phân rã không biểu diễn cùng 1 thông tin với
CSDL gốc →
Phân rã mất mát (lossy
decomposition)
Chương 5 - Dạng chuẩn và chuẩn hóa
28
Phân rã bảo toàn thông tin (tt)
Phân rã lược đồ R = (U,F) thành 1 tập hợp các lược
đồ: R1 = (U1,F1) R2= (U2, F2)…. Rn = (Un,Fn)
Phân rã không mất mát thông tin nếu với mỗi thể hiện
r hợp lệ của R thì:
r = r1
r2
Với r1 = πU1(r)
…..
rn
r2 = πU2(r),….
rn = πUn(r)
29
Chương 5 - Dạng chuẩn và chuẩn hóa
Phân rã bảo toàn thông tin (tt)
Thực tế sẽ nhận được nhiều bộ (tuple) từ phép kết
các r1, r2,…,rn hơn là các bộ gốc ban đầu
Vậy tại
sao lại gọi là mất mát (lossy) ??
Tuy nhiều bộ hơn nhưng lại thiếu thông tin và không
có cách nào biết được bộ nào là đúng, bộ nào là
không đúng với bộ gốc.
Nhiều bộ hơn nhưng không đúng ≡ mất mát thông tin
Chương 5 - Dạng chuẩn và chuẩn hóa
30
Phân rã bảo toàn thông tin (tt)
Định lý 5.1
– Phân rã D = {R1(U1), R2(U2)} của R(U) không mất
thông tin đối với tập PTH F nếu và chỉ nếu:
• (U1 ∩ U2) → (U1) ∈ F+, hoặc
• (U1 ∩ U2) → (U2) ∈ F+.
Định lý 5.3
– Nếu phân rã D = {R1, …, Rm} của R không mất thông
tin đối với F và phân rã Di = {Q1, …, Qk} của Ri không
mất thông tin đối với πRi(F) thì D’ = {R1, …, Ri-1, Q1, …,
Qk, Ri+1, …, Rm} của R cũng không mất thông tin.
31
Chương 5 - Dạng chuẩn và chuẩn hóa
Ví dụ
Xét lược đồ quan hệ
PERSON(SSN, Name, Address,Hobby)
SSN
Name
Address
Hobby
1111111
John
123 Main St.
Stamps
1111111
John
123 Main St.
Coins
5556667
Mary
7 Lake Dr.
Hiking
5556667
Mary
7 Lake Dr.
Skating
9876543
Simpson
Fox 5 TV
Acting
Nếu phân rã lược đồ trên thành 2 lược đồ:
PERSON1(SSN, Name, Address)
HOBBY(SSN, Hobby)
Việc phân rã này có mất thông tin không?
Chương 5 - Dạng chuẩn và chuẩn hóa
32
Ví dụ
Ta có:
PERSON1 ∩ HOBBY = {SSN}
mà SSN là khóa chính của PERSON1, do đó
PERSON1 ∩ HOBBY
PERSON1
Vậy: Phân rã này không mất thông tin
33
Chương 5 - Dạng chuẩn và chuẩn hóa
Phân rã bảo toàn phụ thuộc hàm
Xét lược đồ quan hệ sau:
HASACCOUNT(ClientId, OfficeId, AccountNumber)
Với các PTH sau:
ClientId, OfficeId
AccountNumber
AcountNumber
OfficeId
Nếu phân rã lược đồ trên thành 2 lược đồ sau:
ACCTOFFICE (AccountNumber, OfficeId)
ACCTCLIENT (AccountNumber, ClientId)
Phân rã trên có mất mát thông tin không???
Chương 5 - Dạng chuẩn và chuẩn hóa
34
Phân rã bảo toàn PTH (tt)
Phân rã trên không mất mát thông tin vì:
ACCTOFFICE ∩ ACCTCLIENT ={AccountNumber}
Do AccountNumber
CCTOFFICE nên:
là
ACCTOFFICE ∩ ACCTCLIENT
Primary
Key
của
ACCTOFFICE
Nhưng phân rã này không bảo toàn
phụ thuộc hàm
Chương 5 - Dạng chuẩn và chuẩn hóa
35
Phân rã bảo toàn PTH (tt)
Phụ thuộc hàm gốc:
ClientId, OfficeId
AcountNumber
không tồn tại trong các phụ thuộc hàm của các
lược đồ phân rã vì:
– Cả hai phụ thuộc hàm phân rã đều không chứa đủ các
thuộc tính của phụ thuộc hàm gốc (1) nên không thể
suy diễn lại được phụ thuộc hàm này
Chương 5 - Dạng chuẩn và chuẩn hóa
36
Phân rã bảo toàn PTH (tt)
Cho lược đồ R = (U,F)
D = {R1(U1,F1) , R2(U2, F2),.., R (Un, Fn) } là phân
rã của R. Phân rã này được gọi là bảo toàn phụ
thuộc hàm nếu và chỉ nếu F và ∪ Fi là tương
đương nhau.
Nếu 1 phụ thuộc hàm f ∈ F nhưng không thuộc
bất kỳ Fi nào không có nghĩa là phân rã không
bảo toàn phụ thuộc hàm nếu f có thể được suy
diễn từ ∪ Fi
– Chỉ khi nào f không thể suy diễn từ ∪ Fi thì phân rã đó
mới không bảo toàn PTH
37
Chương 5 - Dạng chuẩn và chuẩn hóa
Ví dụ
Phân rã quan hệ HASACCOUNT
AccountNumber
ClientId
OfficeId
B123
111111
SB01
A908
123456
MN08
AccountNumber
OfficeId
Account Number ClientId
B123
SB01
B123
111111
A908
MN08
A908
123456
Chương 5 - Dạng chuẩn và chuẩn hóa
38
Ví dụ
HASACCOUNT và phân rã của nó sau khi chèn
thêm 1 hàng
AccountNumber
ClientId
OfficeId
Sau B123
khi join 2 lược đồ phân
rã lại, phụ
thuộc hàm
111111
SB01
ClientId,
B567 OfficeId
AcountNumber
bị vi phạm
111111
SB01
A908
123456
MN08
AccountNumber
OfficeId
Account Number
ClientId
B123
B567
A908
SB01
SB01
MN08
B123
111111
B567
111111
A908
123456
Chương 5 - Dạng chuẩn và chuẩn hóa
39
Phép chiếu của tập phụ thuộc hàm
Xét lược đồ quan hệ R =(U,F) và tập S ⊆ U
Phép chiếu của F lên tập các thuộc tính S được định
nghĩa như sau:
πS(F) = {X
Y|X Y ∈F+ và X ∪ Y⊆ S}
Chương 5 - Dạng chuẩn và chuẩn hóa
40
Giải thuật phân rã thành BCNF
R=(U,F) là 1 lược đồ quan hệ không ở chuẩn BCNF.
Giải thuật:
Thực hiện lặp lại việc phân chia R thành những lược đồ
nhỏ hơn sao cho các lược đồ mới có ít PTH vi phạm
BCNF hơn. Giải thuật kết thúc khi tất cả lược đồ kết quả
đều ở dạng BCNF
Chương 5 - Dạng chuẩn và chuẩn hóa
41
Giải thuật phân rã thành BCNF
Input R = (U,F)
Decom = R
While có lược đồ S=(V, F’) trong Decom không phải BCNF
/*Nếu có X Y ∈F sao cho X ∪ Y ⊆ S và vi phạm BCNF,
dùng FD này để phân rã*/
– Thay S trong Decom với S1 = (XY, F1)
– S2=( (S-Y) ∪ X, F2) với F1,F2 là tất cả các FD của F’
End
Return Decom
Chương 5 - Dạng chuẩn và chuẩn hóa
42
Ví dụ
Cho R= (U,F)
U={ABCDEFGH},
F= {ABH
C, A DE, BGH
F, F
ADH, BH
GE}
Tìm FD vi phạm BCNF
– (ABH)+ = U , ABH là siêu khóa, ABH
C không vi phạm BCNF
– A+ ≠ U, A DE vi phạm BCNF
Chia R thành
– R1 =(ADE, {A DE})
– R2 = (ABCFGH, {ABH C, BGH F, F
AH, BH G})
Chương 5 - Dạng chuẩn và chuẩn hóa
43
Ví dụ (tt)
Sau khi phân rã, chú ý đến 2 phụ thuộc hàm gốc F
ADH, BH
GE
– Chia F ADH thành {F AH, F D}
– Chia BH GE thành {BH G, BH E}
F D, BH E không có chỗ trong các phân rã mới (vì
không có ràng buộc nào có đủ thuộc tính cho các FD này)
Nhưng
– F D có thể suy diễn từ F AH ∈ R2 và A DE ∈ R1
– BH
E có thể suy diễn được dựa vào (BH)+ từ R1,R2
Phân rã R1,R2 bảo toàn phụ thuộc hàm
Chương 5 - Dạng chuẩn và chuẩn hóa
44
Ví dụ (tt)
R1 là BCNF
Với R2 (ABCFGH, {ABH C, BGH F, F
– ABH
– F
C, BGH
AH, BH G})
F không vi phạm BCNF (ABH, BGH đều là siêu khóa)
AH vi phạm BCNF
Vậy Phân rã R2 thành
– R21=(FAH, {F AH})
– R22= (FBCG, {} )
R21, R22 đều là BCNF nhưng khi đó các Phụ thuộc hàm ABH
C, BGH
F và BH G không có mặt nữa và cùng không thể suy dẫn được từ
các PTH của R21, R22 và R1
Phân rã R2 không bảo toàn phụ thuộc hàm
Chương 5 - Dạng chuẩn và chuẩn hóa
45
Nhận xét
Việc phân rã R thành R1, R21, R22 không phải là duy
nhất.
Nếu bắt đầu từ FD F
R1= (FADH; {F
ADH thì sẽ có
ADH})
R2 = (FBCEG,{})
R1,R2 cũng ở chuẩn BCNF và 1 số FD gốc cũng bị mất,
không thể suy diễn được
Chương 5 - Dạng chuẩn và chuẩn hóa
46
Tính chất của giải thuật phân rã BCNF
Không mất mát thông tin
Nhưng có thể không bảo toàn phụ thuộc hàm
Là giải thuật không xác định (nondeterministic), phụ
thuộc vào thứ tự các PTH được chọn để xét phân rã
47
Chương 5 - Dạng chuẩn và chuẩn hóa
Giải thuật phân rã thành 3NF
Cho lược đồ R(U,F)
Bước 1: Tìm phủ tối thiểu G của F
Bước 2: Phân hoạch G thành các tập phụ thuộc hàm
G1,..,Gn sao cho mỗi Gi chứa các PTH có cùng vế trái
Bước 3: với mỗi Gi, tạo 1 lược đồ (Ri, Gi) với Ri chứa
tất cả thuộc tính có trong Gi
Bước 4: Nếu một trong các Ri thỏa (Ri)+F = R thì kết
thúc, ngược lại đặt Ro=(R, {}) là 1 lược đồ mới. Khi đó
R0, R1,…, Rn là kết quả phân rã.
Chương 5 - Dạng chuẩn và chuẩn hóa
48
Tính chất của giải thuật phân rã thành 3NF
Bảo toàn phụ thuộc hàm
Không mất thông tin
49
Chương 5 - Dạng chuẩn và chuẩn hóa
Ví dụ
Cho R= (U,F) với U={ABCDEFGH}, F= {ABH
F
ADH, BH
C, A DE, BGH
F,
GE}
Phủ tối thiểu của F là: G={BH C,A D,C E,F A,E F}
Phân rã thành 5 lược đồ:
– R1 (BHC; {BH C})
– R2 (AD; {A D})
– R3 (CE; {C E})
– R4 (FA; {F A})
– R5 (EF; {E F})
Không có lược đồ phân rã nào có (Ri)+F = siêu khóa BCGH của R, nên
bổ sung thêm lược đồ thứ 6
– R6 (BCGH;{})
50
Chương 5 - Dạng chuẩn và chuẩn hóa