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

bài giảng cơ sở dữ liệu chương 6: phụ thuộc hàm và chuấn hóa csdl - ths. nguyễn thị khiêm hòa

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 (1.53 MB, 74 trang )

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à BC
• Chứng minh rằng R cũng thỏa mãn phụ thuộc hàm AC
• Chứng minh rằng R khơng thỏa mãn phụ thuộc hàm
CA

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


×