Is+301+ +Co+So+Du+Lieu+ +2020S+ +Lecture+Slides+12

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

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

Chương 6
Thiết kế cơ sở dữ liệu

GV: HÀ LÊ TRUNG
Email: haletrung@duytan.edu.vn
Mobile: 0906.459.468
Thời lượng: 180 phút
THIẾT KẾ CƠ SỞ DỮ LIỆU
Nội dung chi tiết
• Bao đóng của tập thuộc tính
• Phủ của tập phụ thuộc hàm
• Phủ tối thiểu và thuật toán tìm phủ tối thiểu

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

2.2 Bao đóng của tập thuộc tính


a. Định nghĩa: Cho tập PTH F trên R, X  R.
Bao đóng của X, ký hiệu X+ là tập hợp tất
cả thuộc tính phụ thuộc vào X
Tính chất:
- X  X+
- X -> Y  Y  X+
- X -> X+
Slide 3
THIẾT KẾ CƠ SỞ DỮ LIỆU

Ví dụ: Cho R = (A, B, C) và F gồm


f1: A -> B, f2: B -> C
Xác định A+, B+, AB+, AC+
A+ = ABC
B+ = BC
(AB)+ = ABC
(AC)+ = ACB
Slide 4
THIẾT KẾ CƠ SỞ DỮ LIỆU

2.3 Tính toán bao đóng


b. Thuật toán:
- Đầu vào: Tập các thuộc tính R
Tập phụ thuộc hàm trên R
Tập X  R
- Đầu ra: Bao đóng X+ của X đối với F
- Phương pháp: ta lần lược xác định các tập
thuộc tính X0, X1,…, Xk theo quy tắc

Slide 5
THIẾT KẾ CƠ SỞ DỮ LIỆU
2.3 Tính toán bao đóng
b. Thuật toán:
- Phương pháp:
(1) Đặt X0 = X
(2) Giả sử đã có Xk-1. Tính
Xk Đặt Xk = Xk-1
Duyệt lần lượt các PTH VT(vế trái) -> VP(vế
phải)  F
Nếu VT  Xk, VP Xk thì thay Xk = Xk  VP
Nếu Xk = R thì thuật toán kết thúc, ta có X+ =R
Slide 6
THIẾT KẾ CƠ SỞ DỮ LIỆU
2.3 Tính toán bao đóng
b. Thuật toán:
- Phương pháp:
(3) Điều kiện kết thúc: Xk = R hoặc Xk = Xk-1
(*)
Nếu (*) đúng thì kết thúc X+ = Xk
Ngược lại tăng k lên 1 và quay về bước 2

Slide 7
THIẾT KẾ CƠ SỞ DỮ LIỆU

Ví dụ: Cho R(ABCDEG) và F gồm


F1: AB -> C F4: D -> EG F7: ADC -> B
F2: C -> A F5: BE -> C F8: CE -> AG
F3: BC -> D F6: CG -> BD
Tính (CE)+, (AD)+

Slide 8
THIẾT KẾ CƠ SỞ DỮ LIỆU
Tính (CE)+
Giải: Đặt X0 = X = {CE}
Tính X1
Đặt X1 = X0 ={CE}
Duyệt lần lượt các PTH trong F
Có f2: C -> A , VT  X1 và VP  X1
=> X1 = X1  {A} ={CEA}
f8: CE -> AG, VT  X1 và VP  X1
=> X1 = X1  {AG} ={CEAG}
Slide 9
THIẾT KẾ CƠ SỞ DỮ LIỆU
Giải:
Vì X1  X0 và X1  R nên tăng k lên 1
Đặt X2 = X1 = {CEAG}
Duyệt lần lượt các PTH trong F
f6: CG -> BD, VT  X2 và VP  X2
=> X2 = X2  {BD} = {CEAGBD}
Vì X2 = R nên thuật toán kết thúc
KL: (CE)+= (CEAGBD)
Slide 10
THIẾT KẾ CƠ SỞ DỮ LIỆU
Tính (AD)+
Giải: Đặt X0 = X = {AD}
Tính X1
Đặt X1 = X0 ={AD}
Duyệt lần lượt các PTH trong F
Có f4: D -> EG , VT  X1 và VP  X1
=> X1 = X1  {EG} ={ADEG}

Slide 11
THIẾT KẾ CƠ SỞ DỮ LIỆU
Giải:
Vì X1  X0 và X1  R nên tăng k lên 1
Đặt X2 = X1 = {ADEG}
Duyệt lần lượt các PTH trong F
không có PTH trong F thỏa mãn
Vì X2 = X1 nên thuật toán kết thúc
KL: (AD)+= (ADEG)

Slide 12
THIẾT KẾ CƠ SỞ DỮ LIỆU

4. Phủ của tập phụ thuộc hàm


1. Phủ, PTH tương đương
Cho lược đồ quan hệ R (A1,…, An), cho hai tập phụ
thuộc hàm F, G. Ta nói:
+ Tập PTH F phủ tập PTH G nếu như F+ chứa G.
Ký hiệu: F phủ G  F+ G
+ F tương đương G nếu F phủ G và G phủ F.
Ký hiệu: F tương đương G  F+ G & G+ F

Slide 13
THIẾT KẾ CƠ SỞ DỮ LIỆU
2.3 Phủ tối thiểu
a. Định nghĩa: Tập các phụ thuộc hàm F là tối
thiểu nếu:
-Mỗi vế phải của một PTH thuộc F chỉ có
một thuộc tính
-Không tồn tại một PTH X -> A thuộc F mà
F+ = (F – {X ->A})+
-Không tồn tại một phụ thuộc hàm X -> A
thuộc F và một tập con Z của X mà:
F+ = (F – {X -> A}{Z ->A})+
Slide 14
THIẾT KẾ CƠ SỞ DỮ LIỆU

b. Thuật toán tìm phủ tối thiểu


+ Đầu vào: Lược đồ R;Tập phụ thuộc hàm F
+ Đầu ra: Phủ tối thiểu của F
+ Phương pháp:
(1)Phân rã vế phải của tất cả các PTH của F
và gọi G là tập tất cả các PTH thu được

Slide 15
THIẾT KẾ CƠ SỞ DỮ LIỆU

b. Thuật toán tìm phủ tối thiểu


+ Phương pháp:
(2) Loại bỏ các PTH dư thừa trong G:
- Duyệt lần lượt các PTH trong G theo thứ tự
- Với mỗi X -> A  G ta đặt H = G\{X -> A}
- Nếu mỗi X -> A  H+, tức là A  XH+ thì
thay G = H
(3) Loại bỏ các thuộc tính dư thừa ở vế trái các PTH
trong G:
Slide 16
THIẾT KẾ CƠ SỞ DỮ LIỆU

b. Thuật toán tìm phủ tối thiểu


+ Phương pháp:
(3) Loại bỏ các thuộc tính dư thừa ở vế trái các PTH
trong G:
- Duyệt lần lượt các PTH của G
-Với mỗi X -> A  G ta lần lượt xét các thuộc tính
của X. Với B  X xét PTH f: nếu f thuộc G+ tức A
 (X\B)+, ta thay PTH X -> A bằng f và đặt
G = (G\{X -> A})  {X\B -> A }
Slide 17
THIẾT KẾ CƠ SỞ DỮ LIỆU
Ví dụ 1: Cho lược đồ R (A, B, C) và tập PTH
F = {f1:A -> BC, f2:C -> AB}. Tìm phủ tối thiểu của F
(1) Phân rã: G = {g1:A -> B, g2:A -> C, g3:C -> A, g4:C
-> B}
(2) Loại bỏ PTH dư thừa
Xét A -> B, kiểm tra A -> B  (G\{A -> B})+
Tính bao đóng A+ theo G\{A -> B}
A+ = ACB  B => A -> B dư thừa, loại bỏ A -> B
G = {A -> C, C -> A, C -> B}
Tương tự xét A -> C, C -> A, C -> B không dư thừa

Slide 18
THIẾT KẾ CƠ SỞ DỮ LIỆU
Ví dụ 1: Cho lược đồ R (A, B, C) và tập PTH
F = {f1:A -> BC, f2:C -> AB}. Tìm phủ tối thiểu
của F
(3) Loại bỏ thuộc tính dư thừa ở vế trái
Vì vế trái của tất cả các PTH đều có một thuộc
tính nên không xét bước 3
Vậy G = {A -> C, C -> A, C -> B} là phủ tối
thiểu

Slide 19
THIẾT KẾ CƠ SỞ DỮ LIỆU

Ví dụ 2: Cho R(ABCDEG) và các PTH F sau:


f1: AB -> C f4: ACD -> B f7: CG -> BD
f2: C -> A f5: D -> EG f8: CE -> AG
f3: BC -> D f6: BE -> C
Tìm phủ tối thiểu của F

Slide 20
THIẾT KẾ CƠ SỞ DỮ LIỆU

(1)Phân rã VP của các PTH trong F được


G=
g1: AB -> C g5: D -> E g9: CG -> D
g2: C -> A g6: D -> G g10: CE -> A
g3: BC -> D g7: BE -> C g11: CE -> G
g4: ACD -> B g8: CG -> B

Slide 21
THIẾT KẾ CƠ SỞ DỮ LIỆU

Slide 22
THIẾT KẾ CƠ SỞ DỮ LIỆU

Slide 23
THIẾT KẾ CƠ SỞ DỮ LIỆU

Slide 24
THIẾT KẾ CƠ SỞ DỮ LIỆU
Câu hỏi thảo luận
1. Vì sao cần tìm phủ tối thiểu?
2. Các bước tìm phủ tối thiểu
3. Các bước tìm bao đóng của tập thuộc tính
4. Phủ tối thiểu dư có ảnh hưởng gì?
 Trả lời vào đầu buổi học tiếp theo

25
THIẾT KẾ CƠ SỞ DỮ LIỆU
Bài tập về nhà (cá nhân)
1. CHO R(ABEIGH) VÀ TẬP PHỤ THUỘC HÀM
F= {f1: ABE, f2: AGIB, f3: BEIG, f4: EG, f5:
GIHB}. Tìm phủ tối thiểu của F
2. CHO R(ABCDEI) VÀ TẬP PHỤ THUỘC HÀM
F= {f1: ADC, f2: ABEI, f3: BIEC, f4: CDI, f5: EC}.
Tìm phủ tối thiểu của F
3. CHO R(ABCDEGH) VÀ TẬP PHỤ THUỘC HÀM
• F= {f1: ABCG, f2: BDH, f3: CDEB, f4: CEGH, f5:
GA}. Tìm phủ tối thiểu của F
Link: https://www.youtube.com/watch?v=dR_pwW6e8Nc
26
THIẾT KẾ CƠ SỞ DỮ LIỆU

27

You might also like