Ơ Ở Ữ Ệ

ươ

Môn C  S  D  LI U Ch

ẩ  Chu n hóa  ng 6: ơ ở ữ ệ c  s  d  li u

N i dung

Ố Ả

1. PHÉP K T N I B O TOÀN THÔNG TIN

ơ ở

 C  S  Lý Thuy t ế

ố ả

ế

 Thu t Toán Ki m Tra Tính K t N i B o Toàn

ậ Thông Tin

2. PHÉP TÁCH B O TOÀN PH  THU C HÀM

ơ ở

 C  s   lý thuy t ế

 Thu t toán

3. CÁCH TI P C N PHÂN RÃ

Ợ Ể

4. CÁCH TI P C N T NG H P Đ  THI T K  CSDL

Đ  THI T K  CSDL

2

Ế Ố Ả

1. PHÉP K T N I B O TOÀN T.TIN

ơ ở

ế C  S  Lý Thuy t

ệ ượ

ộ ượ ồ

c đ  quan h  đ

c tách thành các  ụ ậ

ố ớ

ế

ế N u Q là m t l ượ ồ c đ  con  Q1,Q2,...,Qk và F là t p ph  thu c  l hàm, nói  r ng phép tách (phân rã ) là phép tách có  ệ b o toàn thông tin đ i v i F n u v i m i quan h  r  trên Q th a F:

Q =(cid:0) Q1(r) * (cid:0) Q2 (r)*  . . * (cid:0) Qk(r)

ượ ạ

ế ố ự

T c là r đ

nhiên c a

c t o nên t ế ủ

ứ  phép k t n i t các hình chi u c a nó trên Qi ( i =1..k)

3

Ế Ố Ả

1. PHÉP K T N I B O TOÀN TT (tt)

ậ ể ế ố ả

ượ ồ ệ ậ ụ c đ  quan h  Q(A1,A2,…An) và t p các ph : L

Thu t Toán Ki m Tra Tính K t N i B o Toàn Thông Tin  D  li u vào ữ ệ ộ thu c hàm F, phép tách   = {Q,Q,…,Qk}.

 D  li u ra ữ ệ

ả : Phép tách   có b o toàn thông tin hay không?

ả ế ậ ộ ứ ớ ộ ớ ộ (1)Thi

ứ ạ t l p b ng v i k + 1 dòng, n + 1 c t . C t j  ng v i thu c tính  c đ  quan h  Qi(i=1…k). T i ví trí

ớ ượ ồ ế ệ ề ộ ệ AJ(i=1...n), hàng i  ng v i l hàng i, c t j ta đi n ký hi u Aj n u AJ   Qi,

ặ ệ

ả i, sau đó tăng t lên m t

ạ ủ ả i c a b ng ký hi u bt  theo  ố ướ ư ừ  trên  xu ng d ề ủ ế ọ ộ i thao tác đi n bt nh  trên. Cho đ n khi m i ô c a

ệ ặ ầ Đ u tiên đ t t=1 và đ t vào các ô còn l ề ừ chi u t  trái sang ph i và t ặ ạ ị ơ đ n v  và l p l ề ả b ng đi u đã có ký hi u.

ộ ụ ừ ớ

ụ ả ử

ả ữ ữ ế ấ ộ s  xét (X   Y)   F, chúng ta tìm nh ng hàng  t c  các thu c tính  c a X, n u th y nh ng hàng

ủ ệ ủ ằ ở ấ  t t

ủ ộ ầ ượ t các ph  thu c hàm trong F, áp d ng cho b ng v a m i  (2)Xét l n l ậ ở  trên. Gi thành l p  ở ấ ả ố  t gi ng nhau  ẽ ư ậ nh  v y ta s  làm cho các ký hi u c a hai hàng này b ng nhau  ả c  các thu c tính c a Y.

4

Ế Ố Ả

1. PHÉP K T N I B O TOÀN TT (tt)

ế ố ả ể ậ Thu t Toán Ki m Tra Tính K t N i B o Toàn Thông Tin (tt)

ệ ằ ặ ườ ợ Khi làm cho 2 ký hi u này b ng nhau, ta g p 3 tr ng h p sau đây:

 n u m t trong hai ký hi u là AJ thì cho ký hi u kia tr  thành AJ,

ế ệ ệ ộ ở

 n u hai ký hi u là bk ho c bl thì có th  cho chúng tr  thành bt ho c

ệ ể ặ ặ ở

ớ ế bt (v i t=min (k,l)),

ữ ỉ ố ủ nguyên (lúc đó ch  s  j c a các ký

 n u c  hai ký hi u là aj thì gi ế ả ả ệ hi u này ph i gi ng nhau)

ệ ố

ằ ướ ụ ộ Chú ý r ng b c này có th  đ

i (cho các ph  thu c hàm) cho  ế ở

ể ượ ặ ạ ụ ấ ả c l p l ượ ữ c n a (nghĩa là cho đ n khi nào  ụ ả ộ t c  các ph  thu c hàm trong F mà b ng không

ệ ổ ế đ n khi không còn áp d ng đ ộ ầ m t l n duy t qua t ự có s  thay đ i nào.

ả ế ấ ả ộ

ả ế ậ ế ả

ấ aj (i=1..n) thì k t lu n đó là phép tách b o toàn thông tin, ng thì là phép tách m t mát thông tin. ứ (3)Xét b ng k t qu , n u th y trong b ng này có m t hàng ch a toàn  ượ ạ i  c l 5

Ế Ố Ả

1. PHÉP K T N I B O TOÀN TT (tt)

 Ví d :ụ

6

ậ ộ ượ ồ ụ ệ c đ  quan h , và t p ph

ộ ộ

(cid:0) ậ ế ủ ụ Y (cid:0)

ụ ớ ụ t  t c  các

ụ ộ

2. PHÉP TÁCH B O TOÀN PTH ế ơ ở C  s   lý thuy t ủ  Cho phân rã p = {Q1,Q2,…Qk} c a m t l ộ ậ thu c hàm F. Hình chi u c a F trên m t t p các thu c tính Z ký   F+ sao cho XY (cid:0) hi u  ệ (cid:0) Z(Q) là t p các ph  thu c hàm X  ộ   ợ ủ ấ ậ ế ộ ả Z . Ta nói phân rã p b o toàn t p ph  thu c hàm F n u h p c a t ượ ấ ả ộ ả c t i(F) v i i=1..k  suy ra đ c  các ph  thu c hàm trong  Q ph  thu c hàm trong F. ậ

ụ ả ộ

ế ễ ế

ủ ể

ể ấ ằ ỏ ả ế ệ ộ

ứ ặ ớ

ố ể ể ệ ả ậ ỗ i s  ẽ ạ ằ i r ng các ràng

 Lý do p c n b o toàn t p F đó là vì các ph  thu c hàm trong F  có  ầ ệ ẹ ể ượ c xem là các ràng bu c toàn v n cho quan h  Q. N u các  th  đ ể ượ ộ ụ c F  thì khi bi u di n Q qua  ph  thu c hình chi u không suy ra đ ễ ị ệ p , chúng ta có th  th y r ng giá tr  hi n hành c a các Qi bi u di n  ấ m t quan h  Q không th a F, ngay c  n u p là phép tách không m t  ỗ thông tin  ng v i F. Khi đó m i thao tác c p nh t trên m i R ộ ự ầ c n ph i th c hi n m t phép n i đ  ki m tra l bu c không b  vi ph m.

ạ ị

 D  li u vào: M t phân rã p={Q

ụ ộ ộ ữ ệ ộ ậ 1,Q2,…Qk} và m t t p các ph  thu c

ộ hàm F(f1,f2,…,fm} 7 ữ ệ ụ ả ộ  D  li u ra: phép tách p có b o toàn ph  thu c hàm hay không ?

Ả 2. PHÉP TÁCH B O TOÀN PTH (tt)

Phép tách b o toàn ph  thu c hàm

ể ễ ả

ỉ ầ

ế

ồ ợ ủ

ộ ế

ươ

ậ ng đ

 V  nguyên t c,chúng ta có th  d  dàng ki m tra xem m t  ộ phân rã p = {Q1,Q2,…Qk} có b o toàn t p ph  thu c F  ấ t  hay không. Chúng ta ch  c n tính F+ r i chi u nó trên t ầ ụ ả c  các thành ph n Qi. Sau đó l y h p c a các t p ph   ươ ể ả ồ thu c k t qu  r i ki m ra xem t p này có t ng  v i F hay không ?

 Tuy nhiên trong th c t

ố ượ

ự ế ng các ph  thu c ch a trong nó th

ụ ướ ủ

ư

ả ầ ỷ ệ ớ

l

ng pháp này có chi phí th i gian t

ướ ủ

ệ ế ứ , tính F+ là m t công vi c h t s c  ườ ứ ng  khó khăn vì s  l ể là hàm mũ theo kích th c c a F. Nh ng có m t cách đ   ể ki m tra tính b o toàn này mà không c n ph i tính F+;   ươ ph  v i hàm đa  ứ th c theo kích th

c c a F.

8

Ả 2. PHÉP TÁCH B O TOÀN PTH (tt)

ậ Thu t toán

 Chúng ta g i G là h p c a các  Q

ọ ợ ủ ươ ng

i(F), đ  tính xem G có t ụ ng v i F hay không chúng ta xét m i  ph  thu c hàm  X   Y   F  c tính  ng v i G) có ch a Y hay không ?

ộ ứ ớ ị ượ ứ

ụ ộ ể ươ ỗ đ ớ và xác đ nh xem X+ (đ ộ ế n u có thì ph  thu c hàm này thu c G.

ậ ứ ớ ộ

ị ụ ộ ậ ằ

ộ ượ ấ ứ ớ ố

ộ ữ ứ

ở ầ ớ

ằ ự ệ ỗ t th c hi n các phép toán Qi v i m i i, n u t

ộ ầ ặ ậ ộ

 Chúng ta đ nh nghĩa phép toán Q trên t p các thu c tính Z  ng v i  ế m t t p ph  thu c F là phép th  Z b ng Z   ((Z   Q)+   Q) trong đó  ớ bao đóng luôn đ c l y  ng v i F, phép toán này n i Z v i nh ng  thu c tính A sao cho (Z   Q)    A     QF. Do đó chúng ta tính X+  ng  ầ ớ v i G b ng cách kh i đ u v i X,  qua danh sách các Qi, chúng ta l n  ớ ượ i m t l n l p nào  l ộ đó không có m t phép toán Qi nào làm thay đ i các t p thu c tính  hi n có thì chúng ta đã th c hi n xong; t p k t  qu  là X+

ế ạ ổ ế ự ệ ệ ậ ả

ế ộ ậ ả ủ ự ủ ệ

 N u Y là m t t p con c a Z, là k t qu  c a th c hi n các phép trên  ế ộ thì X   Y   G+ , n u m i ph  thu c hàm trong F đ u thu c G thì là  đúng, ng

ụ ề ộ

ỗ ế i là sai. ượ ạ c l

ể ả ư ộ *Chú ý: M t phân rã có th  b o toàn thông tin nh ng không ch c b o ắ ả 9

ụ ậ ộ toàn t p ph  thu c hàm F và ng ượ ạ c l i.

3. TI P C N PHÂN RÃ

Đ  TK CSDL

ể ệ

t đ

ơ ở ữ ệ ệ ấ

 Theo quan đi m c a cách ti p c n này, các quan h  con c a c u  ủ ế ậ ủ ấ ữ ầ ẽ ầ ượ ượ c phân rã thành nh ng  trúc c  d  d  li u ban đ u s  l n l ả ạ ơ ớ ố ế ộ quan h  con v i s  thu c tính ít h n, sao cho c u trúc k t qu  đ t  ẩ ộ ấ ở ứ ề  m c cao nh t. Quá trình phân rã là m t quá  các tiêu chu n đ  ra  ượ ặ ạ ố ớ trình đ c đánh giá là còn  i đ i v i các quan h  con nào đ c l p l ể có th  phân rã.

ượ ệ

ƯỢ Ồ *PHÂN RàM T L C Đ  Q THÀNH CÁC L C Đ  CON

Ạ Ộ ƯỢ Ồ Ả ẩ D NG chu n BCK VA B O TOÀN THÔNG TIN

ơ ở ế C  S  Lý Thuy t

ổ ề B  đ  1:

 Gi

ả ử ộ ọ s  Q là m t l c đ  quan h  v i t p ph  thu c hàm F, g i

ụ ố ớ

ệ ớ ậ ủ ượ ồ ấ ứ ố ượ ế ộ ượ ồ ộ c phân rã thành hai l

ủ ố

ấ ấ ứ ớ p={Q1,Q2,…,Qk } là m t phân rã c a Q có n i không m t  ng v i  c đ  con (S1.S2) có n i không  Q. n u Q1 đ m t, thì phân rã c a Q thành (S1,S2,Q2,…,Qk) cũng có n i không  m t  ng v i F. 10

3. TI P C N PHÂN RÃ

…(tt)

ổ ề B  đ  2:

ỗ ượ ồ

ề ở ạ

 a)M i l

c đ  có hai thu c tính đ u

d ng  chu n BCK

 b)N u Q không đ t d ng chu n BCK thì chúng ta có th   ể

ượ

ạ ạ ộ

c các thu c tính A và B trong Q sao cho (Q ­ AB)+   ụ

ườ

ng

ư

ế tìm đ  A. và ph  thu c (Q ­ AB)+   B có th  đúng trong tr ề h p này (nh ng đó là đi u không quan tr ng).

ề ả

 t

ư

ừ ể  đây ta có th  phát bi u thêm m nh đ  đ o cho m nh  ề đ  này nh  sau:

ế

 b')N u trong Q không tìm đ

ượ c các thu c tính A và B sao  ộ cho (Q ­ AB)+   A. và ph  thu c (Q ­ AB)+   B  thì Q đã  ẩ đ t chu n BCK

11

3. TI P C N PHÂN RÃ

…(tt)

ậ Thu t Toán 1

 Input: Cho l

ượ ồ ụ ệ ậ ổ ộ c đ  quan h  ph  quát Q  và t p ph  thu c hàm F

 Output:  L

ượ ồ ươ ứ ạ ạ ẩ c đ  CSDL t ng  ng đ t d ng chu n BCK.

ủ ụ ệ ự ư ể ệ Đ  phân rã [Q,F] ta th c hi n theo th  t c đ  qui nh  sau:

ủ ụ Th  t c phân rã(Q,F)

ỏ ổ ề ứ ế ặ If N u Không tìm ra c p A,B trong Q th a b  đ  th  2 trên thì Exit

Y = Q

ỏ ổ ề WHILE TimAB(Y,F) {Tìm A,B th a b  đ  trên}

{Y=Y­B}

Q = Q (cid:0)  A

ọ ệ {g i đ  qui}

Phân rã 2(Q,F) 12

3. TI P C N PHÂN RÃ

…(tt)

Thu t Toán 1 (tt)

ươ

Ch

ng trình chính c a thu t toán Phân rã

Do

ủ ụ

{ G i th  t c Phân rã 2 (Q,F)

ọ p = p (cid:0) Q (cid:0)

Y  Q (cid:0)  A

}

While Not TimAB(Q,F)

p =  p (cid:0)

ế

ươ

ng trình chính

K t thúc ch

13

3. TI P C N PHÂN RÃ

…(tt)

Thu t Toán 2

phân rã(Q,F)

Xét f X   Y   F là ph  thu c hàm làm cho [Q,F]  vi ph m

d ng chu n BC

{

Tách Q thành Q1 và Q2 theo quy t c sau:

Q1=Q[XY];

F1 = X   Y

ậ ạ

i F=[F ­ [các ph  thu c hàm

ậ Q2=Q[Q+ ­ Y] và c p nh t l ế có liên quan đ n Y]

ế ụ

ế

Phân rã (Q2,F) // công vi c này ti p t c cho đ n khi XY    Q2+

}

14

…(tt) Ạ ƯỢ Ồ C Đ  CON D NG 3NF CÓ

3. TI P C N PHÂN Rà *PHÂN RàM T L C Đ  Q THÀNH CÁC L Ụ

Ộ ƯỢ Ồ B O TOÀN PH  THU C

ộ ượ ồ

Không ph i lúc nào cũng có th  phân rã m t l

ượ

c đ  quan h  thành d ng BC mà v n  ể

ượ

ể ộ

ẫ ộ c m t

c các ph  thu c hàm, tuy nhiên chúng ta luôn có th  tìm đ ả

ẩ ấ

bào toàn đ ộ phân rã luôn b o toàn ph  thu c hàm thành d ng chu n c p 3

ả ử ằ

ở ạ

ậ Thu t toán:  D  li u vào: ữ ệ  L

ụ c đ  quan h  Q và t p ph  thu c hàm F, chúng ta gi

s  r ng F đã

d ng

ượ ồ ủ ự ể

ộ ấ

ậ ph  c c ti u mà v n không làm m t tính t ng quát.

ộ ủ

ỗ ượ ồ

ệ c đ  quan h  con đ u đ t

ượ ồ

ế ủ

 D  li u ra: ữ ệ  M t phân rã b o toàn ph  thu c c a Q sao cho m i l ụ c đ  đó.

chu n 3NF  ng v i hình chi u c a F trên l

 ­N u có nh ng thu c tính c a R không n m trong m t ph  thu c nào c a F ­ dù

ế

ế ấ ả

ế

ộ ủ ế ở ế  v  ph i hay v  trái c a F thì ta lo i chúng ra kh i Q.  ­N u có m t ph  thu c hàm nào c a F mà liên quan đ n t

ộ t c  các thu c tính c a

ế

ứ ỗ

ộ ượ ồ ầ

c đ  c n tìm

Q thì k t qu  ra chính là Q ( Q không th  phân rã)  ­C  m i ph  thu c hàm X   A   F thì XA là m t l

15

3. TI P C N PHÂN RÃ

…(tt)

Ạ C Đ  Q THÀNH CÁC L C Đ  CON D NG

 *PHÂN RàL Ẩ CHU N 3 V A B O TOÀN  PH  THU C V A B O TOÀN  THÔNG TIN

ƯỢ Ồ Ộ Ừ Ả ƯỢ Ồ Ừ Ả Ụ

ể ượ ồ ộ ượ ồ ạ ạ Có th  phân rã m t l

ố c đ  thành các l ấ ể

ả ụ ệ

ả ấ

ươ ượ ả ấ ơ ng pháp r t đ n gi n c đi u đó thông qua ph

ẩ c đ  con đ t  d ng chu n  ộ ượ c  BCK có n i không m t, và chúng ta cũng có th  phân rã m t l ể ộ ồ đ  thành 3NF b o toàn ph  thu c hàm. Li u chúng ta có th  tìm  ộ ậ ượ c m t phân rã thành 3NF  mà có c  hai đ c tính là bào toàn t p  đ ế ố ộ ụ ph  thu c và có tính k t n i không m t thông tin hay không ? Chúng  ề ể ta có th  làm đ ả ệ (mà hi u qu  ) sau đây:

ộ ủ ớ ạ Tìm m t phân rã p c a Q có d ng 3NF nh  v a m i phân tích

ư ừ ộ ủ trên  ấ ả t c

ộ ượ ồ ủ ệ ề ế ố ấ ả ụ c đ  quan h  đ u có tính k t n i không m t và b o toàn ph

ế ố ỉ

ở ,và tìm m t khóa X c a Q, thì X   p là m t phân rã c a Q mà t các l ộ thu c, phân rã cu i cùng là X   p, nghĩa là X ch  thêm vào p n u X  ư ch a có trong p.

16

…(tt)

3. TI P C N PHÂN RÃ ậ

Đánh giá các thu t toán phân rã  Thu t toán không quan tâm v  ch t l ậ

ầ ủ

ậ ộ ữ ụ

ắ ầ

ề ấ ượ ụ ng c a các ph   ầ thu c hàm trong t p F ban đ u, nghĩa là có hay không  nh ng ph  thu c hàm không đ y đ , có hay không nh ng  ph  thu c hàm b c c u.

ệ ế

ấ ả

ả ề

ứ ự

ượ

 T t c  các quan h  k t qu  đ u đ t chu n BC  Tùy theo th  t

ố ượ

ụ ế

c xem xét,  trong  ng

ộ ả ể

các ph  thu c hàm đ ể quá trình phân rã, mà k t qu  có th  khác nhau. S  l các quan h  con cũng có th  khác nhau.

ế

 Thu t toán không quan tâm đ n vi c xác đ nh khóa c a

các quan h  con.

ế

 K t  qu  có th  ch a m t quan h  con mà ng  nghĩa c a  ứ

ả ể

ệ ụ

ể ứ nó có th  không có ích cho  ng d ng

17

Ậ Ổ

Ợ Ể

4. TI P C N T NG H P Đ  TK CSDL

ườ ỏ ả t k  ph i phác i thi

 Cách ti p c n t ng h p không đòi h i ng ỉ ầ

ế ậ ổ ộ ấ ế ế ị

ả ộ ầ ượ ắ

ợ ữ ệ c quan tâm  và danh sách các quy t c qu n lý   ộ ạ ướ ạ ườ ứ ả ụ ượ ụ ễ i d ng các ph  thu c ng  ng d ng đ c di n đ t d

th o m t c u trúc d  li u ban đâu, ch  c n xác đ nh danh sách các  thu c tính c n đ ủ c a môi tr hàm.

 M c tiêu c a cách ti p c n này là các quan h  con t ế ậ

ủ ụ ệ ố ạ ể i thi u đ t

ụ ẩ ả ả ộ ẩ chu n 3 và b o toàn tiêu chu n b o toàn ph  thu c hàm.

ệ ộ ố

ề ệ ượ ồ

ượ ổ ệ c đ  quan h  ph  quát  ượ ồ c đ  CSDL C c phân rã thành l

ồ ỉ

(cid:0) ủ ệ ộ M t s  khái ni m liên quan  Đi u ki n b o toàn thông tin: Cho l ả ả ử  s    đ ả i m t quan h  Qj Co( Q,F), gi ={}. C là b o toàn thông tin đ i v i Co  khi và ch  khi t n  ạ t ố ớ ủ   C sao cho khóa c a Qj là khóa c a Q.

 Đi u ki n b o toàn ph  thu c hàm

ụ ệ ề ả ộ

ỏ ồ ụ ế ả ờ Co  và C đ ộ c g i là b o toàn ph  thu c hàm n u th a đ ng th i:

QI )+ = Q+ 1.

18 ượ ọ ((cid:0) ((cid:0) FI )+ = F+ 2.

Ậ Ổ

4. TI P C N T NG H P … (tt)

ổ ượ ồ ậ Thu t toán  Input: Cho l c đ  CSDL

ươ ợ C ={} b ng ph ệ ượ ồ c đ  quan h  ph  quát Co( Q,F), tìm l ổ ằ ng pháp t ng h p.

 Output: Xu t các C ={}

ướ B c 0:

 Tách v  ph i c a các ph  thu c hàm sao cho các ph  thu c hàm ch   ỉ ư

ụ ế ộ

ả ủ ộ ở ế ả ộ ụ ủ ố ậ  v  ph i (nh  thu t toán tìm ph  t có m t thu c tính ộ ể i thi u)

ụ ậ ộ ộ F bi n f thành m t ph  thu c hàm đ y đ   nh  trong thu t ướ B   (cid:0) c 1:  f (cid:0)

ế ủ ố ư ể ầ ủ ủ ố ậ i thi u(nh  thu t toán tìm ph  t ư ể i thi u) toán  tìm ph  t

ướ B c 2:

ụ ượ ủ ố ộ c m t ph  t i

 Lo i b  t ạ ỏ ấ ả ậ ư ể thi u(nh  thu t toán tìm ph  t

ộ t c  các ph  thu c hàm d  thùa, ta đ ủ ố ư ể i thi u)

 G i t p ph  t

ọ ậ ụ ố ể i thi u thu đ ượ ủ ướ c c a b c này là PTT 19

Ậ Ổ

4. TI P C N T NG H P … (tt)

ậ ướ B c 3: Thu t toán (tt)

ữ ụ ộ

ộ 1/ Gom nh ng ph  thu c hàm thu c PTT thành nh ng nhóm Ni có  ề ỉ ố ủ ữ ế ủ ả

ữ ụ ộ ộ cùng v   trái.(Ni là m ng 2 chi u, n i dung c a nhóm là ch  s  c a  nh ng ph  thu c hàm có trong PTT)

ế ộ

(cid:0) ụ Thu t toán gom nhóm nh ng ph  thu c hàm  có cùng v  trái:  F (i (cid:0) ậ   f: Xi (cid:0) Yi, g : Xj (cid:0) ữ  Yj (cid:0) j)

ế {N u Xi   Xj

ứ ủ ư Đ a  g vào cùng nhóm c a nhóm ch a f

ạ Lo i nhóm g

}

ủ ế ệ ạ ấ ụ 2/Tìm các siêu khóa đ i di n cho m i nhóm Ni: L y v  trái c a ph

ứ ấ ủ ủ

ộ ọ ề ộ ỗ ứ thu c hàm th  nh t c a nhóm i (t c là N(1,i ) làm siêu khóa c a Ni  ả và g i đó là Ki (Ki cũng là m t m ng 2 chi u) 20

Ậ Ổ

4. TI P C N T NG H P … (tt)

ướ

B

c 4:

ươ

ậ ậ

ng đ

ươ

ươ

ng vào nhóm FI và thành l p t p  ng đ

ng:

Ni,Nj

j )  có các siêu khóa đ i di n t

ng  ng là Ki , Kj

(cid:0)

ế

(cid:0)

ậ Thu t toán (tt)   (cid:0) 1. H (cid:0) ệ ươ ạ 2. Gom các nhóm có siêu khóa đ i di n t ộ ụ ph  thu c hàm H ch a các ph  thu c hàm là các siêu khóa t (i (cid:0) ệ ươ ứ {

N u KI

Kj { Đ a nhóm Nj vào trong nhóm Ni  {Ki (cid:0)

Kj ; Kj (cid:0)

Ki}

ư H = H  (cid:0) ạ ỏ Lo i b  nhóm Nj

}}

ạ ỏ

3. Lo i b  kh i PTT nh ng ph  thu c hàm  thu c H+ đ ng th i lo i b  kh i nhóm

(cid:0)

ạ ỏ ữ ữ Fi nh ng ph  thu c hàm có trong t p H .  A (cid:0)  f: X (cid:0) ế {  N u  X

PTT = PTT ­  {f}

PTT  A (cid:0)

H  {

(cid:0)

N u f ế

Fi thì Fi=FI  (cid:0)  {f}

}}

Đ t PTT1  = PTT

(cid:0)

21

Ậ Ổ

4. TI P C N T NG H P … (tt)

ậ ướ B c 5: Thu t toán (tt)

(cid:0) ụ ậ ộ 1/ Tìm t p ph  thu c hàm PTT2 sao cho: (PTT2 H)+ (cid:0) (PTT1 (cid:0) H)

(cid:0) +  f (cid:0) PTT1

ế { N u {{PTT1 (cid:0)  f} (cid:0) H }+ = {PTT1 (cid:0) H }+ thì

{ PTT1 = PTT1 ­ f

(cid:0) N u f ế Fi thì FI = FI (cid:0)  {f}}}

PTT2 = PTT1

I t

ộ ươ ứ 2 Đ a các ph  thu c hàm thu c H  vào các nhóm F ế ng  ng(có v

ư ộ ớ ụ ươ ứ ệ ủ ạ ng  ng v i siêu khóa đ i di n c a nhóm nào thì đ a vào

(cid:0) H

22 (cid:0) ệ ạ { ư trái t nhóm đó)  Y (cid:0)  f: X (cid:0)    nhóm FI có siêu khóa đ i di n là Ki

(cid:0) ế ư { N u X Ki (cid:0) PTT thì Đ a f vào nhóm Fi } }

Ậ Ổ

4. TI P C N T NG H P … (tt)

ậ Thu t toán (tt)

ướ B c 6:

 Thành l p l

ậ ượ ồ c đ  CSDL C  = {}

 V i Fi là các ph  thu c hàm có trong nhóm FI  ộ

ụ ớ

 và Qi là các thu c tính có tham gia vào các ph  thu c hàm trong FI

ụ ộ ộ

ướ B c 7:

 Ki m tra quá trình t ng h p nh  trên có b o toàn thông tin không ?  ư

ể ả ợ

ụ ả ổ ộ có b o toàn ph  thu c hàm hay không ?

 Tìm t

ấ ả ủ ế ạ ổ t c  các khóa c a quan h  ph  quát, n u có siêu khóa đ i

ệ ủ ệ ệ ứ ấ ỳ ộ

ợ ổ

ượ ế ệ ầ ộ ộ

ả ớ ậ ỗ ượ ớ ừ ộ ổ di n cho nhóm nào đó ch a b t k  m t khóa nào c a quan h  ph   ụ ả quát thì là phép t ng h p trên là b o toàn thông tin và b o toàn ph   thu c hàm, n u không thì c n thêm m t quan h  Q* m i vào l c  ồ đ  CSDL v a tìm đ c v i Q* là m t khóa, F* là t p r ng.

23

Ậ Ổ

4. TI P C N T NG H P … (tt)

Thu t toán (tt)

ướ

Thu t toán cho b

c 7  là:

SI , Kj (Si là siêu khóa c a m t nhóm, Kj là m t khóa c a quan h  ph  quát

ế

{ N u Kj    Si thì

{

B o toàn thông tin và b o toàn ph  thu c hàm =đúng

Break; }

}

ế

N u b o toàn thông tin và b o toàn ph  thu c hàm thì

ả B o toàn thông tin và b o toàn ph  thu c hàm

Ng

ượ ạ c l

i

"Không b o toàn thông tin ho c không bào toàn ph  thu c hàm, c n thêm m t  ệ quan h  sau:"

Q(Q*,F*)

Q* ={M t khóa c a quan h  ph  quát }

C  =  C (cid:0) V i ớ F* = (cid:0)

24

Ậ Ổ

4. TI P C N T NG H P … (tt)

ụ Ví d : Cho l

c đ  quan h  Q(ABCDGH) vào t p PTH

F={

A, 2.AG (cid:0)

B,

A,

C,

H}

ượ ồ 1.GH (cid:0) 3.CD (cid:0) G, 4.GH (cid:0)  D, 5.C (cid:0) 6.BH (cid:0) 7.CD (cid:0) ả ế ướ

ế

K t qu  đ n b

c 2: PTT(F) = F

ế

B

c 3

ướ : Gom nhóm cùng v  trái

Nhóm 1={1,4}; Nhóm 2={2}; Nhóm 3={3,7}; Nhóm 4={5}   25 Nhóm 5={6}

Ậ Ổ

4. TI P C N T NG H P … (tt)

ươ

ươ

Gom các nhóm có khóa t

ng đ

ng

ướ c 4:  B H ={GH (cid:0)

CD,CD (cid:0)

GH}

Nhóm 1={1,4,3,7}; Nhóm 2={2}; Nhóm 4={5};

Nhóm 5={6}

Tìm PTT1: Lo i kh i nhóm Fi nh ng ph  thu c hàm

còn trong H

Nhóm 1={1}; Nhóm 2={2}; Nhóm 4={5}; Nhóm

5={6}

A,

AG (cid:0)

B,

C (cid:0)

A,

PTT1={ GH (cid:0) BH (cid:0)

C}

26

Ậ Ổ

4. TI P C N T NG H P … (tt)

B

ụ ỏ Tìm PTT2 và lo i kh i nhóm Fi nh ng ph

c 5:  ộ

ướ thu c hàm có trong H

Nhóm 2={2}; Nhóm 4={5}; Nhóm 5={6} PTT2={AG (cid:0)

A; BH (cid:0)

B; C (cid:0)

C}

ư

Đ a H vào các nhóm:

Nhóm 1={1,4,3,7}  Nhóm 2={2}

Nhóm 4={5}  A, 4.GH (cid:0)

Nhóm 5={6}  D, 3.CD (cid:0) G, 7.CD (cid:0)

F1={1.GH (cid:0)

B}; F3={5.C (cid:0)

A}; F4={6.BH (cid:0)

H} ;   C} 27

F2={2.AG (cid:0)

Ậ Ổ

4. TI P C N T NG H P … (tt)

ướ

B

c 6:

C={,

,

,

}

ả ổ

B

c 7:

K t qu  t ng h p b o toàn thông tin và b o  ụ

ế ướ toàn ph  thu c hàm

28