NH P MÔN CSDL QUAN H So n b i b môn Công ngh ph n m m - 200 7
2. BµI TËP VÒ ph THU C HÀM
M C TIÊU C A BÀI NÀY GIÚP NG I H C ƯỜ
Hi u đ c t m quan tr ng c a lý thuy t c a ph thu c hàm ượ ế
V n d ng các thu t toán tính bao đóng, đ nh nghĩa suy di n
theo tiên đ , theo quan h , tìm ph t i thi u, bài toán thành viên
đ gi i quy t các bài t p c th . ế
Áp d ng các thu t toán đ gi i quy t các bài t p liên quan: ế
Tìm bao đóng, ch ng minh m t ph thu c hàm có d th a trong ư
t p các ph thu c hàm không,...
A/ NH C L I LÝ THUY T
I. M T S Đ NH NGHĨA, TÍNH CH T
1. Đ nh nghĩa ph thu c hàm
Đ nh nghĩa: cho U m t t p thu c tính, m t ph thu c hàm trên U là
m t phát bi u có d ng X Y, trong đó X,YU.
Cho R quan h trên t p thu c tính U, nói r ng quan h R tho mãn
ph thu c hàm X Y, n u v i 2 b b t trong R chúng gi ngế
nhau trên t p thu c tính X thì chúng cũng gi ng nhau trên t p thu c tính
Y, nghĩa là u,v R, n u u.X=v.X thì u.Y=v.Y.ế
N u f= XếY m t ph thu c hàm trên U thì ta nói t p thu c tính Y
ph thu c hàm vào t p thu c tính X (Y functional dependent on X )
ho c t p thu c tính X xác đ nh hàm t p thu c tính Y (X functional
determines Y).
Cho f là m t ph thu c hàm trên U, n u quan h R tho mãn ph thu c ế
hàm f thì ta hi u R(f), n u R không tho mãn ph thu c hàm thì ta ế
ký hi u R(f).
Cho F m t t p các ph thu c hàm trên U, nói r ng quan h R tho
mãn t p ph thu c hàm F, hi u R(F) n u ch n u v i ế ế f F
thì R(f) hay nói m t cách t ng đ ng quan h R tho mãn t p ph ươ ươ
thu c hàm F n u nh nó tho mãn t ng ph thu c hàm trong t p đó. ế ư
Trang 1
NH P MÔN CSDL QUAN H So n b i b môn Công ngh ph n m m - 200 7
Đ nh nghĩa: L c đ quan h m t c p ượ α=(U, F) trong đó U t p
h u h n các thu c tính còn F là t p các ph thu c hàm trên U.
2. M t s tính ch t c a ph thu c hàm:
1) Tính ch t ph n x :
X, Y
U, Y
X, thì X
Y
2) Tính ch t b c c u:
X, Y, Z
U, n u Xế
Y Y
Z
thì X
Z
3) Tính ch t gia tăng:
X, Y
U, n u Xế
Y
Z
U thì
XZ
YZ
4) Tính ch t t a b c c u:
X, Y, Z, W
U, n u Xế
Y,
YZ
W thì XZ
W
5) Tính ch t ph n x ch t:
X
U thì X
X
6) Lu t tách:
X, Y, Z
U, n u có Xế
YZ thì có:
7) Lu t h p:
X, Y, Z
U, n u Xế
Y X
Z thì
X
YZ
8) Tính ch t c ng tính:
X, Y, Z, W
U, n u Xế
Y, Z
W thì
XZ
YW
3. H tiên đ Amstrong
F1 - Lu t ph n x
X,Y
U, n u Xế
Y thì Y
X
F2 - B c c u
X, Y, Z
U n u cóế
thì X
Z
F3 - Lu t gia tăng
X, Y, Z
U, n u có Xế
Y thì XZ
YZ
4. Đ nh nghĩa suy d n theo h tiên đ
Cho F t p ph thu c hàm trên U, f m t ph thu c hàm trên
U ( f th không thu c F), nói r ng f suy d n đ c t F theo h tiên ượ
Trang 2
XY
YZ
XY
XZ
NH P MÔN CSDL QUAN H So n b i b môn Công ngh ph n m m - 200 7
đ Amstrong hi u F├ f n u nh f th nh n đ c t t p F ế ư ượ
sau m t s h u h n l n áp d ng các lu t c a h tiên đ Amstrong.
Nh n xét:
V i f F thì F├ f
hi u F+ t p t t c các ph thu c hàm đ c suy d n t t p F theo ượ
h tiên đ Amstrong.
Ta th y F F+
F+ đ c g i bao đóng c a t p ph thu c hàm F, n u Fượ ế + =F thì ta nói
F m t t p đ y đ các ph thu c hàm, đôi khi ta còn nói F t p
đóng.
5. Đ nh nghĩa suy d n theo quan h
Cho F m t t p các ph thu c hàm trên t p thu c tính U, f
m t ph thu c hàm trên U, (f th không thu c F), nói r ng f đ c ượ
suy d n t t p F theo quan h hi u F ╞f, n u và ch n u v i m i ế ế
quan h R trên U, n u R tho mãn F thì R cũng tho mãn f. ế
Ký hi u F* là t p t t c các ph thu c hàm đ c suy d n t t p F theo ượ
quan h .
F*={f:XY | X,YU, F╞f}
Tính ch t c a F*:
Cho F và G là hai t p ph hàm trên t p thu c tính U khi đó ta có:
1. Tính ph n x : V iảạớ f F thì F ╞f t đây ta suy ra F F*.
2. Tính đ n đi u: N u Fơ ế G thì F* G*.
3. Tính lu đ ng: V i m i t p ph thu c hàm F thì ta luôn có (F*)*=F*.
6. Bao đóng c a t p thu c tính
Cho t p ph thu c hàm F trên U, X U, bao đóng c a t p thu c
tính X, kí hi u là X+ đ c xác đ nh nh sau:ượ ư
X+= { A | A
U và X
A
F+ }
* Thu t toán tìm bao đóng c a m t t p thu c tính
Input
α
= (U,F), X
U
Output X+ =?
Thu t toán
Ta xác đ nh dãy X(0), X(1), X(2),... theo quy n p nh sau ư
Trang 3
NH P MÔN CSDL QUAN H So n b i b môn Công ngh ph n m m - 200 7
1. Đ t X(0)=X
2. Gi s r ng đã xây d ng đ c đ n b c th i t c là đã ượ ế ướ
bi t Xế(i) (i>=0)
3. Xây d ng ti p b c i+1 nh sau ế ướ ư
X(i+1)= X(i) Z(i) trong đó
Z(i) = Yj v i đi u ki n :
v y Z(i) chính h p c a các v ph i c a các ph thu c hàm ế
trong t p F v trái t p con c a t p tr c v ph i ch a ế ướ ế ư
đ c thêm vào.ượ
đi u ki n (3) ch có tác d ng tăng t c đ tính toán
Nh n xét:
X(0), X(1), X(2),... là m t dãy không gi m và b ch n trên b i U, do đó t n
t i ch s i nào đó đ X (i)= X(i+1) (*), g i i là ch s nh nh t khi đó X + =
X(i) hay khi X(i) = U thì X+ = X(i) = U.
7. Ph thu c hàm d th a ư
Cho F m t t p các ph thu c hàm trên U, f m t ph thu c
hàm c a F t c f F, f đ c g i là d th a trong F n u nh (F-f)ượ ư ế ư + =F+
Hay th nói t ng đ ng f đ c g i d th a trong F n n ươ ươ ượ ư ế
nó suy d n đ c t t p F sau khi đã b đi ph thu c hàm f. ượ
Thu t toán thành viên
Input
- T p ph thu c hàm F
- f F
Output
- True n u nh f là d th a trong Fế ư ư
- False n u nh f là không d th a trong Fế ư ư
Method
Trang 4
Xj Yj F (1)
Xj Xi (2)
YJ X(i) (3)
NH P MÔN CSDL QUAN H So n b i b môn Công ngh ph n m m - 200 7
1) t m xoá f kh i F, g i G là t p thu đ c ượ
G=F-f, n u Gế
φ
thì chuy n qua b c 2, còn không thì k t ướ ế
thúc thu t toán và k t lu n f là không d th a trong F ế ư
2) Gi s f=X
Y n u G├ f t c Yế
XG
+
thì f d th aư
trong F còn ng c l i f là không d th a.ượ ư
Nh v y, ta ch c n tính Xư + và so sánh v i t p con Y ta có ngay câu tr
l i X Y có thu c vào F+ hay không.
8. Ph thu c hàm d th a ư
II. CÁC VÍ D
Ví d 1:
Cho l c đ quan h ượ α = (U,F) v i
U = ABCDEGH
F={ BC ADE, AC BDG, BE ABC, CD BDH, BCH ACG}
Hãy tính X+ trong các tr ng h pườ
a) X=BD
b) X=ABE
c) X=CDG
Gi i
a) đ t X(0)=BD (=X)
X(1) = X(0) Z(0) =BD Φ=BD
Suy ra X(0)= X(1) v y X+ =X=BD
b) đ t X(0)=ABE (=X)
X(1) = X(0) Z(0) =ABE ABC=ABCE
X(2) = X(1) Z(1) =ABCE (ADE BDG)=ABCDEG
X(3) = X(2) Z(2) = ABCDEG BDH=ABCDEGH=U
V y X+=U
Ví d 2 : Áp d ng bài toán thành viên
Gi s có t p F={X YW, XWZ, ZY, XYZ}
Hãy cho bi t XYếZ có d th a trong F hay không?ư
Trang 5