Một số kết quả đó biết

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu (Trang 95)

3.2. Vấn đề rỳt gọn bài toỏn xỏc định khúa của lược đồ quan hệ

3.2.1. Một số kết quả đó biết

Trong mục này, một số kết quả trong [67] và [52] được nhắc lại để tiện so sỏnh. Lưu ý rằng thuật ngữ khúa dựng ở đõy được hiểu theo nghĩa khúa tối tiểu.

là tập hữu hạn cỏc thuộc tớnh và F = {L1 R1,...,Lm  Rm | Li, Ri  , i = 1,...,m} là tập hữu hạn cỏc phụ thuộc hàm đỳng trờn S. Kớ hiệu 1 m i i L L   , 1 m i i R R   , S là tập tất cả cỏc khúa của S, S = {Kj | Kj là khúa của S}, j S j K G K  

  là giao của tất cả cỏc khúa của S,

j S j K H K  

  là tập tất cả cỏc thuộc tớnh khúa của S, H =  \ H là tập tất cả

cỏc thuộc tớnh khụng khúa của S.

Trong [67] đó chứng minh cỏc kết quả sau:

Định lý 3.2 (Định lý 1 trong [67]). Cho S = <, F> là một lược đồ quan hệ và X là một khúa của S. Khi đú:

 \ R  X  ( \ R)  (L  R) (1)

Định lý 3.3 (Định lý 4 trong [67]). Cho S = <, F> là một lược đồ quan hệ.

Khi đú

G =  \ R

Mệnh đề 3.1 (Trong chứng minh của Định lý 1 trong [67]). Ta cú R \ L  H ,

cú nghĩa cỏc thuộc tớnh trong R \ L đều là cỏc thuộc tớnh khụng khúa.

Từ (1), ta dễ dàng suy ra:

Nhận xột 3.1. ( \ R)  (L  R) là siờu khúa chứa tất cả cỏc khúa của S. Lưu

ý là trong phõn tớch  = ( \ R)  (L  R)  (R \ L), chỉ tập L  R cú khả năng chứa cả hai loại thuộc tớnh là thuộc tớnh khúa và thuộc tớnh khụng khúa.

Thờm vào đú, nếu cú R \ L ≠  thỡ siờu khúa ( \ R)  (L  R)   và việc

tỡm tập tất cỏ cỏc khúa chứa trong một siờu khúa nhỏ hơn thực sự  sẽ ớt tốn kộm hơn.

Nhận xột 3.2. Cỏc khúa Kj Skhụng chứa nhau và cú cấu trỳc chung là

j

K = ( \ R)  Zj với Zj L  R

Điều này tạo thuận lợi cho việc xỏc định cỏc khúa của S.

\ R)  [(L  R) \ Z] sẽ là một siờu khúa chứa tất cả cỏc khúa của S và siờu khúa này rừ ràng chứa thực sự trong siờu khúa ( \ R)  (L  R).

Khi đú

( \ R)  Kj ( \ R)  [(L  R) \ Z], Kj S

sẽ là một dạng cải tiến của điều kiện cần (1).

Trong [22, 52], cú đưa ra định nghĩa và định lý sau (cỏc ký hiệu được sửa lại cho phự hợp với hệ thống ký hiệu đó dựng ở trờn):

Định nghĩa 3.1 (Định nghĩa 3.3 trong [22]). Cho S = <, F> là một lược đồ quan hệ. Khi đú lừi (core) và thõn (body) của S được định nghĩa như sau:

core(, F) =  \ ( i i) i L R F R              body(, F) = ( i i) i L R F L               [ \ core(, F)+]

Bằng những tớnh toỏn đơn giản, ta nhận được:

core(, F) =  \ R và body(, F) = L  [ \ ( \ R)+]

Vớ dụ 3.6 (Vớ dụ 3.1 trong [22]). Cho S = <, F> là một lược đồ quan hệ,

trong đú tập thuộc tớnh  = {a, b, c, d, e, f, g, h} và tập phụ thuộc hàm F =

{ab  c, a  g, g  c, b  h, bh  d, c  d, e  f, f  e}.

Ta cú: L = abcefgh, R = cdefgh,  \ R = ab, ( \ R)+ = abcdgh, L  [  \ ( \ R)+] = ef. Từ đú core(, F) = ab và body(, F) = ef.

Định lý 3.4 (Định lý 3.4 trong [22, 52]). Cho S = <, F> là một lược đồ quan hệ và K là một khúa (tối tiểu) của S. Khi đú, ta cú:

core  K  (core  body), cú nghĩa

 \ R  K  ( \ R)  [L  [ \ ( \ R)+] ] (2)

Rừ ràng (2) là phỏt biểu của một điều kiện cần để K là khúa của S. Chứng

minh của (2) được cho trong [52] cựng với một số vớ dụ minh họa.

3.2.2. Một dạng cải tiến cho điều kiện cần (1) đó được cụng bố năm 1985

Bổ đề 3.2 (Bổ đề 3 trong [67]). Cho S = <, F> là một lược đồ quan hệ và X là một khúa của S. Khi đú

X  R  (L \ R)+ = 

Bổ đề 3.2 dễ dàng được mở rộng thành bổ đề 3.3 dưới đõy:

Bổ đề 3.3. Cho S = <, F> là một lược đồ quan hệ. Khi đú K  R  ( \ R)+ = , KS,

cú nghĩa R  ( \ R)+  H

Chứng minh. Giả sử ngược lại: KKSsao cho K  R  ( \ R)+ ≠ , cú nghĩa  A   sao cho A K, A R và theo định nghĩa bao đúng,  \ R  A.

Vỡ A R nờn A   \ R. Từ điều kiện (1) cú  \ R  K. Kết hợp với A   \

R, suy ra  \ R  K \ A. Từ đú cú K \ A   \ R. Mặt khỏc  \ R  A. Kết

quả là K \ A  A với A K, chứng tỏ K khụng là khúa của S. Túm lại ta đó chứng minh được

K  [R  ( \ R)+] = , KKS,

cú nghĩa R  ( \ R)+  H

Từ nhận xột 3.3, định lý sau đõy là hiển nhiờn.

Định lý 3.5. Cho S = <, F> là một lược đồ quan hệ. Khi đú

 \ R  K  ( \ R)  [(L  R) \ (R  ( \ R)+ )], KS (3) Ta xem (3) như một dạng cải tiến của (1).

Sau đõy là một vớ dụ trong đú (L  R)  (R  ( \ R)+ ) ≠ , cú nghĩa ( \ R)  [(L  R) \ (R  ( \ R)+) ]  ( \ R)  (L  R).

Vớ dụ 3.7. Xột lược đồ quan hệ S = <, F> trong đú  = {a, b, c, d, e, f, g, h, i} và F = {a  b, b  c, d  e, h  i, i  h}.

Với lược đồ quan hệ này, ta cú: L = abdhi, R = bcehi, L  R = bhi,  \ R = adfg; ( \ R)+ = abcdefg, R  ( \ R)+ = bce. Dễ thấy rằng S = {adfgh, adfgi}. Từ đú H = {a, d, f, g, h, i} và H = {b, c, e}.

Hơn nữa, ta cũn cú (L  R)  [R  ( \ R)+ ] = b ≠ . Và như vậy với lược đồ quan hệ S được cho trong vớ dụ 3.7, ta cú

 \ R  K  ( \ R)  [(L  R) \ (R  ( \ R)+ )], K S,

cụ thể là adfg  K  adfghi với K {adfgh, adfgi}. 3.2.3. So sỏnh cỏc điều kiện cần

Để dễ so sỏnh, ta phỏt biểu lại hai điều kiện cần (2) và (3).

Cho lược đồ quan hệ S = <, F>. Khi đú

 \ R  K  ( \ R)  [L  [ \ ( \ R)+ ]], KS (2)  \ R  K  ( \ R)  [(L  R) \ (R  ( \ R)+ )], KS (3)

Nhận xột 3.4. Dễ thấy rằng L  [ \ ( \ R)+ ] = L \ ( \ R)+. Thật vậy, giả sử

x  L  [ \ ( \ R)+ ]  x  L, x   \ ( \ R)+  x  L, x  ( \ R)+  x L \ ( \ R)+. Ngược lại, giả sử x L \ ( \ R)+  x  L, x  ( \ R)+  x 

L, x   \ ( \ R)+  x  L  [ \ ( \ R)+ ].

Định nghĩa 3.2. Ta núi rằng điều kiện (2) tốt hơn điều kiện (3) nếu L \ ( \ R)+  (L  R) \ (R  ( \ R)+ ) và tồn tại một lược đồ quan hệ sao cho L \ ( \ R)+  (L  R) \ (R  ( \ R)+ ).

Hiểu theo nghĩa đú, ta thấy điều kiện (3) là dạng cải tiến của (1). Tương tự, ta cú định nghĩa khi nào thỡ (3) tốt hơn (2). Để so sỏnh (2) với (3) ta cú định lý sau:

Định lý 3.6. Hai điều kiện (2) và (3) chỉ là một và được diễn đạt bằng những

biểu thức khỏc nhau.

Chứng minh. Để chứng minh định lý 3.6, rừ ràng chỉ cần chứng minh L \ ( \ R)+ = (L  R) \ (R  ( \ R)+ )

Giả sử x là một thuộc tớnh bất kỳ thuộc L \ ( \ R)+.

 x  L \ ( \ R)+  (x  L) và x  ( \ R)+  (x  L), x  ( \ R) và x  (

\ R)+  (x  L), x  R và x  ( \ R)+  (x  L  R) và x  [R  ( \ R)+]  x  (L  R) \ [(R  ( \ R)+],

Bõy giờ ta chứng minh điều ngược lại:

 x  (L  R) \ [R  ( \ R)+ ]  (x  L), (x  R) và (x  [R  ( \ R)+])  (x  L), (x  R) và (x  ( \ R)+)  x  L \ ( \ R)+,

cú nghĩa (L  R) \ (R  ( \ R)+ )  L \ ( \ R)+

Vậy L \ ( \ R)+ = (L  R) \ (R  ( \ R)+ ). Định lý 3.6 được chứng minh. Để minh họa cho định lý 3.6, ta trở lại với vớ dụ 3.6 và 3.7.

Với vớ dụ 3.6,  = {a, b, c, d, e, f, g, h}, F = {ab  c, a  g, g  c, b  h,

bh  d, c  d, e  f, f  e}. Ta cú: L = abcefgh, R = cdefgh, L  R = cefgh,

 \ R = ab, ( \ R)+ = abcdgh, R  ( \ R)+ = cdgh. Từ đú L \ ( \ R)+ = ef và (L  R) \ (R  ( \ R)+ ) = ef.

Với vớ dụ 3.7,  = {a, b, c, d, e, f, g, h, i}, F = {a  b, b  c, d  e, h  i, i  h}. Ta cú: L = abdhi, R = bcehi, L  R = bhi,  \ R = adfg; ( \ R)+ ) =

abcdefg, R  ( \ R)+ = bce. Từ đú: L \ ( \ R)+ = hi và (L  R) \ (R  ( \ R)+ ) = hi.

Định lý 3.7 (Định lý 2 trong [68]). Cho S = <, F> là một lược đồ quan hệ và K là một khúa của S. Khi đú:

( \ R)  K  ( \ R)  [(L  R) \ ( \ R)+] (4) Dễ thấy rằng (4) là một dạng cải tiến của (1). Vớ dụ 3.8 sau đõy cho thấy

[(L  R) \ ( \ R)+]  (L  R)

Vớ dụ 3.8 (Vớ dụ trong [68]). Cho S = <, F> là một lược đồ quan hệ, trong

đú tập thuộc tớnh  = {a, b, c, g, h} và tập phụ thuộc hàm

F = {a  b, b  c, g  h, h g}.

Ta cú: L = abgh, R = bcgh,  \ R = a, ( \ R)+ = abc, (L  R) = bgh (L  R) \ ( \ R)+ = gh  (L  R)

Điều kiện (4) được cụng bố năm 1996, trong khi điều kiện (2) được

cụng bố năm 2011. Định lý sau chỉ rừ mối quan hệ giữa (2) và (4). Định lý 3.8. Điều kiện cần (2) thực sự là trựng với điều kiện cần (4).

Chứng minh. Từ nhận xột 3.4, để chứng minh (2) và (4) chỉ là một, ta sẽ chỉ ra rằng [(L  R) \ ( \ R)+] = [L \ ( \ R)+]. Thật vậy, rừ ràng ta cú (L  R)  L

nờn [(L  R) \ ( \ R)+]  [L \ ( \ R)+]. Ta chỉ cần chứng minh điều ngược

lại là L \ ( \ R)+  (L  R) \ ( \ R)+

Giả sử x là một thuộc tớnh bất kỳ thuộc [L \ ( \ R)+]  x  L, x  ( \ R)+

 x  L, x  ( \ R), x  ( \ R)+  x  L, x  R, x  ( \ R)+

 x  (L  R) \ ( \ R)+.

Nhận xột 3.5. Như đó biết, mục đớch của bài toỏn xỏc định khúa là tỡm tất cả cỏc khúa K của lược đồ S = <Ω, F> và ta luụn biết rằng mọi khúa K đều chứa

trong Ω. Nếu đi tỡm cỏc khúa trong tập vũ trụ Ω thỡ khụng hiệu quả vỡ Ω là

siờu khúa lớn nhất chứa tất cả cỏc khúa. Do đú, vấn đề đặt ra là cần tỡm một siờu khúa Z (càng ớt thuộc tớnh càng tốt) chứa tất cả cỏc khúa của S sao cho Z

 Ω. Nếu tỡm được tập Z như vậy thỡ việc tỡm cỏc khúa trong Z thay vỡ tỡm trong Ω sẽ đơn giản hơn.

Nhận xột 3.6. Cỏc điều kiện cần (1), (2), (3) và (4) lần lượt được viết lại dưới đõy cho thấy cấu trỳc chung của mọi khúa K của S, cỏc cận bờn phải đều là cỏc siờu khúa chứa mọi khúa của S.

 \ R  K  ( \ R)  (L  R)

 \ R  K  ( \ R)  [L  [ \ ( \ R)+] ]  \ R  K  ( \ R)  [(L  R) \ (R  ( \ R)+ )] ( \ R)  K  ( \ R)  [(L  R) \ ( \ R)+]

Ta đó chỉ ra được cận bờn phải của (2) tốt hơn cận bờn phải của (1) và cũng đó chứng minh được rằng (2), (3) và (4) thực chất chỉ là một và chỳng được diễn đạt bằng những biểu thức khỏc nhau. Như đó phõn tớch, ta mong

muốn cỏc cận bờn phải càng ớt thuộc tớnh càng tốt (càng nhỏ càng tốt). Điều

này rừ ràng liờn quan đến việc rỳt gọn bài toỏn tỡm khúa. Thật vậy, giả sử đó

xỏc định được Z   là tập chứa tất cả cỏc khúa của S = <, F>. Khi đú,

việc rỳt gọn bài toỏn cho việc tỡm khúa của S được tiến hành qua cỏc bước

Bước 1. Xõy dựng lược đồ S' = <', F'> trong đú

' = Z \ ( \ R) và F' = {Li  '  Ri  ' | (Li  Ri)  F, i = 1, 2,..., m}.

Bước 2. Tỡm S' theo một thuật toỏn nào đú.

Bước 3. Dễ thấy rằng S = {( \ R)  K | K  S'}.

Vớ dụ 3.9. Xột lược đồ quan hệ S = <Ω, F> với

Ω = ABCDEG và F = {B  C, C  B, A  GD}

Ta cú: L = BCA, R = BCGD, Ω \ R = EA, L  R = BC, (Ω \ R)+ = EAGD

Tớnh cận bờn phải của (1), ta nhận được:

(Ω \ R)  (L  R) = EABC

Tớnh cận bờn phải của (2) (và cũng là của (3) và (4)), ta cú:

L  [ \ ( \ R)+] = BCA  [ABCDEG\ EAGD] = BCA  BC = BC Do đú, L  [ \ ( \ R)+]  (Ω \ R)  (L  R)  Ω.

Như vậy, nếu cần một siờu khúa chứa mọi khúa của S mà siờu khúa này càng nhỏ càng tốt thỡ:

- Chọn L  [ \ ( \ R)+] sẽ tốt hơn chọn (Ω \ R)  (L  R). - Chọn (Ω \ R)  (L  R) sẽ tốt hơn chọn Ω.

Tiếp theo, ta minh họa việc tỡm cỏc khúa của S từ S' theo ba bước đó

mụ tả ở trờn:

- Chọn Z = L  [ \ ( \ R)+] = BC - Xõy dựng lược đồ S' = <Ω', F'> với

Ω' = Z \ (Ω \ R) = BC \ EA = BC,

F' = {B  Ω'  C  Ω', C  Ω'  B  Ω', A  Ω'  GD  Ω'} F' = {B  C, C  B,   } = {B  C, C  B}

 S' = <Ω', F'> = <BC, {B  C, C  B}>.

Dễ thấy rằng S' cú hai khúa là K1 = B và K2 = C. Từ đõy, ta suy ra hai khúa của S là (Ω \ R)  K1 = EAB và (Ω \ R)  K2 = EAC.

Liờn quan tới cỏc điều kiện cần để một tập thuộc tớnh K   là khúa

quyết định trong phần tiếp theo.

3.2.4. Một bài toỏn quyết định

Cho S = <, F> là một lược đồ quan hệ và cho Z  . Bài toỏn đặt ra là quyết định xem Z cú phải là tập chứa tất cả cỏc khúa của S khụng?

Giả sử Z chứa tất cả cỏc khúa của S. Điều đú cú nghĩa là

Z  j S j K K H K    Từ đú  \ Z   \ H = H .

Bổ đề 3.4. Cho S = <, F> là một lược đồ quan hệ và cho Z  . Khi đú Z chứa tất cả cỏc khúa của S khi và chỉ khi  \ Z chỉ gồm cỏc thuộc tớnh khụng

khúa, cú nghĩa

 \ Z  H

Để thấy được ý nghĩa của bổ đề 3.4, ta trở lại với điều kiện (2), là định lý 3.4 trong [22].

( \ R)  K  ( \ R)  [L \ ( \ R)+ ], KKS Rừ ràng (2) khẳng định rằng

Z = ( \ R)  [L \ ( \ R)+ ]

là tập (siờu khúa) chứa tất cả cỏc khúa của S.

Để kiểm tra tớnh chất đú, ta cú thể dựng bổ đề 3.4. Ta cú:

 \ Z =  \ [( \ R)  (L \ ( \ R)+) ] = R \ (L \ ( \ R)+) = (R \ L)  (R  ( \ R)+)

(Ở đõy, với ba tập bất kỳ A, B, C  , ta đó ỏp dụng một biến đổi quen thuộc A \ (B \ C) = (A \ B)  (A  C))

Như vậy

 \ Z = R \ (L \ ( \ R)+) = (R \ L)  (R  ( \ R)+) H

Do đó cú (R \ L) H (theo [1]) và R  ( \ R)+ H (theo bổ đề 3.3).

3.3. Kết luận chương 3

Bằng thực nghiệm, thuật toỏn 3.6 đó chứng tỏ cú thời gian thực hiện nhanh hơn 5 thuật toỏn tớnh bao đúng đó biết. Thuật toỏn 3.7 rừ ràng là hiệu quả hơn thuật toỏn 3.6 vỡ quỏ trỡnh tớnh toỏn cú sự thay thế cỏc phụ thuộc hàm

bởi cỏc phụ thuộc hàm đơn giản hơn (như thuật toỏn 3.6); đặc biệt là trong nhiều trường hợp, quỏ trỡnh tớnh bao đúng và tập F được đơn giản đi rất nhiều vỡ tất cả cỏc phụ thuộc hàm cú vế phải chứa trong Xnew đều bị loại bỏ trước khi xõy dựng bao đúng (đõy chớnh là điểm mới của thuật toỏn 3.7 so với thuật toỏn 3.6). Ngoài ra, tớnh đỳng đắn của thuật toỏn 3.6 khụng được nhúm tỏc giả

A.Mora và cộng sự chứng minh một cỏch tường minh khi thực hiện phộp thay thế cỏc phụ thuộc hàm bằng cỏc phụ thuộc hàm đơn giản hơn, chỳng tụi đó thực hiện sự chứng minh tớnh đỳng đắn này trong thuật toỏn 3.7.

Với việc rỳt gọn bài toỏn tỡm khúa, dựa trờn ngữ nghĩa quen thuộc của phụ thuộc hàm trong mụ hỡnh cơ sở dữ liệu quan hệ, ta đó chứng minh được cỏc điều kiện cần (2), (3) và (4) thực chất chỉ là một. Đõy là những điều kiện cần để một tập con của  là khúa tối tiểu của lược đồ quan hệ S = <, F>. Việc tỡm một điều kiện cần tốt hơn (2), (3) hoặc (4) nhằm rỳt gọn hơn nữa bài toỏn tỡm khúa là một vấn đề rất đỏng quan tõm.

Cỏc kết quả chớnh trong chương này đó được cụng bố trong [CT3, CT4, CT6, CT7].

Chương 4.

VỀ MỘT PHẫP BIẾN ĐỔI TIỀN XỬ Lí HIỆU QUẢ CÁC TẬP PHỤ THUỘC HÀM

Ngày nay, nhu cầu lưu trữ và xử lý một lượng lớn dữ liệu trờn mỏy tớnh ngày càng trở nờn quan trọng. Thực tế cho thấy, khi lượng dữ liệu ngày càng tăng, việc tập hợp, tổ chức và lưu trữ dữ liệu sao cho cú hiệu quả là một vấn đề quan trọng và tốn nhiều chi phớ để giải quyết. Những khú khăn thường gặp phải khi xử lý dữ liệu cỡ lớn chủ yếu đến từ việc cần phải làm sạch dữ liệu và loại bỏ tối đa sự dư thừa dữ liệu. Dư thừa dữ liệu làm tăng kớch thước khụng cần thiết khi lưu trữ dữ liệu, là nguyờn nhõn dẫn đến sự khụng nhất quỏn dữ liệu và làm giảm hiệu quả trong quỏ trỡnh khai thỏc và sử dụng cỏc hệ cơ sở dữ liệu.

Trong phỏt hiện tri thức từ cỏc cơ sở dữ liệu cỡ lớn, cũng khụng trỏnh khỏi tập tri thức phỏt hiện được cú dư thừa, điều này gõy khú khăn cho cỏc tổ chức, doanh nghiệp khi ra cỏc quyết định cú tớnh chiến lược. Rừ ràng là nếu loại bỏ được cỏc tri thức dư thừa thỡ sẽ thuận lợi hơn rất nhiều kể cả trong thực tế hoạt động của cỏc cơ quan, tổ chức, doanh nghiệp (ra quyết định nhanh và chớnh xỏc hơn) cũng nhu trong khoa học (tập tri thức nhỏ gọn sẽ làm giảm thời gian giải cỏc bài toỏn khỏc cú liờn quan).

Trong chương này, ta sẽ xem xột sự dư thừa của cỏc phụ thuộc hàm trong một tập phụ thuộc hàm cho trước và đề cập đến một phộp biến đổi tiền xử lý hiệu quả một tập phụ thuộc hàm nhằm thu được một tập phụ thuộc hàm mới, tương đương nhưng cú kớch thước nhỏ hơn.

4.1. Giới thiệu

Trong mụ hỡnh dữ liệu quan hệ, dữ liệu được lưu trữ dưới dạng cỏc quan hệ (cỏc bảng). Mỗi quan hệ được định nghĩa trờn một tập hữu hạn cỏc thuộc tớnh  = {A1, A2,..., An}, trong đú mỗi thuộc tớnh Ai lấy giỏ trị trong một

con của tớch Descartes Dom(A1)  Dom(A2)  ...  Dom(An). Núi cỏch khỏc r

là một tập cỏc bộ t cú dạng t = (a1, a2,...,an) trong đú ai  Dom(Ai) với mọi i =

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu (Trang 95)

Tải bản đầy đủ (PDF)

(132 trang)