2.1.1. Khái niệm phần tử ngoại lai đối với phụ thuộc hàm
Cho r là một quan hệ dạng bảng dữ liệu trên sơ đồ quan hệ s=<R,F>. Giải thiết r là một quan hệ. Ta gọi một cặp bộ t1, t2 r không thỏa mãn điều kiện phụ thuộc hàm của F là cặp phần tử ngoại lai đối với phụ thuộc hàm của quan hệ r. Ta biểu diễn một cách hình thức nhƣ sau [5]:
Giả sử X Y là một phụ thuộc hàm thuộc F.
Khi đó cặp t1, t2r là cặp phần tử ngoại lai đối với phụ thuộc hàm X Y nếu t1(X)= t2(X) và t1(Y) t2(Y).
Ví dụ:
Cho quan hệ r sau:
Bảng 2. 1. Quan hệ r có phần tử ngoại lai đối với phụ thuộc hàm [7]
A B C D E t1 0 1 2 1 3 t2 1 2 2 1 3 t3 0 1 2 1 4 t4 3 1 2 1 1 t5 3 2 1 3 1
Hàng trên cùng biểu diễn các thuộc tính A, B, C, D, E. Các hàng tiếp theo đƣợc coi là các phần tử của quan hệ và đƣợc đánh số lần lƣợt t1, t2, t3, t4, t5.
Giả sử trong r tồn tại phụ thuộc hàm: A BE. Thế thì cặp (t1, t3) và cặp (t4, t5) là cặp ngoại lai đối với phụ thuộc hàm này.
22
2.1.2. Định nghĩa hệ bằng nhau
Giả sử r = {t1, t2, .......tm} là quan hệ trên cơ đồ quan hệ s=<R,F>. Tập Er đƣợc xác định nhƣ sau:
Er = {Ei,j: 1 i < j m và Ei,j = {a ∈ R; ti(a) = tj(a)}}.
Gọi Er là hệ bằng nhau của r. Ví dụ:
Cho quan hệ r sau:
Bảng 2. 2. Quan hệ r minh họa để xác định hệ bằng nhau [7]
a1 a2 a3 a4 a5 1 1 0 1 0 1 0 0 3 0 3 1 1 3 1 5 1 0 3 0 12 1 3 5 13 2 14 2 3 5 r 23 4 24 3 4 5 34 2 4 E a , a , a E a E a , a , a E E a E a , a , a E a , a
2.1.3. Định lý về sự nhận biết phần tử ngoại lai đối với phụ thuộc hàm hàm
Định lý [5,7]:
Cho r là một quan hệ trên sơ đồ quan hệ s=<R,F>; Er là hệ bằng nhau của r; X Y là một phụ thuộc hàm đƣợc giả thiết đúng trên r. Cặp phần tử (ti,tj) với ti, tj r là ngoại lai đối với phụ thuộc hàm X Y khi và chỉ khi Ei,j Er mà X Ei,j nhƣng Y Ei,j .
23
Thật vậy giả sử (ti, tj) là cặp ngoại lai đối với phụ thuộc hàm X Y, khi đó ta có: t1(X) = t2(X) nhƣng t1(Y) t2(Y).
Từ định nghĩa Ei,j ta có X Ei,j nhƣng Y Ei,j, vì nếu Y Ei,j thì ti(Y) = tj(Y) trái với giả thiết.
Ngƣợc lại: Nếu có Ei,j Er (xác định theo ti, tj) mà X Ei,j nhƣng Y Ei,j thì cũng theo cách xác định Ei,j ta có: ti(a) = tj(a) với a Ei,j do (Y Ei,j), do vậy ti(X) = tj(X). Cũng do Y Ei,j nên ti(Y) tj(Y). Theo định nghĩa 2.1.1 thì (ti, tj) là cặp ngoại lai. Đó là điều phải chứng minh.
Ví dụ:
Cho quan hệ r sau:
Bảng 2. 3. Quan hệ minh họa nhận biết phần tử ngoại lai đối với phụ thuộc
hàm [7] A B C D E 0 1 2 1 3 1 2 2 1 3 0 1 2 1 4 3 1 2 1 1 3 2 1 3 1
Hàng trên cùng biểu diễn các thuộc tính A, B, C, D, E. Các hàng tiếp theo đƣợc coi là các phần tử của quan hệ và đƣợc đánh số lần lƣợt t1, t2, t3, t4, t5.
Giả sử quan hệ này có phụ thuộc hàm: A BE. Tìm các cặp ngoại lai đối với phụ thuộc hàm này.
Tính Er: E1,2 = CDE; E1,3 = ABCD; E1,4 = BCD; E1,5 = ;
24 E2,3 = CD; E2,4 = CD; E2,5 = B; E3,4 = BCD; E3,5 = ; E4,5 = AE.
Ta thấy trong E1,3 ; E4,5 có chứa A, nhƣng không chứa BE. Nhƣ vậy cặp (t1, t3) và cặp (t4, t5) là cặp ngoại lai đối với phụ thuộc hàm A BE.
Từ định lý trên ta có thuật toán xác định các cặp ngoại lai đối với phụ thuộc hàm nhƣ dƣới đây.
2.1.4. Thuật toán xác định phần tử ngoại lai đối với phụ thuộc hàm
Input: Tập thuộc tính R = {A1, A2 ....An}, quan hệ r = {t1, t2,...,tm} trên R. Giả sử có tập các phụ thuộc hàm F = {X1 Y1, X2 Y2,..., Xs Ys}
Output: OUTLI – tập các cặp ngoại lai đối với phụ thuộc hàm
Bƣớc 1: Tính hệ bằng nhau Er = {Ei,j: 1 i < j m, Ei,j = { a R; ti(a) = tj(a)}}.
Bƣớc 2: Với mỗi phụ thuộc hàm XiYiF và mọi Ek,jEr (1 k < j m) kiểm tra điều kiện XiEk,j AND Yi Ek,j. Nếu đúng, lƣu cặp (tk,tj) vào tập OUTLI. Nếu không, kiểm tra tiếp các phụ thuộc hàm khác trong F.
Tập OUTLI là tập các cặp ngoại lai đối với phụ thuộc hàm của r. Trong ví dụ trên với phụ thuộc hàm A BE thì k=1 hoặc k=4.
2.1.5. Phụ thuộc hàm dạng đặc biệt
Chúng ta thấy rằng trong trƣờng hợp đối với một phụ thuộc hàm nói chung thì các thuật tốn nêu trên chỉ có thể tìm đƣợc các cặp phần tử mà trong đó có ít nhất một phần tử là ngoại lai đối với phụ thuộc hàm. Trong một số trƣờng hợp đặc biệt dạng đơn giản của phụ thuộc hàm trong các CSDL thực tế nhƣ phụ thuộc hàm dạng bằng nhau, phụ thuộc hàm dạng tỉ lệ mà chúng ta đã giới thiệu tóm lƣợc trong
25
lai đối với các phụ thuộc hàm loại này. Phần dƣới đây trình bày một số trƣờng hợp đó.
2.1.6. Phần tử ngoại lai đối với phụ thuộc hàm dạng đặc biệt
Định nghĩa phụ thuộc hàm có dạng bằng nhau [7]:
Ngƣời ta đã đƣa ra khái niệm về phụ thuộc hàm bằng nhau nhƣ sau:
Cho quan hệ r trên R = (A1, A2, .....An). Giả sử với Ap, Aq nào đó thuộc R, mà
với mọi ti r ta có: ti(Ap) = ti(Aq). Khi đó nếu có phụ thuộc hàm Ap Aq mà đồng
thời cũng có Aq Ap thì đó là phụ thuộc hàm có dạng bằng nhau.
Trong trƣờng hợp này, để xác định các cặp phần tử ngoại lai ti, tj ta có thể so sánh: ti(Ap) với ti(Aq) (hoặc tj(Ap) với tj(Aq)).
Nếu ti(Ap) ti(Aq) (hoặc tj(Ap) tj(Aq)) thì khi đó mọi cặp (ti, tk) (hoặc (tj, tk)) với tk r đều là cặp phần tử ngoại lai.
Ví dụ:
Bảng 2. 4. Form tóm lược bảng kê kiểm tra tỷ lệ thuế nộp của một công ty kinh doanh
Ngày Số HĐ Mã hàng TL_thuế nộp (theo loại hàng) Thành tiền Tiền thuế TL_thuế QĐ (theo loại hàng) T1 HĐ1 MH001 a A A‟ a T2 HĐ2 MH001 a B B‟ a T3 HĐ2 MH008 b C C‟ b T4 HĐ3 MH005 c D D‟ c T5 HĐ4 MH001 a E E‟ a
Nhận thấy rằng trong bảng có phụ thuộc hàm dạng bằng nhau: TL_thuế nộp -> TL_thuế QĐ
Định nghĩa phụ thuộc hàm có dạng tỷ lệ [7]:
Cho r là một quan hệ trên sơ đồ quan hệ (R,F).
Giả sử có các thuộc tính số: As, As1, As2,..., Ask R và các số thực: p1, p2, .....pk với pj 1; (j = 1,2,..,k)
26 Và 1 k j j p
= 1; với mọi ti r sao cho: ti(As1) = p1 * ti(As)
ti(As2) = p2 * ti(As) .....
ti(Ask) = pk * ti(As)
Khi này ta ký hiệu phụ thuộc hàm As As1.As2.....Ask và gọi phụ thuộc hàm dạng này là phụ thuộc hàm dạng tỉ lệ với pj là tỉ lệ đối với thuộc tính Asj với j = 1,...,k.
Trong thực tế chúng ta gặp loại phụ thuộc hàm loại này trong một số trƣờng hợp thực tế. Trong thực tế, các tỉ lệ pj có thể đƣợc chấp nhận với một giá trị sai số δ nào đó.
Ví dụ:
Bảng 2. 5. Quan hệ minh họa có phụ thuộc hàm dạng tỷ lệ [7]
AS A1 A2 A3 A4
120 24 42 30 24
75 15 26.25 18.75 15
80 16 28 20 16
160 32 56 40 32
Với bảng tỷ lệ của các thuộc tính A1,A2,A3,A4 so với AS nhƣ sau:
Tỷ lệ A1 A2 A3 A4
p1=0.2 p 2=0.35 p 3=0.25 p 4=0.2
Trong ví dụ này: k=4.