Phụ thuộc hàm và Chuẩn hóa CSDL
Functional Dependency and Normal Forms
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
NỘI DUNG
• Phụ thuộc hàm.
• Nguyên tắc thiết kế các lƣợc đồ quan hệ.
• Chuẩn hóa lƣợc đồ CSDL
• Các dạng chuẩn.
• Một số thuật toán chuẩn hóa.
2
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
Ví dụ
Bạn có nhận xét gì về mối liên hệ giữa các thuộc tính?
3
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
Ví dụ
4
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
• Tồn tại hai mối liên hệ giữa các thuộc tính
trong quan hệ DU_AN
• TenDA -> Diadiem_DA
• TenDA-> TenPB
• Mối liên hệ nhƣ thế này đƣợc gọi là phụ
thuộc hàm
Ví dụ
5
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
B
1
, B
2
, , B
m
.
A
1
, A
2
, , A
n
→
B
1
, B
2
, , B
m
6
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
Minh họa bằng hình ảnh
Hình 8.1. Ảnh hưởng của phụ thuộc hàm A->B đối với hai bộ t, u bất kỳ.
7
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
PHỤ THUỘC HÀM
Định nghĩa (2)
Cho R là quan hệ trên tập thuộc tính Ω, với X và Y là hai tập con
CA
Ví dụ
11
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
HỆ TIÊN ĐỀ AMSTRONG
• Nếu Y ⊆ X, thì X Y
• Ví dụ: ABC BC
Luật 1: Luật phản xạ
• Nếu X Y thì XZ YZ
• Ví dụ: nếu C D thì ABC ABD
Luật 2: Luật tăng trƣởng
• Nếu X Y và Y Z thì X Z
• Nếu AB CD và CD EF thì AB EF
Luật 3: Luật bắc cầu
12
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
HỆ QUẢ CỦA TIÊN ĐỀ AMSTRONG
• Nếu X Y và X Z thì X YZ
• Ví dụ: AB CD, AB EF, AB CDEF
Luật hợp
• Nếu X YZ thì X Y và X Z
• Ví dụ: nếu AB CDEF thì AB CD, AB EF, AB
C, AB D, AB E và AB F
Luật tách hay còn gọi là luật phân rã
• Nếu X Y và WY Z thì WX Z
• Ví dụ: Nếu AB EF và DEF G thì ABD G
Luật bắc cầu giả
13
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
HỆ TIÊN ĐỀ AMSTRONG
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
BAO ĐÓNG CÁC THUỘC TÍNH
• Phân tách các phụ thuộc hàm trong
, sao cho mỗi
phụ thuộc hàm trong
chỉ có một thuộc tính ở vế
phải
• Gọi X là tập hợp bao đóng các thuộc tính. Tại thời
điểm khởi tạo X = {A
1
, A
2
, , A
n
}.
• Tìm một phụ thuộc hàm B
1
B
2
B
m
→C, sao cho tất
cả B
1
, B
2
, , B
m
Chọn (1), thêm C vào X
X = {A,B,C}
Chọn (2), thêm D vào X
X = {A,B,C,D}
Chọn (3), thêm E vào X
X = {A,B,C,D,E}
X
+
= {A,B,C,D,E}
18
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
BAO ĐÓNG CÁC THUỘC TÍNH
• Kiểm tra sự tồn tại của phụ thuộc hàm A B
Ứng dụng 1
• Tìm khóa (siêu khóa) X của quan hệ R
Ứng dụng 2
Tính bao đóng của A
Nếu B {A}+, thì kết luận tồn tại A B
Ngược lại, kết luận không tồn tại A B
Tính bao đóng của X
Nếu {X}+ chứa tất cả thuộc tính của R, thì X là siêu khóa.
Ngược lại, kết luận X không phải là siêu khóa
19
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
BAO ĐÓNG CÁC THUỘC TÍNH
• Quan hệ R với các phụ thuộc hàm AB → C
(1)
, BC
→ AD
(2)
2
, , A
n
} là khóa của
quan hệ
R
nếu thỏa mãn đồng thời hai điều kiện sau đây:
1. Các thuộc tính đó xác định tất cả các thuộc tính khác của quan hệ.
2. {A
1
, A
2
, , A
n
} không có bất kỳ tập con khác rỗng nào có thể xác
định tất cả các thuộc tính khác của quan hệ. Khóa phải là nhỏ
nhất.
21
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
KHÓA CỦA QUAN HỆ
Ví dụ
22
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
KHÓA CỦA QUAN HỆ
Ví dụ (tt)
Khóa của quan hệ là {
TenDA
,
TenNV
} vì:
• Khóa là {TenDA, TenNV}
• Siêu khóa là {TenDA, TenNV}, {TenDA, TenNV, TenPB}
Ví dụ
25
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng