Tải bản đầy đủ (.pdf) (33 trang)

thiết kế cơ sở dữ liệu quan hệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (159.32 KB, 33 trang )

1
THIẾT KẾ
CƠ SỞ DỮ LIỆU QUAN HỆ
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.
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 = {A
1
, …, A
k
}, A
i
 U
F := F  {X  {A


i
}}.
– B3: (Loại bỏ các thuộc tính dư thừa vế trái)
Với mỗi X  {A}  F, X = {B
1
, …, B
l
}, B
i
 U
Với mỗi B
i
, nếu A  (X - {B
i
})
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}  F
G := F - {X  {A}}
Nếu A  X
G
+
thì F := F - {X  {A}}.
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}.
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).
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
3334455555
Kinh doanh
CacTrusoTrPhgMaPTenP
PHONG
PHONG

TenP MaP TrPhg Truso
Kinh doanh 5 333445555 Go Vap
Kinh doanh 5 333445555 Thu Duc
Hanh chinh 4 987654321 Go Vap
Không thuộc
dạ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
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ọi
thuộ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ụ
FD2
FD1
DiadiemTenDATenNVSoGioMaDAMaNV
FD3
NVIEN_DUAN
Thuộc tính không khóa
PTH đầy đủ
PTH bộ phận
8
Dạng chuẩn 2 theo khóa chính (2)
FD2
FD1

DiadiemTenDATenNVSoGioMaDAMaNV
FD3
NVIEN_DUAN
NV_DA1
MaNV MaDA SoGio
FD1
NV_DA2
MaNV TenNV
FD2
NV_DA3
MaDA TenDA Diadiem
FD3
3 lược đồ NV_DA1, NV_DA2, NV_DA3 thuộc dạng chuẩn 2
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_PHONGBAN
TenNV MaNV NgSinh DChi MaPB TenPB TrPhong
FD1
FD2
Thuộc dạng
chuẩn 2
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ập
con của khóa của r mà X  Z và Z  Y đúng trên r.
Ví dụ
FD2
FD3
FD1
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
PTH bắt cầu
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_PB2
MaPB TenPB TrPhg
Thuộc dạng
chuẩn 3
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.
FD3
FD2
FD1
FEDCBA
FD4
R
FD5
Lược đồ R không thuộc dạng chuẩn 2
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.
FD2
FD1
EDCBA
FD4
R1
Lược đồ bên
thuộc dạng
chuẩn 2,
nhưng không
thuộc dạng
chuẩn 3
FD5
14

3.4 Phân rã lược đồ quan hệ
Lược đồ quan hệ R(A
1
, …, A
n
)
– 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ập
các lược đồ D = {R
1
, …, R
m
}.
Yêu cầu
– Bảo toàn thuộc tính.
– Các lược đồ R
i
phải ở dạng chuẩn 3 hoặc Boyce-
Codd.
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 = {R
1
, …, R
m
}.

• Đặt 
Ri
(F) = {X  Y  F
+
: X  Y  R
i
}.
• 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ụ
FD2
FD5
FD1
DCBA
R11
R111
A C D
FD1
R112
B D
FD5
16

Thuật toán phân rã lược đồ DC3
và bảo toàn PTH (Berstein 1976)
Thuật toán 3.6
Nhập: R(U), U = {A
1
, …, A
n
} và tập PTH F.
Xuất: D = {R
1
, …, R
m
}, R
i
ở dạng chuẩn 3.
– B1: Tìm phủ tối thiểu G của F.
– B2: Với mỗi X  A
j
 G, xây dựng lược đồ R
i
(U
i
),
U
i
= X  {A
j
}. Khóa chính của R
i
là X.

– B3: Giả sử xong B2 ta có các lược đồ R
1
, …, R
m
.
Nếu U
1
 …  U
m
 U thì xây dựng thêm lược đồ
R
m+1
(U
m+1
), U
m+1
= U - (U
1
 …  U
m
).
Khóa của R
m+1
là U
m+1
.
– B4: Xuất các lược đồ R
i
.
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 = {R
1
, R
2
, R
3
}.
R(ABCDEFG)
R
1
(BA) R(DC)
R
3
(DFG)R(DB) R(DE)
R
2
(DBCE)
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ì U
1
 U
2
 U
3
= {ABCDEFG} nên đặt R
4
(HI).
– B4:
• D = {R
1
, R
2
, R
3
, R
4
}.
R(ABCDEFG)
R
1
(BA)
R

3
(DFG)
R
2
(DBCE)
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ìm
mộ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.
20
Tìm một khóa
Áp dụng các bước tìm bao đóng của tập các
thuộ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á.
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=F
tt
= {A -> B; CD -> E; B -> C}
R(ABCDE)
R1(BC) R2(ADEB)
{A -> B}
R21(AB) R22(ADE)
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=F
tt

= {A -> B; CD -> E; B -> C}
23
Bài tập 2
Cho lược đồ quan hệ R(A,B,C,D,E,G,H,I,J,K) và tập
cá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ân
rã thành các lược đồ con đạt dạng chuẩn 3 và bảo
toàn thông tin.
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ộc
tí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
25
2. Tìm tất cả các khóa của lược đồ
Có 2 khóa:
K1=(BCGJ)

K2=(ACGJ)

×