Lý thuyết chuẩn hoáLý thuyết chuẩn hoá
Huế, 09 2006.
Đại Học Huế
Trường Đại học Khoa học
Các dạng chuẩn của một lược đồ quan hệ
• Dạng chuẩn 1NF
• Dạng chuẩn 2NF
• Dạng chuẩn 3NF
• Dạng chuẩn BCNF
Dạng chuẩn 1NF
• Định nghĩa:
Một lược đồ quan hệ R được gọi là thuộc dạng chuẩn 1NF (ký hiệu: R 1NF) nếu mọi thuộc tính của lược đồ là nguyên tố.
Ví dụ:
Quy ước: Tất cả các lược đồ quan hệ được xét đều thuộc 1NF.
HotenDIACHI
Xa Huyen Tinh
A x y z
B u v z
Dạng chuẩn 2NF
• Định nghĩa: R 2NF
Lược đồ quan hệ R được gọi là 2NF nếu XA trên R (AX) thì:
- Hoặc: A là thuộc tính khóa
- Hoặc: X không là tập con thực sự của khóa
• Ví dụ:
Cho R = <U, F>, U = {A, B, C, D}
F = {ABC, CD} R là 2NF
F = {ABC, CA} R là 2NF
F = {ABC, AD} R không là 2NF
Dạng chuẩn 2NF
• Nhận xét:
1) Nếu mọi khoá của lược đồ quan hệ R chỉ có 1 thuộc tính thì R 2NF.
2) R 2NF XA F+, với X K (K là khóa của R) thì:
- hoặc A là thuộc tính khoá.
- hoặc A X (XA là phụ thuộc hàm tầm thường).
Dạng chuẩn 3NF
• Định nghĩa: R 3NF
Một lược đồ quan hệ R được gọi là ở dạng chuẩn 3NF nếu: XA trên R (A X) thì:
- Hoặc: A là thuộc tính khoá.
- Hoặc: X là siêu khoá.
Ví dụ: Cho R = <U, F>, với U = {A, B, C, D},
F = {ABC, CD} R không là 3NF.
F = {ABC, CA} R là 3NF.
Dạng chuẩn 3NF
Nhận xét:
1) Nếu R 3NF thì R 2NF
2) R 3NF không phụ thuộc bắc cầu:
XY F+ và YA F+ với:
+ X là khoá
+ Y không là siêu khoá
+ A là thuộc tính không khoá và A XY.
Hay: R3NF X_khoá Y, Y - X, mà YA_không khoá
Dạng chuẩn Boyce-Codd (BCNF)
• Định nghĩa: R BCNF
Lược đồ quan hệ R được gọi là BCNF nếu XA trên R (A X) thì:
- X là siêu khoá.
Ví dụ: Cho R = <U,F>, với U = {A, B, C, D},
F = {ABC, ABD} R là BCNF
Nhận xét: R BCNF R 3NF
1NF2NF3NFBCNF
Phân tách bảo toàn thông tin thành BCNF
Cho lược đồ quan hệ R = <U, F>, = (R1, R2, …, Rk) là phép tách bảo toàn thông tin của R theo F.
’ = (R11, R12) là phép tách bảo toàn thông tin của R1 theo R1
(F).
’’ = (R11, R12, R2, …, Rk) là phép tách bảo toàn thông tin của R theo F.
Định lý:
a./ Mọi lược đồ quan hệ chỉ có hai thuộc tính luôn là BCNF.
b./ Nếu R không là BCNF thì A, B U (A U) sao cho:
U\{AB} A.
Phân tách bảo toàn thông tin thành BCNF
Nhận xét:
- Nếu A, B U (A U) sao cho U\AB A thì R vẫn có thể là BCNF.
Ví dụ: Cho R = <U, F>, U = {A, B, C, D}
F = {ABC, ABD} R là BCNF
Vẫn tồn tại U\{CD} C
- Nếu không tìm được cặp A, B U: U\{AB} A thì R là BCNF.
Phân tách bảo toàn thông tin thành BCNF
Thuật toán:- Input: R = <U, F>- Output: = (R1, R2, …, Rk) sao cho Ri là BCNF, là BTTT- Method:
:=;While A,BU | A (U\{AB})+ do
beginChọn 1 cặp A, B | A (U\{AB})+;Y:=U \ B;While A,BY | A (Y\{AB})+ do
Y:=Y \ B; := Y;U:= U \ A;
end; := U;Return ;
Phân tách bảo toàn thông tin thành BCNF
Ví dụ: Cho R = <U, F>, U = {A, B, C, D, E, H, G}
F = {ABD, CD E, E B, EH G}, bảo đảm F là cực tiểu.
A B C D E H G
A B D E H G A B D H G A B D G A B D
D
C
D
E
D
H
D
G
A B D A B C E H G
A B C E G A B C E B C E B E
E
H
E
G
B
A
B
C
B E A C E H G
C E H G E H G
G
A
G
C
E H G A C E H
= { ABD, BE, EHG, ACEH }
F = {ABD, CD E, E B, EH G}Ví dụ:Ví dụ:
Phân tách bảo toàn thông tin thành 3NF
Thuật toán:- Input: R = <U, F>- Output: = (R1, R2, …, Rk) sao cho Ri là 3NF, là bảo toàn thông tin.- Method:
B1: Kiểm tra R 3NF? (không XY A?)- Nếu R 3NF thì dừng- Nếu R 3NF ( XY A) thì phân tách R thành 2 lược đồ
con: := (YA, U\A)
B2: Kiểm tra lần lượt các lược đồ con có thuộc 3NF không?- Nếu lược đồ con nào không thuộc 3NF thì ta phân tách tiếp
(theo quy tắc được chỉ ra trong B1)Cuối cùng chúng ta sẽ có một cây phân tách (cây nhị phân) mà các nút lá là các lược đồ con thuộc 3NF.
-------------------------------------------Nhận xét: Phân tách thu được dựa vào thuật toán trên là bảo toàn thông tin và các lược đồ là thuộc 3NF.
Phân tách bảo toàn thông tin thành 3NF
Ví dụ: Cho NKBH = <U, F>,
U = {STT, NGAY, MH, TH, ĐG, SL},
F = {STTU, MHTH, MHĐG}
Ta có: STT là khóa duy nhất của lược đồ NKBH
- Ta thấy {STT} {MH, TH} ĐG = ({MH, TH, ĐG}, {STT, NGAY, MH, TH, SL})
3NF 3NF
{MH, TH} {STT, NGAY, MH, SL}
= ({MH, TH, ĐG}, {STT, NGAY, MH, SL})
Phân tách bảo toàn TT & PTH thành 3NF
Thuật toán:- Input: R = <U, F>- Output: = (R1, R2, …, Rk) sao cho Ri là 3NF, là bảo toàn
PTH.- Method:
B1: - Tìm phủ cực tiểu G của F- :=;
B2: -Tìm một khoá K bất kỳ của R, := {<K, K(F)>}
B3: - Với mỗi các phụ thuộc hàm có dạng XA1, XA2, …, XAk, thì tạo thành một lược đồ R’ có U’ = XA1A2…Ak:
:= {R’}
B4: - Nếu Ri, Rj mà Ui Uj thì loại Ri ra khỏi .
Phân tách bảo toàn TT & PTH thành 3NF
Nhận xét:- Thuật toán trên là không duy nhất do cách xác định phủ cực tiểu là không duy nhất.Ví dụ: Cho R = <U, F>, U = {A, B, C, D, E, G, H}F = {ABC, ABD, CB, CDE} là cực tiểu.- ABGH là một khoá của R.
= (ABGH)- Bổ sung các lược đồ thông qua các phụ thuộc hàm:
= (ABCD, CB, CDE, ABGH)- Loại CB ra khỏi .
= (ABCD, CDE, ABGH)
Nhóm thực hiện
• Lê Quang Chiến
• Trần Tấn Từ
• Võ Hoài Trung
• Trương Khắc Tùng
• Quách Xuân Hưng
Chân thành cảm ơn cả lớp!
Hẹn gặp lại lần sau!
^_^ V