Seminar Ly Thuyet Chuan Hoa V1.2

Preview:

Citation preview

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