PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely...

52
1 CHƯƠNG 5 PHỤ THUỘC HÀM Functional dependency

Transcript of PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely...

Page 1: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

1

CHƯƠNG 5

PHỤ THUỘC HÀMFunctional dependency

Page 2: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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�cm�t d�ng ràng bu�c tòan v�n

���� Pth ñ��c �ng d�ng trong vi c gi!i quy$t bài tóantìm khóa, tìm ph* t+i thi�u và chu,n hóa c- s/ d0 li u

Page 3: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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+

Page 4: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

4

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

1:25p15/8412Copely

5:50a13/8281Copely

5:50a9/8281Copely

1:25p12/8116Chin

10:15a13/883Chin

10:15a11/883Clark

6:35p12/8301Clark

5:50a8/8281Clark

1:25p10/8116Cushing

10:15a9/883Cushing

GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong

1. KHÁI NIỆM

Page 5: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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áybay 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áichuyến bay ñó

Những qui tắc hoạt ñộng trên là một loại ràng buộc , ñược gọilà 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}→→→→ GIOKHf2: {PHICONG,NGAYKH,GIOKH}→→→→ MAYBAY f3: {MAYBAY,NGAYKH}→→→→ PHICONG

Page 6: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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

- N$u v?i m@i quan h r ñAu th=a mãn pth X →→→→ Y , tanói pth X →→→→ Y ñ��c ñCnh nghĩa trên l��c ñE quanh Q

Page 7: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

7

e1d1c5b2a3

e1d3c4b1a2

e1d3c3b1a2

d1d1c2b2a1

e1d1c1b1a1

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

A →→→→D , AB→→→→D

AB→→→→C

e1d3c1b1a5

e2d2c2b2a4

e1d1c1b1a3

e2d2c2b2a2

e1d1c1b1a1Phụ thuộc hàm nào sau ñây thỏa q

BC→→→→E , DE→→→→C , A →→→→ BCDE

Page 8: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

8

VVíí duduïï: : phanCong(PCphanCong(PC, MB, N, G), MB, N, G) , F ={(1),(2),(3)}, F ={(1),(2),(3)}

ÑÑònhònh nghnghóóaa: : 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.

Ký hiệu F |= X →→→→ Y((GGọọii F |= X →→→→ Y là phphụụ thuthuộộcc hhààmm hhệệ ququảả))

NX : NX : NeNeááuu (1) (1) thothoûûaa maõnmaõn ththìì (4) (4) cuõngcuõng ñöñöôôïïcc thothoûûaa maõnmaõn ⇒⇒⇒⇒⇒⇒⇒⇒ chchææcacaàànn kiekieååmm tratra (1)(1)

1. MB 1. MB →→→→→→→→ G G 2. MB,N 2. MB,N →→→→→→→→ PCPC3. PC,N,G 3. PC,N,G →→→→→→→→ MBMB

4. MB,N 4. MB,N →→→→→→→→ G G 5. MB,N,G 5. MB,N,G →→→→→→→→ PCPC6. PC, N, G 6. PC, N, G →→→→→→→→ PCPC…

⇒⇒⇒⇒⇒⇒⇒⇒

FF FF++

2.2. Phụ thuộc hàm ñược suy diễn logic từ FBao ñóng của một tập phụ thuộc hàm F

Page 9: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

9

�� BaoBao ññooùùngng FF++ cucuûûaa FF : : llàà ttậậpp ttấấtt ccảả ccáácc phphụụ thuthuộộcc hhààmm ñưñượợcc suysuydidiễễnn logic logic ttừừ FF

�� LuaLuaäätt daãndaãn ññeeåå suysuy rara phuphuïï thuothuoääcc hahaøømm heheää quaquaûû ttöøöø F :F :ff’’ lalaøø phuphuïï thuothuoääcc hahaøømm suysuy ttöøöø FF qua qua lualuaäätt daãndaãn ((kykyùù hiehieääuu F F ff’’ ) ) neneááuu∃∃ ff11, f, f22,,……, f, fnnsaosao chocho ffnn=f=f’’ vavaøø ((ffii ∈∈ FF) ) ∨∨ ((ffii ñöñöôôïïcc suysuy dieãndieãn ttöøöø ffjj vôvôùùii j=1,j=1,……,i,i--1)1)

KyKyùù hiehieääuu F F ’’={f={f’’ | | FF ff’’} } ⇒⇒ cacaàànn ttììmm lualuaäätt daãndaãn saosao chocho F F ’’= = FF++ ; ; nghnghóóaa lalaøø ∀∀f, f, FF== f f ⇒⇒ FF f f vavaøø FF f f ⇒⇒ FF == f f

Page 10: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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) LuIt ph!n x� (reflexive rule):

N$u Y ⊆⊆⊆⊆ X thì X →→→→ Y(F2) LuIt thêm vào (augmentation rule):

N$u X →→→→ Y thì XZ →→→→ Y trong ñó ký hi u XZ thay cho X∪∪∪∪ Z

(F3) LuIt bPc cQu (transitive rule):N$u X →→→→ Y và Y →→→→ Z thì X →→→→ Z

CCáácc luluậậtt ddẫẫnn khkháácc suysuy ttừừ (F1), (F2), (F3)(F1), (F2), (F3)(F4) BPc cQu gi! : n$u X →→→→ Y và YW →→→→ Z thì XW →→→→ Z.(F5) LuIt h�i : n$u X →→→→ Y và X →→→→ Z thì X →→→→ YZ (F6) LuIt phân rã : n$u X →→→→ Y và Z⊆⊆⊆⊆Y thì X →→→→ Z

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

CCầầnn chchứứngng minhminh HHệệ tiêntiên ññềề Armstrong Armstrong llàà ññúúngng vvàà ññầầyy ññủủ ((xemxem sgksgk) ) TTíínhnh ññúúngng : F: F f f ⇒⇒⇒⇒⇒⇒⇒⇒ F F ======== f f TTíínhnh ññầầyy ññủủ : : ∀∀∀∀∀∀∀∀ F F ======== f f ⇒⇒⇒⇒⇒⇒⇒⇒ F F ff

Page 11: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

11

A →→→→ D , A →→→→ EA →→→→ DELuật phân rã

A →→→→ DEBA →→→→ DE

A →→→→ B

Luật hội

AB →→→→ CA →→→→ DE

DEB →→→→ C

Luật bắc cầu giả

A →→→→ CA →→→→ DE

DE →→→→ C

Luật bắc cầu

AB →→→→ DE

AB →→→→ DEB

ABC →→→→ DEB

A →→→→ DELuật thêm vào

AB →→→→ BB ⊆⊆⊆⊆ ABLuật phản xạ

Ví dụ :

Page 12: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

12

Chứng minhLuật thêm vào: giả sử có t1.XZ = t2.XZ (1)

⇒ t1.X = t2.X ⇒ t1.Y = t2.Y (do X → Y) (2)⇒ XZ → Y (do (1) ⇒ (2))

Luật hợp: giả sử có t1.X = t2.X (1)⇒ t1.Y = t2.Y và t1.Z = t2.Z⇒ t1.YZ = t2.YZ (2)⇒ X → YZ (do (1) ⇒ (2))

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

Luật bắc cầu: giả sử có t1.X= t2.X (1)⇒ t1.Y = t2.Y ⇒ t1.Z = t2.Z (2)⇒ X → Z (do (1) ⇒ (2))

Luật bắc cầu giả: giả sử có t1.XZ = t2.XZ (1)⇒ t1.X = t2.X và t1.Z = t2.Z (2)⇒ t1.Y = t2.Y (do X → Y) (3)⇒ t1.YZ = t2.YZ (Kết hợp (2) và (3))⇒ t1.W = t2.W (do YZ → W) (4)⇒ XZ → W

Page 13: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

13

Bài tIp 1 : Ch�ng t= các pth sau ñ��c suy di�n tY F nhZ b� luIt d[n Amstrong ?

F = { B →→→→→→→→ A ,A ,

DADA →→→→→→→→ CE ,CE ,

D →→→→→→→→ H , H ,

AC →→→→→→→→ D D }

AC →→→→→→→→ DADA

AC →→→→→→→→ DHDH

AC →→→→→→→→ EHEH

?

F = { B →→→→→→→→ A ,A ,

BDBD →→→→→→→→ CE ,CE ,

A →→→→→→→→ CB , CB ,

C →→→→→→→→ G ,G ,

GE GE →→→→→→→→ H H }

?

BD →→→→→→→→ EH EH

B B →→→→→→→→ CGCG

Page 14: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

14

TaTa ccóó f4 : f4 : AC →→→→→→→→ DD

vvàà AC →→→→→→→→ A (A (theotheo luluậậtt phphảảnn xxạạ))

=> => SuySuy rara AC →→→→→→→→ DA (DA (theotheo luluậậtt hhộộii))

F = { B →→→→→→→→ A ,A ,

DADA →→→→→→→→ CE ,CE ,

D →→→→→→→→ H , H ,

AC →→→→→→→→ D D }

Ví dụ

Chứng minh AC →→→→→→→→ DA ?DA ?

Page 15: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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, Ai ⊆⊆⊆⊆⊆⊆⊆⊆ Q+.

Bao ñóng c*a tIp thu�c tính X dba trên F ký hi ulà X+ (hodc X+

F ) X+

F = ∪∪∪∪ Ai v?i X →→→→ Ai là ph� thu�c hàmñ��c suy di�n tY F nhZ h tiên ñA Armstrong

�� NhNhậậnn xxéétt : X : X ⊆⊆⊆⊆⊆⊆⊆⊆ XX++ , X, X++ ⊆⊆⊆⊆⊆⊆⊆⊆ QQ++

⇒⇒⇒⇒⇒⇒⇒⇒ BBổổ ññềề : : X X →→→→→→→→ Y Y ∈∈∈∈∈∈∈∈ FF++ ⇔⇔⇔⇔⇔⇔⇔⇔ Y Y ⊆⊆⊆⊆⊆⊆⊆⊆ XX++

ChChứứngng minhminh ::(1) X (1) X →→→→→→→→ Y Y ⇒⇒⇒⇒⇒⇒⇒⇒ ttồồnn ttạạii k k saosao chocho Y = Y = AAkk ⊆⊆⊆⊆⊆⊆⊆⊆ ∪∪∪∪∪∪∪∪ Ai = X+ Ai = X+ theotheo ññịịnhnh nghnghĩĩaa ccủủaa XX++

(2) Y (2) Y ⊆⊆⊆⊆⊆⊆⊆⊆ XX++ ⇒⇒⇒⇒⇒⇒⇒⇒ XX++ = Y = Y ∪∪∪∪∪∪∪∪ (X(X++ -- Y) Y) ⇒⇒⇒⇒⇒⇒⇒⇒ X X →→→→→→→→ Y Y ∪∪∪∪∪∪∪∪ (X(X++ -- Y)Y)⇒⇒⇒⇒⇒⇒⇒⇒ X X →→→→→→→→ Y Y theotheo luluậậtt phânphânrãrã

4.Bao ñóng của tập thuộc tính X (closures of attribute sets)

Page 16: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

16

Thuật toán tìm bao ñóng X+: Tính liên tiếp tập cáctập thuộc tính X0,X1,X2,... theo phương pháp sau:

B�?c 1: X0 = XB�?c 2: lQn l��t xét các ph� thu�c hàm c*a F

N$u Y→→→→ Z có Y ⊆⊆⊆⊆ Xi thì Xi+1 = Xi ∪∪∪∪ ZLo�i ph� thu�c hàm Y →→→→ Z kh=i F

B�?c 3: N$u / b�?c 2 không tính ñ��c Xi+1

thì Xi chính là bao ñóng c*a XNg��c l�i ldp l�i b�?c 2

Page 17: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

17

Ví d� 1:Cho l��c ñE quan h Q(ABCDE) và tIp ph� thu�chàm FF = { f1: A →→→→ B

f2: B →→→→ Cf3: C →→→→ Df4: D →→→→ E }

Tìm bao ñóng c*a tIp X = {AB} dba trên F

Gi!i:B�?c 1:X0 = ABB�?c 2:xét f1 vì A ⊆⊆⊆⊆ X0 ���� X1 = AB ∪∪∪∪ B = AB , lo�i f1xét f2 vì B ⊆⊆⊆⊆ X1 ���� X2 = AB ∪∪∪∪ C = ABC , l@ai f2xét f3 vì C ⊆⊆⊆⊆ X2 ���� X3 = ABC ∪∪∪∪ D = ABCD , lo�i f3xét f4 vì D ⊆⊆⊆⊆ X3 ���� X4 = ABCD ∪∪∪∪ E = ABCDE , lo�i f4

B�?c 3 : X+ = X4 = {ABCDE} là bao ñóng c*a X

Page 18: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

18

Ví d� 2: (sgk )Cho l��c ñE quan h Q(ABCDEGH) và tIp ph� thu�chàm FF = { f1: B →→→→ A

f2: DA →→→→ CEf3: D →→→→ Hf4: GH →→→→ Cf5: AC →→→→ D }

Ch�ng minh f= {AC →→→→ EH } ñ��c suy d[n tY F ?Gi!i:

B�?c 1: X0 = ACB�?c 2: xét f5 vì AC ⊆⊆⊆⊆ X0 ���� X1 = AC ∪∪∪∪ D = ACD

xét f2 vì AD ⊆⊆⊆⊆ X1 ���� X2 = ACD ∪∪∪∪ CE = ACDExét f3 vì D ⊆⊆⊆⊆ X2 ���� X3 = ACDE ∪∪∪∪ H = ACDEH

Xét f1, f4 :không th=a vì có v$ trái không nlm trong X3VIy X3 không thay ñmi ���� X+=X3={ACDEH} là bao ñóng c*a X���� AC →→→→ EH ∈∈∈∈ F+

Page 19: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

19

Bài tIp 2: Cho Q(ABCDEGH) và tIp pth F th=a trên Q.

Tìm bao ñóng c*a AC ?

F = { B →→→→→→→→ A ,A ,

DADA →→→→→→→→ CE ,CE ,

D →→→→→→→→ H , H ,

AC →→→→→→→→ D D }

F = { B →→→→→→→→ A ,A ,

BDBD →→→→→→→→ CE ,CE ,

A →→→→→→→→ CB , CB ,

C →→→→→→→→ G ,G ,

GE GE →→→→→→→→ H H }

AC + = ?

B + = ?

Page 20: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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ếnDự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+ Bước 2: 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 các tập con ñã tìm ñể suy ra các phụ thuộc hàm thuộc F+.

Page 21: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

21

Phủ và Phủ tối thiểu

Các khái niệm :

• Tập phụ thuộc hàm tương ñương với F

• Phủ của F

• Phủ tối thiểu của F

Page 22: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

22

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

Bổ ñề : F ≡≡≡≡≡≡≡≡ G G nnếếuu vvàà chchỉỉ nnếếuu F |F |======== G G vvàà G |G |======== FF

�������� NNếếuu F F ≡≡≡≡≡≡≡≡ G G ⇒ FF ======== GG và GG ======== FF

∀∀∀∀∀∀∀∀gg∈∈∈∈∈∈∈∈ G +, g: X G +, g: X →→→→→→→→ YY⇒ gg∈∈∈∈∈∈∈∈ FF + + ⇒ FF ======== gg

Do Do ññóó ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀gg∈∈∈∈∈∈∈∈ GG ththìì FF======== g hay F g hay F ======== G G

TươngTương ttựự ∀∀∀∀∀∀∀∀ff∈∈∈∈∈∈∈∈ FF ththìì G G ======== f hay f hay GG ======== FF

�� NNếếuu F F ======== GG và GG ======== FF ⇒ FF ≡≡≡≡≡≡≡≡ GG

F F ======== GG ⇒ GG ⊆ FF + ⇒ GG +⊆ (FF +)+= FF +

GG ======== F F ⇒ FF ⊆ GG + ⇒ FF +⊆ (GG +)+= GG +

Tập phụ thuộc hàm F và G tương ñương nếu F+ = G+ ký hiệu F ≡≡≡≡≡≡≡≡ GG

Page 23: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

23

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

B1 :với mỗi X →→→→→→→→ Y Y ccủủaa F F xxáácc ññịịnhnh xemxem X →→→→→→→→ Y Y ccóó ñưñượợccsuysuy ddẫẫnn ttừừ G G khôngkhông

B2 :với mỗi X →→→→→→→→ Y Y ccủủaa G G xxáácc ññịịnhnh xemxem X →→→→→→→→ Y Y ccóó ñưñượợccsuysuy ddẫẫnn ttừừ F F khôngkhông

NNếếuu ccảả 2 2 bưbướớcc trêntrên ññềềuu ññúúngng ththìì F F ≡≡≡≡≡≡≡≡ GG

Page 24: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

24

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

F ={A→→→→→→→→BC, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và G ={A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, CD→→→→→→→→E E }

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

2. F có tương ñương với G’ = { A→→→→→→→→BCDE 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 AF+ = {ABCDE} => trong F+ có A→→→→→→→→BCE BCE vvàà A→→→→→→→→ABD (2) ABD (2)

TTừừ (1) (2) : (1) (2) : kkếếtt luluậậnn F F ≡≡≡≡≡≡≡≡ GG

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

Tính CDG+ = {CD} => G’+ không chứa pth CD →→→→→→→→ EE

KKếếtt luluậậnn : F : F khôngkhông tươngtương ñươngñương GG’’

Page 25: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

25

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

F ={A→→→→→→→→BC, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và

G ={A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, CD→→→→→→→→E E }

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

2. F có tương ñương với G’ = { A→→→→→→→→BCDE BCDE }

Page 26: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 ={A→→→→→→→→BC, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và G ={A→→→→→→→→DE , DE , A→→→→→→→→BCE, CDBCE, CD→→→→→→→→E }E }

F ={A→→→→→→→→B, BB, B→→→→→→→→C, CC, C→→→→→→→→D D } và G ={A→→→→→→→→BCD , BBCD , B→→→→→→→→CD, CCD, C→→→→→→→→D }D }

F ={A→→→→→→→→B, BB, B→→→→→→→→C, CC, C→→→→→→→→D D } và G ={A→→→→→→→→CD , CCD , C→→→→→→→→D }D }

F ={AB→→→→→→→→C, BC, B→→→→→→→→C, CDC, CD→→→→→→→→E ,DE ,D→→→→→→→→E E } và G ={B→→→→→→→→C , DC , D→→→→→→→→E }E }

F ={AB→→→→→→→→C, BC, B→→→→→→→→C, CDC, CD→→→→→→→→E ,DE ,D→→→→→→→→E E } và G ={AB→→→→→→→→CC, B→→→→→→→→C, CC, C→→→→→→→→B, BDB, BD→→→→→→→→E }E }

Page 27: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

27

2. Phủ của F

3. Phủ tối thiểu

G là phủ của F nếu G ≡≡≡≡≡≡≡≡ FFMột số phủ của F : G1 = { A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, CD→→→→→→→→EE }

G2 = { A→→→→→→→→E, E, A→→→→→→→→ABCD, CDABCD, CD→→→→→→→→E }E }G3 = { A→→→→→→→→BCD, CDBCD, CD→→→→→→→→E E }….

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ềukiệ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

Page 28: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 rlng ph� thu�c hàm f: X→→→→Y cóv$ trái d� thYa (ph� thu�c hàm không ñQy ñ*) n$u tEnt�i m�t Z∈∈∈∈ X sao cho :

F ≡≡≡≡ F - {X →→→→ Y} ∪∪∪∪ {Z →→→→ Y}

Ví d� 1: cho Q(A,B,C) và F= {AB→→→→C; B→→→→C}

AB →→→→ C là ph� thu�c hàm có v$ trái d� thYa vì

F ≡≡≡≡ F- {AB→→→→C}∪∪∪∪ {B→→→→C}= {B→→→→C}

Page 29: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

29

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

Bước 1: LQn l��t thbc hi n b�?c 2 cho các pth X→→→→Y c*a F

Bước 2: V?i m@i tIp con X’≠≠≠≠ ∅∅∅∅ c*a X.

N$u X'→→→→Y∈∈∈∈ F+ thì thay X→→→→Y trong F blng 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ứanhững pth có vế trái dư thừa.

Page 30: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

30

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

cho tIp ph� thu�c hàm F = {A →→→→ BC, B →→→→ C, AB →→→→ D}

- xét pth AB →→→→ D :

A →→→→ D ∈∈∈∈ F+ ? tính AF+ = ABCD => A →→→→ D ∈∈∈∈ F+

B →→→→ D ∈∈∈∈ F+ ? tính BF+ = BC => B →→→→ D ∉∉∉∉ F+

Trong F ta thay AB →→→→ D blng A →→→→ D

VIy F ≡≡≡≡ F’ = {A →→→→ BC, B →→→→ C, A →→→→ D}

- Các pth còn l�i có v$ trái 1 thu�c tính _ là pth ñQy ñ*

K$t luIn : F ≡≡≡≡ F’ là tIp pth có v$ trái không d� thYa

Page 31: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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ộtthuộ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à tIp ph� thu�c hàm có v$ ph!i m�t thu�ctính.

Page 32: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

32

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

Nói rlng F là tIp ph� thu�c hàm không d� thYa n$ukhông tEn t�i X→→→→ Y ∈∈∈∈ F sao cho F ≡≡≡≡ F – {X→→→→ Y}.Ng��c l�i F là tIp ph� thu�c hàm d� thYa.

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 ?

Bước 3: nếu có thì pth X →→→→ Y là dư thừa và lọai khỏi F quay lại bước 1

Page 33: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

33

Giải theo thuật toán :

cho F = {A→BC, B→D, AB→D}

- Thử loại A→BC , có G = { B→D, AB→D}=> A→BC không ñược suy dẫn từ G

- Thử loai B→D , có G = {A→BC, AB→D}=> B→D không ñược suy dẫn từ G

- 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

Page 34: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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� thYa.

B�?c 2: Tách các ph� thu�c hàm có v$ ph!i trên m�t thu�c tínhthà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� thYa

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ểutương ñương với nhau F’ ≡≡≡≡ F’’ ≡≡≡≡ F

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

Page 35: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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: 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} = F1

Bước 2: kết quả của bước 2 là:

F ≡≡≡≡ {B →→→→ D; B →→→→ C;C →→→→ D} = F1

Bước 3:

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 F1

Page 36: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 F1

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 F1

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

F ≡ F1 - {B → D}

F ≡≡≡≡ {B →→→→ C;C →→→→ D} = Ftt

Page 37: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 ?

B → C ∈ F+ ? trả lời: B+ = ABC ⇒ B → C ∈ F+

A → C ∈ F+ ? trả lời: A+ = ABC ⇒ A → C ∈ F+

Kết quả có 2 tập F’ và F” có vế trái không dư thừa :

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

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

Bước 2 : F’ và F” là các tập phụ thuộc hàm có vế phải một thuộc tính

Bước 3 :

Xét F’ = {B → C;B → A;A → B} thì thấy F’ không phải là tập pth dư thừa.

Xét F” = {A → C;B → A;A → B} thì thấy F” không phải là tập pth dư thừa

Kết luận : F có 2 tập phủ tối thiểu F’ và F”

Page 38: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

38

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

F = {MSCD→ CD;

CD → MSCD;

CD,MSSV → HG;

MSCD,HG → MSSV;

CD,HG → MSSV;

MSCD,MSSV → HG}

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ủatâp phụ thuộc hàm F

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

Page 39: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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

Page 40: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 →→→→→→→→ QQ+ ∈∈∈∈∈∈∈∈ FF+ (hay K(hay KFF+ = Q= Q+))

(2) ∃∃∃∃ K’ ⊂⊂⊂⊂ K , K’ →→→→→→→→ QQ+ ∈∈∈∈∈∈∈∈ FF+

- 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 ∈∈∈∈∈∈∈∈ KK-- Thuộc tính B là thu�c tính không khóa nếu B ∉∉∉∉ K- Tập thuộc tính không khóa có thể bằng ∅∅∅∅- Một lươc ñồ quan hệ có thể có nhiAu khóa K

Page 41: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

41

� Thuật tóan tìm một khóa của lược ñồ quan hệ Q :

B1 : Gán K = Q+

B2 : Lần lượt thử lọai từng thuộc tính A ∈∈∈∈ K,có K’ = K – A

nếu k’+ = Q+ thì gán K = K’

Thực hiện lại bước 2

Page 42: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

42

Ví dụ_sgk : Cho Q(ABCDEGHI) vàF = {AC→→→→ B, BI →→→→ ACD, ABC →→→→ D, H →→→→ I, ACE →→→→ BCG,

CG →→→→ AE}

Gán K = Q+ = {A,B,C,D,E,G,H,I}

Xét K’= K - {A} = {BCDEGHI} , tính K’+ = BCDEGHIA = Q+

⇒gán K = K’

Xét K’= K - {B} = {CDEGHI} , tính K’+ = CDEGHIAB = Q+

⇒Gán K= K’

Xét K’= K – {C} = {DEGHI} , tính K’+ = DEGHI ≠ Q+

Xét K’= K – {D} = {CEGHI} , tính K’+ = CEGHIABD = Q+

⇒Gán K = k’

Tiếp tục tương tự … kết quả thu ñược khóa K = {C,G,H}

Page 43: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

43

• Cho Q(ABCDEGHI) vàF =

{AC→→→→ B,

BI →→→→ ACD,

ABC →→→→ D,

H →→→→ I,

ACE →→→→ BCG,

CG →→→→ AE}

K’= {DEGHI}

K’+= ?

Page 44: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 Xi có thể có của Q+

B2: Tìm bao ñóng của các Xi

B3: Xác ñịnh các siêu khóa Si chính là các Xi có Xi+ = Q+

B4: Xác ñịnh các khóa từ tập siêu khóa SSSS∀∀∀∀ Si, Sj ∈∈∈∈ SSSS, nếu ∃∃∃∃ Sj ⊂⊂⊂⊂ Si thì SSSS’’’’ = S S S S –––– Si

Cuối cùng tập SSSS’’’’ là tIp tvt c! các khóa cQn tìm

Ví dụ -sgk …

Nhận xét : Kết quả của B1 có thể là một tập rất lớncủa các tập con của Q+ (2n)

Page 45: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 khái niệm

-Tập thuộc tính nguồn (TN) gồm tất cả• Các thuộc tính chỉ xuất hiện ở vế trái và không xuất hiện ở vếphải của các pth• Các thuộc tính không xuất hiện ở cả vế trái và vế phải của các pth

-Tập thuộc tính ñích (TD) gồm tất cả

-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 = ∅∅∅∅

Page 46: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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 FDữ 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 trunggian TGB2: Nếu TG = ∅ thì Q chỉ có một khóa K = TN

kết thúcNgượ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

B5: tìm các khóa từ tập siêu khóa S:∀∀∀∀ Si, Sj ∈∈∈∈ S, nếu ∃∃∃∃ Sj ⊂⊂⊂⊂ Si thì S’ = S – Si

cuối cùng , tập S’ chính là tập khóa cần tìm

Page 47: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

47

Ví dụ 1: cho Q(CSZ) , F= {CS →→→→ Z , Z →→→→ C}

B5B4B3

SZCSZCSCZCZ

SZSZSZCSZZ

SCSCSCZSCC

SS∅

KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG

B1: TN = {S} , TG = {C,Z}

B2 ñến B5 :

Page 48: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

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:

Page 49: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

49

F={ AB→C, D→B, C→ABD }

ADADADBCADAD

ACACACBDACAC

ABABABCDABAB

DBDD

CCCABDCC

BBB

AAA

∅∅

KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG

{ABCD}

Page 50: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

50

F={ AB→C, D→B, C→ABD }

ABCDCDABABCDABCD

BCDCDABBCDBCD

ACDCDABACDACD

ABDCDABABDABD

ABCCDABABCABC

CDCDCDABCDCD

BDBDBD

BCBCBCADBCBC

KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG

{ABCD}

Page 51: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

51

Ví dụ 3: cho Q(A,B,C,D,E,H) và tập

F= {A → E; C → D; E → DH}

CM: K={A,B,C} là khóa duy nhất của Q ?

B1: TN= {A,B,C} , TG = { E }

B2

Page 52: PHỤTHUỘC HÀM€¦ · 4 Xétvídụ(sgk) : ChoquanhệPhâncông Copely 412 15/8 1:25p Copely 281 13/8 5:50a Copely 281 9/8 5:50a Chin 116 12/8 1:25p Chin 83 13/8 10:15a Clark

52

F= {A → E; C → D; E → DH}

B5B4B3

A,B,C,EABCEDH = Q+

A,B,C,EE

ABCABCABCEDH = Q+

A,B,C∅

KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG