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 tốn chuẩn hóa.
Khoa Cơng nghệ Thông tin - Trƣờng Đại học Ngân hàng
2
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?
Khoa Cơng nghệ Thơng tin - Trƣờng Đại học Ngân hàng
3
PHỤ THUỘC HÀM
Ví dụ
Khoa Cơng nghệ Thơng tin - Trƣờng Đại học Ngân hàng
4
PHỤ THUỘC HÀM
Ví dụ
• 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
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
5
PHỤ THUỘC HÀM
Định nghĩa (1)
Khái niệm phụ thuộc hàm f trên quan hệ R giữa hai tập hợp các
thuộc tính A1, A2, ..., An và B1, B2, ..., Bm được phát biểu như sau:
Nếu hai bộ của quan hệ R có giá trị giống nhau tại các thuộc tính A1,
A2, ..., An, thì chúng cũng phải có giá trị giống nhau tại các thuộc tính
B1, B2, ..., Bm.
Ký hiệu
A1, A2, ..., An → B1, B2, ..., Bm
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
6
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ỳ.
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
7
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
(khác rỗng) bất kỳ của Ω.
Nói rằng X xác định Y, hay Y phụ thuộc hàm vào X, ký hiệu X → Y,
khi và chỉ khi :
r, s R, nếu r[X] = s[X], thì r[Y] = s[Y].
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
8
PHỤ THUỘC HÀM
Ví dụ
TenDA Diadiem_DA, TenPB
TenDA, TenNV Thoigian
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
9
PHỤ THUỘC HÀM
Nhận xét
Phụ thuộc hàm là phương tiện biểu diễn hình thức và
phát hiện ràng buộc dữ liệu. Đây là cơ sở xác định khóa
và chuẩn hóa lược đồ cơ sở dữ liệu.
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
10
HỆ TIÊN ĐỀ AMSTRONG
Mục tiêu
• Giả sử quan hệ R thỏa mãn tập các phụ thuộc hàm
• Chứng minh ràng R cũng phải thỏa mãn phụ thuộc hàm
f
Ví dụ
• Giả sử R thỏa mãn hai phụ thuộc hàm A B, và BC
• Chứng minh rằng R cũng thỏa mãn phụ thuộc hàm AC
• Chứng minh rằng R khơng thỏa mãn phụ thuộc hàm
CA
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
11
HỆ TIÊN ĐỀ AMSTRONG
Luật 1: Luật phản xạ
• Nếu Y ⊆ X, thì X Y
• Ví dụ: ABC BC
Luật 2: Luật tăng trƣởng
• Nếu X Y thì XZ YZ
• Ví dụ: nếu C D thì ABC ABD
Luật 3: Luật bắc cầu
• Nếu X Y và Y Z thì X Z
• Nếu AB CD và CD EF thì AB EF
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
12
HỆ QUẢ CỦA TIÊN ĐỀ AMSTRONG
Luật hợp
• Nếu X Y và X Z thì X YZ
• Ví dụ: AB CD, AB EF, AB CDEF
Luật tách hay cịn gọi là luật phân rã
• 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 bắc cầu giả
• Nếu X Y và WY Z thì WX Z
• Ví dụ: Nếu AB EF nghệ Thơng tin - Trƣờng ĐạiG thìhàng
và DEF học Ngân ABD G
Khoa Công
13
HỆ TIÊN ĐỀ AMSTRONG
Ví dụ
TenDA Diadiem_DA
TenDA TenPB
TenDA Diadiem_DA, TenPB
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
14
HỆ TIÊN ĐỀ AMSTRONG
Ví dụ
TenDA Thoigian
TenNV Thoigian
?
TenDA, Ten NV Thoigian
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
15
BAO ĐĨNG CÁC THUỘC TÍNH
Định nghĩa
• Bao đóng của X trên (đƣợc ký hiệu là X+) là tập
con của tập thuộc tính đƣợc xác định duy nhất bởi
X qua các phụ thuộc hàm trong
Chú ý
• Phụ thuộc hàm X B đƣợc dẫn xuất từ
• Bao đóng của X luôn chứa X
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
16
BAO ĐĨNG CÁC THUỘC TÍNH
Thuật tốn tìm bao đóng
• 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 = {A1, A2, ..., An}.
• Tìm một phụ thuộc hàm B1B2...Bm→C, sao cho tất
cả B1, B2, ..., Bm đều nằm trong X, nhƣng C thì
khơng. Thêm C vào tập X, và lặp lại bƣớc 3
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
17
BAO ĐĨNG CÁC THUỘC TÍNH
Ví dụ
• Quan hệ R với các phụ thuộc hàm AB → C(1), BC →
AD(2), D → E(3), và CF → B(4). Tìm {A, B}+
1
Tách (2) thành
BC → A(5),
BC → D(6)
2
Bắt đầu với
X={A,B}
3
Chọn (1), thêm C vào X
X = {A,B,C}
4
X+ = {A,B,C,D,E}
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}
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
18
BAO ĐĨNG CÁC THUỘC TÍNH
Ứng dụng 1
• Kiểm tra sự tồn tại của phụ thuộc hàm A B
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
Ứng dụng 2
• Tìm khóa (siêu khóa) X của quan hệ R
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
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
19
BAO ĐĨNG CÁC THUỘC TÍNH
Ví dụ
• Quan hệ R với các phụ thuộc hàm AB → C(1), BC
→ AD(2), D → E(3), và CF → B(4).
• Kiểm tra sự tồn tại của phụ thuộc hàm AB → D
Tính {AB}+ = {A,B,C,D,E}
Do {D} {AB}+, nên tồn tại AB → D
• Kiểm tra sự tồn tại của phụ thuộc hàm D → A
Tính {D}+ = {D,E}
Do {A} {D}+, nên khơng tồn tại D → A
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
20
KHÓA CỦA QUAN HỆ
Định nghĩa
Tập hợp của một (hoặc nhiều) thuộc tính {A1, A2, ..., An} 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. {A1, A2, ..., An} 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.
Khoa Cơng nghệ Thơng tin - Trƣờng Đại học Ngân hàng
21
KHĨA CỦA QUAN HỆ
Ví dụ
Khoa Cơng nghệ Thơng tin - Trƣờng Đại học Ngân hàng
22
KHĨA CỦA QUAN HỆ
Ví dụ (tt)
Khóa của quan hệ là {TenDA, TenNV} vì:
1. {TenDA, TenNV} xác định hàm Thoigian
2. {TenDA} xác định hàm Diadiem_DA, TenPB,
3. {TenDA}, {TenNV} không xác định hàm các thuộc tính cịn lại
của quan hệ
Khoa Cơng nghệ Thông tin - Trƣờng Đại học Ngân hàng
23
KHĨA CỦA QUAN HỆ
Bài tập
Xác định tất cả khóa của quan hệ
Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng
24
SIÊU KHĨA
Định nghĩa
• Siêu khóa là tập hợp các thuộc tính chứa khóa
• Mọi khóa đều là siêu khóa, siêu khóa khơng phải là khóa
Ví dụ
• Khóa là {TenDA, TenNV}
• Siêu khóa là {TenDA, TenNV}, {TenDA, TenNV, TenPB}
Khoa Cơng nghệ Thông tin - Trƣờng Đại học Ngân hàng
25