際際滷

際際滷Share a Scribd company logo
Never stop improving quality www.elarion.com
Ph畛 thu畛c hm Gi畛i thi畛u
畛nh ngh挑a
Bi畛u di畛n PTH b畉ng 畛 th畛
Suy di畛n logi c叩c PTH
H畛 ti棚n 畛 Amstrong
Bao 坦ng
Bao 坦ng c畛a t畉p thu畛c t鱈nh
Kh坦a  Thu畉t to叩n t狸m kh坦a
Ph畛 t畛i thi畛u
Gi畛i thi畛u L s畛 bi畛u di畛n RBTV d動畛i d畉ng h狸nh th畛c to叩n h畛c.
B畉o 畉m th担ng tin kh担ng b畛 t畛n th畉t khi ph但n r達 ho畉c k畉t n畛i gi畛a c叩c quan h畛.
畛nh ngh挑a Quan h畛 R 動畛c 畛nh ngh挑a tr棚n t畉p thu畛c t鱈nh  U = { A1, A2, ..., An}.
A, B  U l 2 t畉p con c畛a t畉p thu畛c t鱈nh U.
N畉u t畛n t畉i m畛t 叩nh x畉 f: A -> B th狸 n坦i r畉ng A  x叩c 畛nh hm B, hay B ph畛 thu畛c hm vo A.
K箪 hi畛u: A -> B.
畛nh ngh挑a 畛nh ngh挑a h狸nh th畛c c畛a PTH:
Quan h畛 Q (A, B, C) c坦 PTH  A x叩c 畛nh B
(k箪 hi畛u l A -> B) n畉u:
  q, q  Q, sao cho q.A = q.A th狸 q.B = q.B
Ngh挑a l:  畛ng v畛i 1 gi叩 tr畛 c畛a A th狸 c坦 m畛t gi叩 tr畛 duy nh畉t c畛a B
A l v畉 tr叩i c畛a PTH, B l v畉 ph畉i c畛a PTH
PTH   A -> A 動畛c g畛i l PTH hi畛n nhi棚n.
畛nh ngh挑a V鱈 d畛 1: Trong quan h畛 Sinhvien ( Masv , Hoten,  Phai, NgSinh, Quequan, Diachi) C坦 c叩c PTH sau: Masv  ->  Quequan, Diachi
Masv, Hoten  ->  Ngsinh, Quequan Kh担ng c坦 c叩c PTH sau: Hoten  ->  Ngsinh, Quequan T畛c l x叩c 畛nh sinh vi棚n th狸 t畛i thi畛u ph畉i c坦 m達 sinh vi棚n n棚n kh担ng t畛n t畉i ph畛 thu畛c hm suy ra t畛 thu畛c t鱈nh Hoten.
畛nh ngh挑a V鱈 d畛 2: Trong QuanH畛 CHITI畉T_H ( S畛-h坦a董n,   M達-hng , S畛-l動畛ng, 董n-gi叩, Tr畛-gi叩)
C坦 c叩c PTH sau: f1: S畛-h坦a-董n, M達-hng-> S畛-l動畛ng
f2: S畛-h坦a-董n, M達-hng -> 董n-gi叩.
f3: S畛-h坦a-董n, M達-hng-> 意姻畛-乙庄叩.
f4: S畛-l動畛ng, 董n-gi叩 -> 意姻畛-乙庄叩.
Bi畛u di畛n PTH b畉ng 畛 th畛  (1/3) PTH c坦 th畛 bi畛u di畛n b畉ng 畛 th畛 c坦 h動畛ng: C叩c n炭t trong 畛 th畛 chia thnh 2 lo畉i: N炭t thu畛c t鱈nh: bi畛u di畛n b畉ng t棚n thu畛c t鱈nh
N炭t PTH: bi畛u di畛n b畉ng h狸nh tr嘆n c坦 s畛 th畛 t畛 c畛a PTH. C叩c cung trong 畛 th畛 c滴ng c坦 2 lo畉i: Cung 畉n PTH: xu畉t ph叩t t畛 c叩c thu畛c t鱈nh 畛 v畉 tr叩i  c畛a c叩c PTH
Cung r畛i PTH: h動畛ng 畉n c叩c thu畛c t鱈nh 畛 v畉 ph畉i  c畛a c叩c PTH
Bi畛u di畛n PTH b畉ng 畛 th畛  (2/3) Quan h畛 R (A, B, C, D, E, H)
T畉p ph畛 thu畛c hm F = {AB->C, CD->E, EC->A,
CD->H, H->B } TH022_11
Bi畛u di畛n PTH b畉ng 畛 th畛  (3/3) Quan h畛 R (A, B, C, D, E, G)
T畉p ph畛 thu畛c hm F = {A->C; B->DE; AB->G;

More Related Content

Phan5

  • 1. Never stop improving quality www.elarion.com
  • 2. Ph畛 thu畛c hm Gi畛i thi畛u
  • 4. Bi畛u di畛n PTH b畉ng 畛 th畛
  • 5. Suy di畛n logi c叩c PTH
  • 6. H畛 ti棚n 畛 Amstrong
  • 8. Bao 坦ng c畛a t畉p thu畛c t鱈nh
  • 9. Kh坦a Thu畉t to叩n t狸m kh坦a
  • 11. Gi畛i thi畛u L s畛 bi畛u di畛n RBTV d動畛i d畉ng h狸nh th畛c to叩n h畛c.
  • 12. B畉o 畉m th担ng tin kh担ng b畛 t畛n th畉t khi ph但n r達 ho畉c k畉t n畛i gi畛a c叩c quan h畛.
  • 13. 畛nh ngh挑a Quan h畛 R 動畛c 畛nh ngh挑a tr棚n t畉p thu畛c t鱈nh U = { A1, A2, ..., An}.
  • 14. A, B U l 2 t畉p con c畛a t畉p thu畛c t鱈nh U.
  • 15. N畉u t畛n t畉i m畛t 叩nh x畉 f: A -> B th狸 n坦i r畉ng A x叩c 畛nh hm B, hay B ph畛 thu畛c hm vo A.
  • 16. K箪 hi畛u: A -> B.
  • 17. 畛nh ngh挑a 畛nh ngh挑a h狸nh th畛c c畛a PTH:
  • 18. Quan h畛 Q (A, B, C) c坦 PTH A x叩c 畛nh B
  • 19. (k箪 hi畛u l A -> B) n畉u:
  • 20. q, q Q, sao cho q.A = q.A th狸 q.B = q.B
  • 21. Ngh挑a l: 畛ng v畛i 1 gi叩 tr畛 c畛a A th狸 c坦 m畛t gi叩 tr畛 duy nh畉t c畛a B
  • 22. A l v畉 tr叩i c畛a PTH, B l v畉 ph畉i c畛a PTH
  • 23. PTH A -> A 動畛c g畛i l PTH hi畛n nhi棚n.
  • 24. 畛nh ngh挑a V鱈 d畛 1: Trong quan h畛 Sinhvien ( Masv , Hoten, Phai, NgSinh, Quequan, Diachi) C坦 c叩c PTH sau: Masv -> Quequan, Diachi
  • 25. Masv, Hoten -> Ngsinh, Quequan Kh担ng c坦 c叩c PTH sau: Hoten -> Ngsinh, Quequan T畛c l x叩c 畛nh sinh vi棚n th狸 t畛i thi畛u ph畉i c坦 m達 sinh vi棚n n棚n kh担ng t畛n t畉i ph畛 thu畛c hm suy ra t畛 thu畛c t鱈nh Hoten.
  • 26. 畛nh ngh挑a V鱈 d畛 2: Trong QuanH畛 CHITI畉T_H ( S畛-h坦a董n, M達-hng , S畛-l動畛ng, 董n-gi叩, Tr畛-gi叩)
  • 27. C坦 c叩c PTH sau: f1: S畛-h坦a-董n, M達-hng-> S畛-l動畛ng
  • 29. f3: S畛-h坦a-董n, M達-hng-> 意姻畛-乙庄叩.
  • 30. f4: S畛-l動畛ng, 董n-gi叩 -> 意姻畛-乙庄叩.
  • 31. Bi畛u di畛n PTH b畉ng 畛 th畛 (1/3) PTH c坦 th畛 bi畛u di畛n b畉ng 畛 th畛 c坦 h動畛ng: C叩c n炭t trong 畛 th畛 chia thnh 2 lo畉i: N炭t thu畛c t鱈nh: bi畛u di畛n b畉ng t棚n thu畛c t鱈nh
  • 32. N炭t PTH: bi畛u di畛n b畉ng h狸nh tr嘆n c坦 s畛 th畛 t畛 c畛a PTH. C叩c cung trong 畛 th畛 c滴ng c坦 2 lo畉i: Cung 畉n PTH: xu畉t ph叩t t畛 c叩c thu畛c t鱈nh 畛 v畉 tr叩i c畛a c叩c PTH
  • 33. Cung r畛i PTH: h動畛ng 畉n c叩c thu畛c t鱈nh 畛 v畉 ph畉i c畛a c叩c PTH
  • 34. Bi畛u di畛n PTH b畉ng 畛 th畛 (2/3) Quan h畛 R (A, B, C, D, E, H)
  • 35. T畉p ph畛 thu畛c hm F = {AB->C, CD->E, EC->A,
  • 36. CD->H, H->B } TH022_11
  • 37. Bi畛u di畛n PTH b畉ng 畛 th畛 (3/3) Quan h畛 R (A, B, C, D, E, G)
  • 38. T畉p ph畛 thu畛c hm F = {A->C; B->DE; AB->G;
  • 39. A->ED; D->E } TH022_11
  • 40. Suy di畛n logic c叩c PTH (1/2) Cho l動畛c 畛 quan h畛 R v畛i t畉p thu畛c t鱈nh U v t畉p c叩c PTH F.
  • 41. X -> Y l 1 PTH; X,Y U.
  • 42. Ta n坦i r畉ng X -> Y 動畛c suy di畛n l担gic t畛 F n畉u r R, n畉u r th畛a t畉t c畉 c叩c PTH trong F th狸 r c滴ng th畛a X -> Y K箪 hi畛u l: F = X -> Y.
  • 43. Suy di畛n logic c叩c PTH (2/2) V鱈 d畛: V畛i F = {X -> Y, X -> Z, Y -> T }
  • 44. Th狸 ta c坦 c叩c PTH: X -> YZ
  • 46. H畛 ti棚n 畛 Amstrong (1/4) Nm 1974, Amstrong 達 動a ra h畛 ti棚n 畛 (g畛i l h畛 lu畉t d畉n Amstrong) : Cho l動畛c 畛 quan h畛 Q v畛i t畉p thu畛c t鱈nh U. X, Y, Z, W U. PTH c坦 c叩c t鱈nh ch畉t c董 b畉n sau: A1: T鱈nh ph畉n x畉: N畉u Y X th狸 X -> Y A2: T鱈nh tng tr動畛ng: N畉u X -> Y th狸 XZ -> YZ (Z U) A3: T鱈nh b畉c c畉u: N畉u X -> Y v Y -> Z th狸 X -> Z
  • 47. H畛 ti棚n 畛 Amstrong (2/4) V鱈 d畛 1: Cho F = {AB -> C, C -> A } CMR: BC -> ABC Ta c坦: (1) C -> A (gi畉 thi畉t)
  • 48. (2) BC -> AB (tng tr動畛ng 1)
  • 49. (3) AB -> C (gi畉 thi畉t)
  • 50. (4) AB -> ABC (tng tr動畛ng 3)
  • 51. (5) BC -> ABC (b畉c c畉u 2 & 4)
  • 52. H畛 ti棚n 畛 Amstrong (3/4) C叩c t鱈nh ch畉t b畛 sung: A4: Lu畉t gi畉 b畉c c畉u: N畉u X -> Y v YZ -> W th狸 XZ -> W A5: Lu畉t h畛p: N畉u X -> Y v X -> Z th狸 X -> YZ A6: Lu畉t t叩ch: N畉u X -> YZ th狸 X -> Y v X -> Z
  • 53. H畛 ti棚n 畛 Amstrong (4/4) V鱈 d畛: Cho R(A,B,C,D,E,G,H). CMR: AB->E v畛i F = {AB->C, B->D, CD->E, CE->GH, G->A }.
  • 54. Ta c坦: (1) AB->C (cho岳姻動畛c)
  • 56. (3) AB->B (lu畉t 岳叩界鞄)
  • 57. (4) B->D (cho 岳姻動畛c)
  • 58. (5) AB->D (b畉c c畉u 3 & 4)
  • 60. (7) CD->E (cho 岳姻動畛c)
  • 61. (8) AB->E (b畉c c畉u 6 & 7)
  • 62. Bao 坦ng (Closure) (1/3) G畛i F+ l bao 坦ng (Closure) c畛a F, t畛c l t畉p c叩c PTH 動畛c suy di畛n l担gic t畛 F.
  • 63. N畉u F = F+ th狸 ta n坦i F l h畛 畉y 畛 (full family) c畛a c叩c PTH.
  • 64. Bao 坦ng (Closure) (2/3) Bi to叩n thnh vi棚n (MemberShip):
  • 65. Ki畛m tra PTH X -> Y c坦 動畛c suy di畛n l担g鱈c t畛 F kh担ng? (t畛c l X -> Y F+ ? ) 但y l m畛t bi to叩n kh坦 gi畉i.
  • 66. 嘆i h畛i ph畉i c坦 m畛t h畛 lu畉t d畉n 畛 suy di畛n l担gic c叩c PTH.
  • 67. Bao 坦ng (Closure) (3/3) Bi to叩n thnh vi棚n V鱈 d畛: Cho Q(ABCDEG). F = {AE -> C, CG -> A, BD -> G, GA -> E }
  • 68. CMR: BDC -> Q+ F+ (Q+ = ABCDEG+) Ta c坦: (1) BDC->BDC (ph畉n 恰畉)
  • 69. (2) BD->G (gi畉 thi畉t f3)
  • 70. (3) CG->A (gi畉 thi畉t f2)
  • 71. (4) BDC->A (gi畉 b畉c c畉u 2,3)
  • 73. (6) BDC->E (b畉c c畉u 5 & f4)
  • 74. (7) BDC->Q+ (h畛p 1,2,4,6)
  • 75. Bao 坦ng c畛a t畉p thu畛c t鱈nh (1/5) Thu畉t to叩n T狸m bao 坦ng c畛a t畉p thu畛c t鱈nh
  • 76. Input: T畉p U h畛u h畉n c叩c thu畛c t鱈nh & t畉p c叩c
  • 77. PTH F tr棚n U & X U.
  • 79. Ph動董ng ph叩p: T鱈nh li棚n ti畉p X 0 , X 1 , X 2 , theo quy t畉c nh動 sau:
  • 80. Bao 坦ng c畛a t畉p thu畛c t鱈nh (2/5) Thu畉t to叩n T狸m bao 坦ng c畛a t畉p thu畛c t鱈nh
  • 81. B動畛c 1. X 0 = X
  • 82. B動畛c 2. X i+1 = X i A sao cho (Y -> Z ) F, m A Z v Y Xi
  • 83. B動畛c 3. Cho 畉n khi X i+1 = Xi (V狸 X= X 0 X 1 X 2 U, m U h畛u h畉n cho n棚n s畉 t畛n t畉i 1 ch畛 s畛 i no 坦 m X i+1 = X i )
  • 84. Khi 坦 X + F = X i
  • 85. Bao 坦ng c畛a t畉p thu畛c t鱈nh (3/5) T狸m bao 坦ng c畛a t畉p thu畛c t鱈nh V鱈 d畛 1
  • 86. Cho R(U) v畛i U=ABCDEG
  • 87. F = {AB -> C, C -> A, BC -> D, ACD -> B,
  • 88. D -> EG, BE -> C, CG -> BD, CE -> AG }
  • 89. T鱈nh X + F , v畛i:
  • 90. X= D
  • 91. X= BD
  • 92. Bao 坦ng c畛a t畉p thu畛c t鱈nh (4/5) V畉y D + = DEG
  • 93. Bao 坦ng c畛a t畉p thu畛c t鱈nh (5/5) V畉y BD + = ABCDEG
  • 94. Kh坦a Thu畉t to叩n t狸m kh坦a R l l動畛c 畛 quan h畛 畛nh ngh挑a tr棚n t畉p c叩c thu畛c t鱈nh U = { A 1 , A 2 , ... , A n }
  • 95. T畉p c叩c PTH F = { f 1 , f 2 , ..., f m } x叩c 畛nh tr棚n R.
  • 96. K U l kh坦a c畛a R n畉u th畛a m達n hai i畛u ki畛n sau 但y: K -> U. ( K l si棚u kh坦a )
  • 97. K K m K -> U.
  • 98. Bi To叩n T狸m kh坦a (1/6) X叩c 畛nh t畉t c畉 c叩c kh坦a c畛a 1 l動畛c 畛 quan h畛.
  • 99. Bi to叩n ny 動畛c gi畉i quy畉t qua 2 giai o畉n: Giai o畉n 1 : X但y d畛ng t畉p S ch畛a t畉t c畉 c叩c si棚u kh坦a c畛a R
  • 100. Giai o畉n 2 : X但y d畛ng t畉p K ch畛a t畉t c畉 c叩c kh坦a c畛a R t畛 t畉p S b畉ng c叩ch lo畉i b畛 kh畛i S nh畛ng si棚u kh坦a kh担ng t畛i thi畛u.
  • 101. Bi To叩n T狸m kh坦a (2/6) 畛 x叩c 畛nh t畉t c畉 c叩c si棚u kh坦a c畛a 1 l動畛c 畛 quan h畛 R, ta l畉n l動畛t x辿t (2 n -1) t畉p h畛p con c畛a R + : X 1 , X 2 , N畉u 1 t畉p con X i c畛a R + c坦 bao 坦ng b畉ng 炭ng R + th狸 t畉p con X i ch鱈nh l 1 si棚u kh坦a.
  • 102. N畉u R ch畛 c坦 1 si棚u kh坦a S th狸 si棚u kh坦a 坦 c滴ng l kh坦a c畛a l動畛c 畛 quan h畛 R
  • 103. Bi To叩n T狸m kh坦a (3/6) Trong tr動畛ng h畛p R c坦 nhi畛u h董n 1 si棚u kh坦a (h畛u h畉n), 畛 x叩c 畛nh t畉t c畉 c叩c kh坦a ch畛 畛nh, ta so s叩nh 1 c畉p si棚u kh坦a S i v S j . N畉u S i S j , ta lo畉i S j v gi畛 l畉i S i .
  • 104. L畉n l動畛t so s叩nh t畛ng c畉p si棚u kh坦a 畛 lo畉i b畛 t畉p l畛n, cu畛i c湛ng thu 動畛c t畉p c叩c kh坦a ch畛 畛nh c畛a R.
  • 105. Suy ra Thu畉t to叩n kh担ng kh畉 thi khi n l畛n.
  • 106. Bi to叩n t狸m kh坦a (4/6) Bi To叩n T狸m kh坦a Thu畉t to叩n c畉i ti畉n: Ch炭ng ta s畉 c畉i ti畉n thu畉t to叩n d畛a tr棚n vi畛c ph但n lo畉i t畉p thu畛c t鱈nh R + A g畛i l thu畛c t鱈nh ngu畛n n畉u A kh担ng xu畉t hi畛n 畛 v畉 ph畉i c畛a b畉t k畛 PTH kh担ng hi畛n nhi棚n no c畛a F.
  • 107. T畉p c叩c thu畛c t鱈nh ngu畛n k箪 hi畛u l N
  • 108. A g畛i l thu畛c t鱈nh 鱈ch n畉u A kh担ng ph畉i thu畛c t鱈nh ngu畛n v A kh担ng xu畉t hi畛n 畛 v畉 tr叩i c畛a b畉t k畛 PTH kh担ng hi畛n nhi棚n no c畛a F.
  • 109. T畉p c叩c thu畛c t鱈nh 鱈ch k箪 hi畛u l D.
  • 110. Bi to叩n t狸m kh坦a (5/6) T畉p h畛p c叩c thu畛c t鱈nh kh担ng ph畉i ngu畛n v kh担ng ph畉i 鱈ch g畛i l t畉p trung gian. K箪 hi畛u l L
  • 111. C叩c t畉p h畛p N, D, L r畛i nhau t畛ng 担i m畛t v N D L = R + Nh畉n x辿t N畉u K l kh坦a c畛a R th狸 K ch畛a t畉t c畉 c叩c thu畛c t鱈nh ngu畛n v kh担ng ch畛a b畉t k畛 thu畛c t鱈nh 鱈ch no.
  • 112. Bi to叩n t狸m kh坦a (6/6) B1: X但y d畛ng 2v t畉p con c畛a L: L1, L2, b畉ng ph動董ng ph叩p 動畛ng ch畉y nh畛 ph但n.
  • 113. B2: X但y d畛ng t畉p K ch畛a c叩c si棚u kh坦a K =
  • 114. L i , X i = N L i
  • 115. T鱈nh X i + F . N畉u X i + F = R + th狸 K = K X i B3: Lo畉i b畛 d畉n c叩c si棚u kh坦a l畛n
  • 116. V鱈 d畛 thu畉t to叩n c畉i ti畉n (1/3) V鱈 d畛: Cho R(ABCDEG) v畛i t畉p PTH F = { AE -> C, CG -> A, BD -> G, GA -> E } X叩c 畛nh t畉t c畉 c叩c kh坦a c畛a R
  • 117. Ta c坦: N = { B, D }
  • 118. D =
  • 119. L = { A, C, E, G }
  • 120. X但y d畛ng t畉p thu畛c t鱈nh L i b畉ng ph動董ng ph叩p 動畛ng ch畉y nh畛 ph但n.
  • 121. V鱈 d畛 thu畉t to叩n c畉i ti畉n (2/3)
  • 122. V鱈 d畛 thu畉t to叩n c畉i ti畉n (3/3) V畉y c坦 2 si棚u kh坦a: BDC
  • 123. BDA V 2 kh坦a: BDC
  • 124. BDA
  • 125. Ph畛 t畛i thi畛u (1/4) PTH t動董ng 動董ng G畛i F v G l c叩c t畉p PTH. Ta n坦i r畉ng F v G l t動董ng 動董ng n畉u F + = G + .
  • 126. N畉u F v G t動董ng 動董ng, 担i khi c嘆n n坦i F ph畛 G (hay G ph畛 F).
  • 127. Ph畛 t畛i thi畛u (2/4) Ph畛 t畛i thi畛u: G畛i F l t畛i thi畛u n畉u M畛i v畉 ph畉i c畛a 1 PTH F ch畛 c坦 1 thu畛c t鱈nh
  • 128. Kh担ng t畛n t畉i 1 PTH X -> A thu畛c F, m: F + = (F - {X -> A} ) + Kh担ng t畛n t畉i 1 PTH X -> A thu畛c F, v 1 t畉p con Z c畛a X m: F + = (F - {X -> A} {Z -> A} ) +
  • 129. V鱈 d畛 - Ph畛 t畛i thi畛u (3/4) V鱈 d畛 1: Cho F = { AB -> C, C-> A, BC -> D, ACD -> B,D -> E, D -> G, BE -> C, CG -> B, CG -> D, CE -> A, CE -> G }
  • 130. T狸m Ph畛 t畛i thi畛u .
  • 131. Ta c坦: CE -> A l d動 th畛a (v狸 C -> A )
  • 132. CG -> B l d動 th畛a (v狸 CG -> D, C -> A v ACD -> B)
  • 133. ACD -> B thay b畉ng CD -> B v狸 C -> A Suy ra PTT = { AB -> C, C-> A, BC -> D, CD -> B, D -> E, D -> G, BE -> C, CG -> D, CE -> G }
  • 134. Ph畛 t畛i thi畛u (4/4) V鱈 d畛 2: Cho F = { AB -> C, C-> A, BC -> D, ACD ->B,D -> E, D -> G, BE -> C, CG -> B, CG -> D, CE -> A, CE -> G } T狸m Ph畛 t畛i thi畛u . Lo畉i b畛 CE -> A, CG -> D v ACD -> B s畉 c坦 t畉p t畛i thi畛u:
  • 135. Suy ra PTT = { AB -> C, C-> A, BC -> D, D -> E, D -> G, BE -> C, CG -> B, CE -> G }