1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 5 Phụ thuộc hàm

52 746 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 337,5 KB

Nội dung

NỘI DUNG• PHỤ THUỘC HÀM • BÀI TOÁN TÌM PHỦ TỐI THIỂU • BÀI TOÁN TÌM KHÓA  Pth là một công cụ biểu diễn một cách hình thức một dạng ràng buộc tòan vẹn... PHỤ THUỘC HÀM • Khái niệm phụ t

Trang 1

CHƯƠNG 5

PHỤ THUỘC HÀM

Functional dependency

Trang 2

NỘI DUNG

• PHỤ THUỘC HÀM

• BÀI TOÁN TÌM PHỦ TỐI THIỂU

• BÀI TOÁN TÌM KHÓA

Pth là một công cụ biểu diễn một cách hình thức

một dạng ràng buộc tòan vẹn

Trang 3

PHỤ THUỘC HÀM

• Khái niệm phụ thuộc hàm

• Bao đóng của một tập phụ thuộc hàm F

• Bộ luật dẫn AMSTRONG

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

• Thuật toán tìm F+

Trang 4

Xét ví dụ (sgk) : Cho quan hệ Phân công

Trang 5

Trong thế giới thực luôn có những qui tắc hoạt động :

- Mỗi máy bay có một giờ khởi hành duy nhất

- Nếu biết phi công, Ngày và giờ khởi hành thì biết được máy bay do phi công này lái

- Nếu biết máy bay, ngày khởi hành thì biết phi công lái

chuyến bay đó

Những qui tắc hoạt động trên là một loại ràng buộc , được gọi

là phụ thuộc hàm , và có thể phát biểu lại như sau :

MAYBAY xác định GIOKHHay GIOKH phụ thuộc hàm vào MAYBAY

Được ký hiệu

f1: {MAYBAY} GIOKH

f2: {PHICONG,NGAYKH,GIOKH} MAYBAY

f3: {MAYBAY,NGAYKH} PHICONG

Trang 6

Định nghĩa phụ thuộc hàm

Cho lược đồ quan hệ Q(A1,A2,…,An)

X, Y là hai tập con của Q + = {A1,A2,…,An}

r là quan hệ trên Q

t1, t2 là hai bộ bất kỳ trên r

X Y ( t1.X = t2.X t1.Y= t2.Y )

- Nếu t1,t2 r , sao cho t1.X = t2.X và t1.Y ≠ t2.Y

ta nói : pth X Y không thỏa trên r

Trang 7

a1 b1 c1 d1 e1 a1 b2 c2 d1 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1

Phụ thuộc hàm nào sau đây thỏa r (A , B , C , D , E)

Trang 8

Ví duï: phanCong(PC, MB, N, G) , F ={(1),(2),(3)}

Ñònh nghóa: : Phụ thuộc hàm X Y được suy diễn logic từ

F nếu một lược đồ quan hệ Q thỏa mãn tất cả các phụ thuộc hàm của F thì cũng thỏa phụ thuộc hàm X Y

2 Phụ thuộc hàm được suy diễn logic từ F

Bao đóng của một tập phụ thuộc hàm F

Trang 9

Bao đóng F + của F : là tập tất cả các phụ thuộc hàm được suy diễn logic từ F

Luật dẫn để suy ra phụ thuộc hàm hệ quả từ F :

f’ là phụ thuộc hàm suy từ F qua luật dẫn (ký hiệu F   f’ ) nếu

Trang 10

Cho quan hệ Q(Q + ) X,Y,Z,W là các tập thuộc tính của Q +

Hệ tiên đề Amstrong gồm các luật sau

(F1) Luật phản xạ (reflexive rule):

Nếu Y X thì X Y (F2) Luật thêm vào (augmentation rule):

Nếu X Y thì XZ Y trong đó ký hiệu XZ thay cho X Z

(F3) Luật bắc cầu (transitive rule):

Nếu X Y và Y Z thì X Z

Các luật dẫn khác suy từ (F1), (F2), (F3)

(F4) Bắc cầu giả : nếu X Y và YW Z thì XW

Z.

(F5) Luật hội : nếu X Y và X Z thì X YZ

3 Bộ Luật Dẫn AMSTRONG (Hệ tiên đề Amstrong)

Trang 11

Luật phản xạ B AB AB B

Luật thêm vào A DE AB DE

AB DEB ABC DEB

Trang 12

Luật phân rã: gỉa sử có t1.X = t2.X (1)

t1.YZ = t2.YZ (do X YZ)

t1.X = t2.X và t1.Z = t2.Z (2)

Trang 15

Cho Q là lược đồ quan hệ Q( Q + ), F là tập các phụ

thuộc hàm định nghĩa trên Q , gọi X, A i Q +

Bao đóng của tập thuộc tính X dựa trên F ký hiệu

là X + (hoặc X +

F )

X +

F = A i với X A i là phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề Armstrong

Trang 16

Thuật toán tìm bao đóng X+: Tính liên tiếp tập các

tập thuộc tính X 0 ,X 1 ,X 2 , theo phương pháp sau:

Bước 1: X 0 = X

Bước 2: lần lượt xét các phụ thuộc hàm của F

Nếu Y Z có Y X i thì X i+1 = X i Z Loại phụ thuộc hàm Y Z khỏi F

Bước 3: Nếu ở bước 2 không tính được X i+1

thì X i chính là bao đóng của X Ngược lại lặp lại bước 2

Trang 18

Xét f1, f4 :không thỏa vì có vế trái không nằm trong X3

Trang 20

5 Thuật toán tìm F+

Thuật toán cơ bản

Để tính bao đóng F+ của tập các phụ thuộc hàm F ta thực hiện các bước sau:

• Bước 1: Tìm tất cả tập con của Q+

• Bước 2: Tìm tất cả các phụ thuộc hàm có thể có của Q

• Bước 3: Tìm bao đóng của tất cả tập con của Q

• Bước 4: Dựa vào bao đóng của tất cả các tập con đã tìm

để xác định phụ thuộc hàm nào thuộc F+

Thuật toán cải tiến

Dựa vào thuật toán cơ bản trên, ta nhận thấy có thể tính F+ theo các bước sau:

Bước 1: Tìm tất cả tập con của Q+

Trang 22

1 Hai tập phụ thuộc hàm tương đương

Bổ đề : F G nếu và chỉ nếu F |= G và G |= F

Nếu F G F F = G và G G G = F

g G +, g: X Y Yg F + F F = g

Do đó g G thì F= g hay F = G Tương tự f F thì G = f hay G = F

Nếu F = G và G G G = F F F G G

Tập phụ thuộc hàm F và G tương đương nếu F+ = G+

ký hiệu F G

Trang 23

Thuật tóan xác định F và G có tương đương không ?

B1 :với mỗi X Y của F xác định xem X Y của F xác định xem Y có được suy dẫn từ G không

B2 :với mỗi X Y của G xác định xem X Y của G xác định xem Y có được suy dẫn từ F không

Nếu cả 2 bước trên đều đúng thì F G G

Trang 24

Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE) và 2 tập pth

F ={ABC, A BC, D, CDE } và G ={A E BCE, A BCE, ABD, CDE } E

1 F có tương đương với G không ?

2 F có tương đương với G’ = { ABCDE } BCDE

1 Nhận xét : F được suy diễn từ G (1)

Ta Kiểm tra G có được suy diễn từ F không ?

Tính A F + = {ABCDE} => trong F+ có ABCE và A BCE và ABD (2)

Từ (1) (2) : kết luận F G G

2 Ta kiểm tra F có được suy diễn từ G’ không ?

Trang 25

Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE)

và 2 tập pth

F ={ABC, A BC, D, CDE } và E

G ={ABCE, A BCE, ABD, CDE } E

1 F có tương đương với G không ?

2 F có tương đương với

G’ = { ABCDE } BCDE

Trang 26

Bài tập : xem xét các cặp pth sau có tương đương không?

Cho lược đồ quan hệ Q (ABCDE) và 2 tập pth

F ={ABC, A BC, D, CDE } và G ={A E DE , A DE , BCE, CDE }

F ={AB, BC, CD } và G ={A D BCD , BCD, CD }

F ={AB, BC, CD } và G ={A D CD , CD }

F ={ABC, BC, CDE ,DE } và G ={B E C , DE }

F ={ABC, BC, CDE ,DE } và G ={AB E C, B CC, CB, BDE }

Trang 27

Trong các phủ của F ta quan tâm tới một nhóm phủ gọi là phủ tối thiểu

G là phủ tối thiểu của F nếu G là phủ của F đồng thời thỏa 3 điều kiện sau :

- G là tập phụ thuộc hàm có vế trái không dư thừa

(G chỉ chứa những pth đầy đủ)

- G là tập phụ thuộc hàm có vế phải một thuộc tính

(G chỉ chứa những pth có vế phải một thuộc tính)

- G là tập phụ thuộc hàm không dư thừa

Trang 28

3.a Phụ thuộc hàm có vế trái không dư thừa :

Cho F , f: X→Y∈F Nói rằng phụ thuộc hàm f: XY

có vế trái dư thừa (phụ thuộc hàm không đầy đủ) nếu tồn tại một Z X sao cho :

F F - {X Y} {Z Y}

Ví dụ 1: cho Q(A,B,C) và F= {ABC; BC}

AB C là phụ thuộc hàm có vế trái dư thừa vì

F F- {ABC} {BC}= {BC}

Trang 29

Thuật tóan để lọai khỏi F các pth có vế trái dư thừa :

Bước 1: Lần lượt thực hiện bước 2 cho các pth XY của F

Bước 2: Với mọi tập con X’≠ ∅ của X

Nếu X'Y F+ thì thay XY trong F bằng X'Y

Nhận xét :

Pth có vế trái một thuộc tính là pth có vế trái không dư

thừa

F là Tập pth có vế trái không dư thừa nếu F không chứa

những pth có vế trái dư thừa

Trang 30

Ví dụ 2: lọai khỏi F các pth có vế trái dư thừa

Trang 31

3.b Tập phụ thuộc hàm có vế phải một thuộc tính

Mỗi tập phụ thuộc hàm F đều tương đương với một tập phụ thuộc hàm G mà vế phải của các pth trong G chỉ gồm một thuộc tính

Ví dụ 3: cho F = {A → BC , B → C , A → D} ta suy ra

F ≡ {A → B, A → C , B → C , A → D} = G

G được gọi là tập phụ thuộc hàm có vế phải một thuộc

tính.

Trang 32

3.c Tập phụ thuộc hàm không dư thừa

Nói rằng F là tập phụ thuộc hàm không dư thừa nếu không tồn tại X Y F sao cho F F – {X Y}

Ngược lại F là tập phụ thuộc hàm dư thừa.

Ví dụ 4: cho F = {A→BC, B→D, AB→D} thì

F dư thừa vì tồn tại AB→D ∈ F mà

F ≡ F – {AB→D} = {A→BC, B→D}

Thuật tóan lọai khỏi F các pth dư thừa:

Bước 1: lần lượt lọai từng pth X Y trong F , ta có G

Bước 2: kiểm tra X Y có được suy dẫn từ G không ?

Trang 33

- Thử loại AB → D, có G = {A → BC, B → D }

=> AB → D được suy dẫn từ G ,

=> F dư thừa AB → D

Trang 34

Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm *

Từ tập phụ thuộc hàm F cho trước , câu hỏi là tìm phủ tối thiểu của F ?

Bước 1: loại khỏi F các phụ thuộc hàm có vế trái dư thừa.

Bước 2: Tách các phụ thuộc hàm có vế phải trên một thuộc tính

thành các phụ thuộc hàm có vế phải một thuộc tính.

Bước 3: loại khỏi F các phụ thuộc hàm dư thừa

Nhận xét :

Từ một tập pth F luôn tìm được ít nhất một phủ tối thiểu F’

Nếu tập pth F có nhiều phủ tối thiểu thì các phủ tối thiểu

tương đương với nhau F’ F’’ F

* Bài tóan trọng tâm

Trang 35

Ví dụ 1: Cho lược đồ quan hệ Q(A,B,C,D) và tập pth F như sau:

F = {AB → CD,B → C,C → D} Hãy tìm phủ tối thiểu của F.

Bước 1: loại khỏi F các phụ thuộc hàm có vế trái dư thừa

AB → CD là phụ thuộc hàm có vế trái dư thừa?

Xét B → CD ∈ F + ? trả lời: BF+ = BCD ⇒ B → CD ∈ F +

Xét A → CD ∈ F + ? trả lời: AF+ = A ⇒ A → CD ∉ F +

Vậy AB → CD là phụ thuộc hàm có vế trái dư thừa A

kết quả của bước 1 là: F {B CD ; B C ; C D} = F 1

Bước 2: tách các pth thành các phụ thuộc hàm có vế phải một thuộc tính

F {B D; B C;C D} = F 1

Bước 3: loại khỏi F các phụ thuộc hàm dư thừa

trong F1 , B → C là phụ thuộc hàm dư thừa?

xét B → C ∈ G + ? với G = F1 - {B → C} = {B → D;C → D}

Trả lời : BG+ = BD ⇒ B → C ∉ G + ⇒ B C không dư thừa trong F 1

Trang 36

trong F1 , B → D là phụ thuộc hàm dư thừa?

xét B → D ∈ G + ? với G = F1 - {B → D} = {B → C;C → D}

trả lời : BG+ = BCD ⇒ B → D ∈ G + ⇒ B D dư thừa trong F 1

trong F1 , C → D là phụ thuộc hàm dư thừa?

xét C → D ∈ G + ? với G = F1 - {C → D} = {B → D;B → C}

trả lời :CG+ = C ⇒ C → D ∉ G + ⇒ C → D không dư thừa trong F 1

Kết quả của bước 3 : cho phủ tối thiểu

F ≡ F1 - {B → D}

F {B C;C D} = F tt

Trang 37

Ví dụ 2: Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc F như sau:

F= {AB → C , B → A , A → B} Hãy tính phủ tối thiểu của F?

Bước 1 : AB → C có là pth có vế trái dư thừa ?

Trang 38

Ví dụ 3: Cho lược đồ quan hệ Q(MSCD,MSSV,CD,HG) và tập phụ thuộc F như sau:

Hãy tìm phủ tối thiểu của F ?

Ví dụ 4: Cho lược đồ quan hệ Q(ABC) ,tìm các phủ tối thiểu của tâp phụ thuộc hàm F

F = { A → B ; A → C; B → A; C → A;B → C }

Trang 39

KHÓA CỦA LƯỢC ĐỒ QUAN HỆ

• Khái niệm

• Thuật toán tìm một khóa

• Thuật toán tìm tất cả các khóa

Trang 40

Cho Q(Q + ) và F là tập pth định nghĩa trên Q Cho K Q +

K là một khóa của Q nếu thỏa 2 điều kiện:

(1) K Q + F + (hay K F + = Q + )

(2) K’ K , K’ Q + F +

-Tập thuộc tính S là siêu khóa nếu S K

-Thuộc tính A là thuộc tính khóa nếu A K

-Thuộc tính B là thuộc tính không khóa nếu B K

Trang 44

 Thuật tóan tìm tất cả các khóa của lược đồ quan hệ Q

Thuật tóan căn bản:

B1: Xây dựng các tập con X i có thể có của Q +

Trang 45

 Thuật tóan tìm tất cả các khóa của lược đồ quan hệ Q

Thuật tóan cải tiến :

-Các thuộc tính chỉ xuất hiện ở vế phải của các pth

-Tập thuộc tính trung gian (TG) : gồm tất cả

•Các thuộc tính xuất hiện ở cả vế trái và vế phải của các pth

Hệ quả : Nếu K là khóa của A thì K TN và K TD =

Trang 46

Thuật tóan cải tiến :

Dữ liệu vào : lược đồ quan hệ Q , tập phụ thuộc hàm F

Dữ liệu ra: tất cả các khóa của quan hệ Q

B1: Xác định tập thụôc tính nguồn TN, tập thuộc tính trung gian TG

B2: Nếu TG = ∅ thì Q chỉ có một khóa K = TN

kết thúc Ngược lại : Qua bước 3

B3: tìm tất cả các tập con Xi của tập trung gian TG

B4: tìm các siêu khóa Si :

Xi , nếu (TN Xi)+ = Q+ thì Si = TN Xi

Trang 48

Ví dụ 2: cho Q(A,B,C,D) và tập F={ AB → C,

D → B, C → ABD } Tìm tất cả các khóa ? Giải:

B1: TN={ ∅ } , TG={A,B,C,D }

B2:

Ngày đăng: 12/05/2014, 11:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w