2013 9 dang chuan

33
1 THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ

description

Xác định dạng chuẩn trong CSDL

Transcript of 2013 9 dang chuan

Page 1: 2013 9 dang chuan

1

THIẾT KẾCƠ SỞ DỮ LIỆU QUAN HỆ

Page 2: 2013 9 dang chuan

2

Tập PTH tối thiểu

• Tập PTH F là tối thiểu nếu thỏa các điều kiện sau– Mọi PTH của F chỉ có một thuộc tính ở vế phải.– Không thể thay X A thuộc F bằng Y A với Y X

mà tập mới tương đương với F.– Nếu bỏ đi một PTH bất kỳ trong F thì tập PTH còn lại

không tương đương với F.• Phủ tối thiểu (Minimal Covers) của tập PTH E là

tập PTH tối thiểu F tương đương với E.• Nhận xét

– Mọi tập PTH có ít nhất một phủ tối thiểu.

Page 3: 2013 9 dang chuan

3

Thuật toán tìm phủ tối thiểu (Bernstein, 1976)Thuật toán 3.3:Nhập: tập PTH E.Xuất: phủ tối thiểu F của E.Phương pháp :

– B1: F := .– B2: (Tách các PTH để có vế phải là 1 thuộc tính)

Với mọi X Y E, Y = {A1, …, Ak}, Ai UF := F {X {Ai}}.

– B3: (Loại bỏ các thuộc tính dư thừa vế trái)Với mỗi X {A} F, X = {B1, …, Bl}, Bi U

Với mỗi Bi, nếu A (X - {Bi})F+ thì

F := (F - {X {A}}) {(X - {B}) {A}}.– B4: (Loại bỏ các PTH dư thừa)

Với mỗi X {A} FG := F - {X {A}}Nếu A XG

+ thì F := F - {X {A}}.

Page 4: 2013 9 dang chuan

4

Ví dụ tìm phủ tối thiểu

Tìm phủ tối thiểu của E = {A BC, A B, B C,AB C}– B1: F = .– B2: F = {A B, A C, B C, AB C}.– B3: Xét AB C

(B)F+ = C

F = {A B, A C, B C}.– B4: A C thừa.

F = {A B, B C}.

Page 5: 2013 9 dang chuan

5

Chuẩn hóa lược đồ CSDL

Các dạng chuẩn– Dạng 1 (1 Normal Form - 1NF).– Dạng 2 (2 Normal Form - 2NF).– Dạng 3 (3 Normal Form - 3NF).– Dạng Boyce - Codd

(Boyce - Codd Normal Form - BCNF).

Page 6: 2013 9 dang chuan

6

Dạng chuẩn 1Định nghĩa 3.5: Quan hệ r(U) được gọi thuộc dạng chuẩn 1 nếu

và chỉ nếu mọi thuộc tính của r là thuộc tính đơn.

Go Vap9876543214Hanh chinh

Go Vap,Thu Duc

3334455555Kinh doanhCacTrusoTrPhgMaPTenP

PHONG

PHONGTenP MaP TrPhg Truso

Kinh doanh 5 333445555 Go VapKinh doanh 5 333445555 Thu DucHanh chinh 4 987654321 Go Vap

Không thuộcdạng chuẩn 1

Thuộc dạng chuẩn 1

Nhận xét: Dạng chuẩn 1 có thể dẫn đến sự trùng lặp dữliệu. Do đó gây ra các dị thường về cập nhật dữ liệu

Page 7: 2013 9 dang chuan

7

Dạng chuẩn 2 theo khóa chính (1)

Định nghĩa 3.6: Quan hệ r(U) được gọi là thuộc dạng chuẩn 2 nếu mọithuộc tính không khóa của r phụ thuộc đầy đủ vào khóa chính của r.

r(U), K U là khóa chính của r– A U là thuộc tính không khóa nếu A K.– X Y là PTH đầy đủ nếu A X thì (X - {A}) Y không đúng trên r.

Ngược lại X Y là PTH bộ phận.Ví dụ

FD2FD1

DiadiemTenDATenNVSoGioMaDAMaNV

FD3

NVIEN_DUAN

Thuộc tính không khóa

PTH đầy đủ

PTH bộ phận

Page 8: 2013 9 dang chuan

8

Dạng chuẩn 2 theo khóa chính (2)

FD2FD1

DiadiemTenDATenNVSoGioMaDAMaNV

FD3

NVIEN_DUAN

NV_DA1MaNV MaDA SoGio

FD1

NV_DA2MaNV TenNV

FD2

NV_DA3MaDA TenDA Diadiem

FD3

3 lược đồ NV_DA1, NV_DA2, NV_DA3 thuộc dạng chuẩn 2

Page 9: 2013 9 dang chuan

9

Dạng chuẩn 2 theo khóa chính (3)

Nhận xét– Mọi lược đồ quan hệ thuộc dạng chuẩn 2 cũng thuộc

dạng chuẩn 1.– Còn xuất hiện sự trùng lặp dữ liệu. Do đó gây ra các dị

thường về cập nhật dữ liệu.

NHANVIEN_PHONGBANTenNV MaNV NgSinh DChi MaPB TenPB TrPhong

FD1FD2

Thuộc dạngchuẩn 2

Page 10: 2013 9 dang chuan

10

Dạng chuẩn 3 theo khóa chính (1)

Định nghĩa 3.7: Quan hệ r(U) được gọi là thuộc dạng chuẩn 3 nếu– r thuộc dạng chuẩn 2.– Mọi thuộc tính không khóa của r không phụ thuộc bắc cầu vào khóa

chính của r.Cho r(U)

– X Y là PTH bắt cầu nếu Z U, Z không là khóa và cũng không là tậpcon của khóa của r mà X Z và Z Y đúng trên r.

Ví dụ

FD2FD3

FD1TenPBMaPB TrPhongDChiNgSinhMaNVTenNV

NHANVIEN_PHONGBANPTH bắt cầu

Page 11: 2013 9 dang chuan

11

Dạng chuẩn 3 theo khóa chính (2)

Nhận xét– Mọi lược đồ quan hệ thuộc dạng chuẩn 3 cũng thuộc

dạng chuẩn 2.– PTH bắt cầu là nguyên nhân dẫn đến trùng lặp dữ liệu.– Dạng chuẩn 3 là dạng chuẩn tối thiểu trong thiết kế

CSDL.

NV_PB1

TenNV MaNV NgSinh Diachi MaPB

NV_PB2MaPB TenPB TrPhg

Thuộc dạngchuẩn 3

Page 12: 2013 9 dang chuan

12

Dạng chuẩn 2 tổng quátĐịnh nghĩa 3.8: Lược đồ quan hệ R được gọi là thuộc dạng

chuẩn 2 nếu mọi thuộc tính không khóa của R phụ thuộcđầy đủ vào các khóa của R.

Cho R(ABCDEF) có 2 khóa là A và BC.

FD3FD2FD1

FEDCBA

FD4

R

FD5

Lược đồ R không thuộc dạng chuẩn 2

Page 13: 2013 9 dang chuan

13

Dạng chuẩn 3 tổng quátĐịnh nghĩa 3.9: Lược đồ quan hệ R được gọi là thuộc dạng

chuẩn 3 nếu PTH X A đúng trên R thì– X là siêu khóa của R, hoặc– A là thuộc tính khóa của R.

R1(ABCDE) có 2 khóa là A và BC.

FD2FD1

EDCBA

FD4

R1Lược đồ bênthuộc dạngchuẩn 2,nhưng khôngthuộc dạngchuẩn 3FD5

Page 14: 2013 9 dang chuan

14

3.4 Phân rã lược đồ quan hệ

Lược đồ quan hệ 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 PTH 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ậpcác lược đồ D = {R1, …, Rm}.

Yêu cầu– Bảo toàn thuộc tính.– Các lược đồ Ri phải ở dạng chuẩn 3 hoặc Boyce-

Codd.

Page 15: 2013 9 dang chuan

15

Phân rã bảo toàn PTH

Tính chất bảo toàn PTH– Xét lược đồ R và tập PTH F. Giả sử R được phân rã

thành D = {R1, …, Rm}.• Đặt Ri(F) = {X Y F+ : X Y Ri}.• D được gọi là phân rã bảo toàn phụ thuộc hàm đối với F nếu

(R1(F) … Rm(F))+ = F+.

Ví dụ

FD2FD5

FD1DCBA

R11R111

A C DFD1

R112B D

FD5

Page 16: 2013 9 dang chuan

16

Thuật toán phân rã lược đồ DC3và bảo toàn PTH (Berstein 1976)

Thuật toán 3.6Nhập: R(U), U = {A1, …, An} và tập PTH F.Xuất: D = {R1, …, Rm}, Ri ở dạng chuẩn 3.

– B1: Tìm phủ tối thiểu G của F.– B2: Với mỗi X Aj G, xây dựng lược đồ Ri(Ui),

Ui = X {Aj}. Khóa chính của Ri là X.– B3: Giả sử xong B2 ta có các lược đồ R1, …, Rm.

Nếu U1 … Um U thì xây dựng thêm lược đồRm+1(Um+1), Um+1 = U - (U1 … Um).

Khóa của Rm+1 là Um+1.– B4: Xuất các lược đồ Ri.

Page 17: 2013 9 dang chuan

17

Ví dụ phân rã bảo toàn PTH (1)Cho

– R(ABCDEFG)– F = {B A, D C, D EB, DF G}

Tách về dạng chuẩn 3, bảo toàn PTH– B1:

• Phủ tối thiểu G = {B A, D C, D B, D E, DF G}.– B2:

– B3:• Xuất D = {R1, R2, R3}.

R(ABCDEFG)

R1(BA) R(DC) R3(DFG)R(DB) R(DE)

R2(DBCE)

Page 18: 2013 9 dang chuan

18

Ví dụ phân rã bảo toàn PTH (2)Cho

– R(ABCDEFGHI)– F = {B A, D C, D EB, DF G}

Tách về dạng chuẩn 3, bảo toàn PTH– B1:

• Phủ tối thiểu G = {B A, D C, D B, D E, DF G}.– B2:

– B3:• Vì U1 U2 U3 = {ABCDEFG} nên đặt R4(HI).

– B4:• D = {R1, R2, R3, R4}.

R(ABCDEFG)

R1(BA) R3(DFG)R2(DBCE)

Page 19: 2013 9 dang chuan

19

Bài tập 1:

Cho lược đồ quan hệ R(ABCDE) và tập phụthuộc hàm:

F = {A -> B; CD -> E; B -> C}1. Tìm một khóa của lược đồ.2. Tìm tất cả các khóa của lược đồ.3. Cho biết dạng chuẩn cao nhất của lược đồ

trên? Nếu chưa đạt dạng chuẩn 3 hãy tìmmột phép phân rã thành các lược đồ conđạt dạng chuẩn 3 và bảo toàn thông tin.

Page 20: 2013 9 dang chuan

20

Tìm một khóa

Áp dụng các bước tìm bao đóng của tập cácthuộc tính:

• Lặp 1: (BCDE)F+ = BCDE K = ABCDE.

• Lặp 2: (ACDE)F+ = ABCDE K = ACDE.

• Lặp 3: (ADE)F+ = ADEBC K = ADE.

• Lặp 4: (AE)F+ = AEBC K = ADE.

• Lặp 5: (AD)F+ = ADBCE K = AD.

AD là khoá.

Page 21: 2013 9 dang chuan

21

- Khóa là AD, R không đạt 2NF vì A B- Tìm một phép phân rã tách lược đồ trên thành các lược đồ

con đạt dạng chuẩn 3.Cho lược đồ quan hệ R(ABCDE) và tập phụ thuộc hàm:

F=Ftt = {A -> B; CD -> E; B -> C}

R(ABCDE)R1(BC) R2(ADEB)

{A -> B}R21(AB) R22(ADE)

Page 22: 2013 9 dang chuan

22

- Khóa là AD, R không đạt 2NF vì A B- Tìm một phép phân rã tách lược đồ trên thành các lược đồ

con đạt dạng chuẩn 3.Cho lược đồ quan hệ R(ABCDE) và tập phụ thuộc hàm:

F=Ftt = {A -> B; CD -> E; B -> C}

Page 23: 2013 9 dang chuan

23

Bài tập 2

Cho lược đồ quan hệ R(A,B,C,D,E,G,H,I,J,K) và tậpcác phụ thuộc hàm:

F = {A -> B ; C -> D,H,I ; I,J -> K ; B,C -> A ; H,C -> E}1. Tìm một khóa của lược đồ.2. Tìm tất cả các khóa của lược đồ.3. Cho biết dạng chuẩn cao nhất của lược đồ trên?

Nếu chưa đạt dạng chuẩn 3 hãy tìm một phép phânrã thành các lược đồ con đạt dạng chuẩn 3 và bảotoàn thông tin.

Page 24: 2013 9 dang chuan

24

1. Tìm một khóa của lược đồ

Áp dụng các bước tìm bao đóng của tập các thuộctính:

• Lặp 1: (ABCDEGHIJK)F+ = R K = BCDEGHIJK

• Lặp 2: (BCDEGHIJK) F+ R K = BCDEGHIJK

• Lặp 3: (BDEGHIJK) F+ R K = BCDEGHIJK

• Lặp 4: (BCEGHIJK) F+ = R K = BCEGHIJK.

• Lặp 5: (BCGHIJK ) F+ = R K = BCGHIJK

• Lặp 6: (BCGHIJK ) F+ R K = BCGHIJK

• Lặp 7: (BCGIJK ) F+= R K = BCGIJK

• Lặp 8: (BCGJK ) F+ = R K = BCGJK

• Lặp 9: (BCGK ) F+ R K = BCGJK

• Lặp 10: (BCGJ ) F+ = R K = BCGJ

Page 25: 2013 9 dang chuan

25

2. Tìm tất cả các khóa của lược đồ

Có 2 khóa:K1=(BCGJ)K2=(ACGJ)

Page 26: 2013 9 dang chuan

26

Cho biết dạng chuẩn cao nhất

R không đạt 2NF vì C D

Page 27: 2013 9 dang chuan

27

Bài tập

Cho lược đồ quan hệ R(A,B,C,D,E,G) và tập các phụthuộc hàm:

F = {A -> D ; E->B ;A,E->G ; B->C}1. Tìm một khóa của lược đồ.2. Tìm tất cả các khóa của lược đồ.3. Cho biết dạng chuẩn cao nhất của lược đồ trên?

Nếu chưa đạt dạng chuẩn 3 hãy tìm một phép phânrã thành các lược đồ con đạt dạng chuẩn 3 và bảotoàn thông tin.

Page 28: 2013 9 dang chuan

28

a.,b. AE là khóac. Phân rã: F = {A -> D ; E->B ;A,E->G ; B->C}- R không đạt 2NF vì có PTH A->D, D không phụ

thuộc đầy đủ vào khóa.R(ABCDEG)

R1(BC) R2(ABDEG){A -> D ; E->B ;A,E->G}

R21(EB) R22(ADEG){A -> D ; A,E->G}

R221(AD) R222(AEG)

Page 29: 2013 9 dang chuan

29

Bài tập ví dụ:

Cho lược đồ quan hệ R(A,B,C,D,E)và tập các phụ thuộc hàm:

F = {AB -> C ; AB->D ;D->A ; BC-D,BC->E}Cho biết dạng chuẩn cao nhất của lược đồ trên?Nếu chưa đạt dạng chuẩn 3 hãy tìm một phép phânrã thành các lược đồ con đạt dạng chuẩn 3, bảo toànthông tin, bảo toàn PTH.

Page 30: 2013 9 dang chuan

30

Cho lược đồ quan hệ R(A,B,C,D,E)và tập các phụ thuộc hàm:

F = {AB -> C ; AB->D ;D->A ; BC-D,BC->E}- Q.hệ R không đạng dạng chuần 2 vì tồn tại

PTH D->A trong đó thuộc tính A khôngphụ thuộc đầy đủ vào khóa BD

Page 31: 2013 9 dang chuan

31

- Tìm phủ tối thiểu của FB2: (Tách các PTH để có vế phải là 1 thuộc tính)

PTH ={AB->C, AB->D, D->A, BC->D, BC->E}f1 f2 f3 f4 f5

B3: (Loại bỏ các thuộc tính dư thừa vế trái)- Xét: AB->C:

- Bỏ A: (B)PTH+=B không xác định được C

- Bỏ B: (A)PTH+=A không xác định được C

Không loại bỏ được PTH AB -> C- Xét: AB->D:

- Bỏ A: (B)PTH+=B không xác định được D

- Bỏ B: (A)PTH+=A không xác định được D

Không loại bỏ được PTH AB -> DXét tương tự cho các phụ thuộc hàm còn lại

Page 32: 2013 9 dang chuan

32

Tập PTH tìm được sau bước 3:PTH ={AB->C, AB->D, D->A, BC->D, BC->E}

f1 f2 f3 f4 f5B4: (Loại bỏ các PTH dư thừa)- Với f1= AB->C F1= PTH \ {f1}

- (AB)F1+=ABD không xác định được C

Không loại bỏ được f1- Với f2= AB->D F2= PTH \ {f2}

- (AB)F2+=ABCDE xác định được D

Loại bỏ được f2PTH ={AB->C, D->A, BC->D, BC->E}

f1 f3 f4 f5- Với f3= D->A F3= PTH \ {f3}

- (D)F3+=D không xác định được A

Không loại bỏ được f3- Tương tự với f3,f4,f5

Page 33: 2013 9 dang chuan

33

Phủ tối thiểu tìm được:PTT ={AB->C, D->A, BC->D, BC->E}

f1 f3 f4 f5Lược đồ R phân rã thành 3 lược đồ con:

–- R1(ABC) Khóa AB (AB->C)–- R2(AD) Khóa D (D->A)–- R3(BCDE) Khóa BC (BC->DE)