2013 9 dang chuan
description
Transcript of 2013 9 dang chuan
![Page 1: 2013 9 dang chuan](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/1.jpg)
1
THIẾT KẾCƠ SỞ DỮ LIỆU QUAN HỆ
![Page 2: 2013 9 dang chuan](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052905/5587c210d8b42a20208b456f/html5/thumbnails/33.jpg)
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)