Nghiªn cøu khoa häc c«ng nghÖ<br />
<br />
<br />
PH¬NG PH¸P MA TRËN PH¸T HIÖN<br />
PHô THUéC HµM TRONG C¬ Së D÷ LIÖU<br />
VŨ QUỐC TUẤN*, VŨ CHÍNH THÚY**<br />
Tóm tắt: Phát hiện phụ thuộc hàm từ một cơ sở dữ liệu là một kỹ thuật khai<br />
phá dữ liệu quan trọng. Trong bài báo này, chúng tôi trình bày một thuật toán<br />
phát hiện các phụ thuộc hàm sử dụng ma trận tương đương. Ưu điểm của<br />
phương pháp này là các ma trận có thể tính toán một cách đơn giản và hiệu quả.<br />
Từ khóa: Khai phá dữ liệu, Cơ sở dữ liệu, Quan hệ, Lược đồ quan hệ, Phụ thuộc hàm, Ma trận tương đương.<br />
<br />
1. GIỚI THIỆU<br />
Cơ sở dữ liệu là một hướng nghiên cứu quan trọng của công nghệ thông tin và đã được<br />
ứng dụng thành công trong nhiều lĩnh vực. Phụ thuộc hàm là một loại ràng buộc dữ liệu<br />
giữa các thuộc tính trong một quan hệ. Tính nhất quán dữ liệu có thể được bảo đảm nhờ sử<br />
dụng các phụ thuộc hàm để loại bỏ dữ liệu dư thừa, phụ thuộc hàm cũng thể hiện ngữ<br />
nghĩa giữa các thuộc tính và có thể tồn tại cả trong các tập dữ liệu độc lập với mô hình<br />
quan hệ.<br />
Nghiên cứu về phụ thuộc hàm cũng là một hướng trong thiết kế cơ sở dữ liệu quan hệ.<br />
Phát hiện các phụ thuộc hàm từ một cơ sở dữ liệu là một kỹ thuật khai phá dữ liệu quan<br />
trọng. Trong những năm gần đây, việc nghiên cứu, ứng dụng nhằm phát hiện tri thức, khai<br />
phá dữ liệu từ các phụ thuộc hàm đã đạt được những kết quả có ý nghĩa.<br />
Bài báo này trình bày một phương pháp tiếp cận mới để xác định các phụ thuộc hàm<br />
trong cơ sở dữ liệu quan hệ, đó là phương pháp dùng ma trận. Ưu điểm của phương pháp<br />
này là các ma trận có thể tính toán một cách đơn giản và hiệu quả.<br />
2. CÁC KHÁI NIỆM CƠ SỞ<br />
Phần này nhắc lại một số khái niệm quan trọng trong lý thuyết cơ sở dữ liệu quan hệ<br />
nhằm mục đích sử dụng cho các phần tiếp theo.<br />
Quan hệ. Một quan hệ r xác định trên tập thuộc tính = {A1, A2,..., An} được định nghĩa<br />
như sau:<br />
r {(a1, a2,..., an) ai Dom(Ai), i = 1, 2,..., n},<br />
trong đó, Dom(Ai) là miền trị của thuộc tính Ai, i = 1, 2,..., n. Về mặt trực quan, ta có thể<br />
hình dung một quan hệ như một bảng giá trị gồm các hàng và các cột. Mỗi hàng trong<br />
bảng là một tập các giá trị có liên quan đến nhau, các giá trị này biểu thị một sự kiện tương<br />
ứng với một thực thể hay một mối quan hệ trong thế giới thực.<br />
Ví dụ 1. Xét quan hệ SV (sinh viên) được cho ở Bảng 1; mỗi hàng trong bảng này cho<br />
thông tin về một sinh viên cụ thể. Tên bảng và tên các cột được dùng để giúp cho việc hiểu<br />
ý nghĩa của mỗi hàng. Thông thường, mọi giá trị trong một cột đều thuộc cùng một kiểu<br />
dữ liệu.<br />
Bảng 1. Quan hệ SV.<br />
Mã số Họ tên Mã khoa Ngày sinh Địa chỉ<br />
K40-01 Vũ Văn Hoàng TN 10/10/1980 Tứ Kỳ-HD<br />
K40-02 Trần Cường XH 23/06/1983 Nam Sách-HD<br />
K41-01 Lê Thị Thảo TN 25/11/1979 Tứ Kỳ-HD<br />
K41-02 Nguyễn Minh Tiến XH 17/07/1981 Bình Giang-HD<br />
<br />
<br />
<br />
T¹p chÝ Nghiªn cøu KH&CN Qu©n sù, Sè 34, 12 - 2014 73<br />
Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br />
<br />
Lược đồ quan hệ. Một lược đồ quan hệ S là một cặp có thứ tự S = , trong đó là<br />
tập hữu hạn các thuộc tính của quan hệ, F là tập các ràng buộc giữa các thuộc tính. Một<br />
ràng buộc trên tập thuộc tính = {A1, A2,..., An} là một tính chất trên tập tất cả các quan<br />
hệ xác định trên tập thuộc tính này.<br />
Một lược đồ quan hệ được sử dụng để mô tả về cấu trúc và các ràng buộc của một quan<br />
hệ. Một quan hệ có thể thay đổi theo thời gian nhưng cấu trúc và các ràng buộc của nó có<br />
thể ổn định trong một khoảng thời gian nhất định.<br />
Ví dụ 2. Xét quan hệ TKB (thời khoá biểu) dưới đây được sử dụng cho một cơ sở đào<br />
tạo; dữ liệu trong quan hệ TKB có thể thường xuyên thay đổi trong khi cấu trúc của nó vẫn<br />
ổn định; mặc dù dữ liệu trong quan hệ thay đổi nhưng luôn phải thỏa mãn các ràng buộc<br />
để đảm bảo tính đúng đắn của thời khóa biểu, chẳng hạn: mọi giáo viên đều không được<br />
phép dạy ở hơn một phòng tại cùng một thời điểm.<br />
Bảng 2. Quan hệ TKB.<br />
Ngày Tiết thứ Môn Phòng Giáo viên<br />
10/05 1 Cơ sở dữ liệu 123 Vũ Tuấn<br />
10/05 2 Cơ sở dữ liệu 123 Vũ Tuấn<br />
11/05 3 Toán rời rạc 213 Phạm Hoa<br />
... ... ... ... ...<br />
Cho lược đồ quan hệ S = với = {A1, A2,..., An}. Nếu không quan tâm đến tập<br />
các ràng buộc F thì ta sẽ dùng ký hiệu S(A1, A2,..., An) hoặc S() thay cho S = . Ta<br />
dùng ký hiệu r(S) để chỉ một quan hệ r (hay một thể hiện r) của lược đồ quan hệ S. Với<br />
một bộ t của r(S) và X , ta ký hiệu t[X] là bộ chỉ chứa các giá trị của bộ t tại các<br />
thuộc tính trong X.<br />
Phụ thuộc hàm. Cho là tập thuộc tính và S() là một lược đồ quan hệ trên . Giả sử<br />
X, Y . Khi đó, Y được gọi là phụ thuộc hàm vào X trên lược đồ S(), ký hiệu là X Y,<br />
nếu với mọi quan hệ r trên lược đồ S(), với hai bộ bất kỳ t1, t2 r mà t1[X] = t2[X] thì<br />
t1[Y] = t2[Y]. Nếu Y phụ thuộc hàm vào X thì ta cũng nói "X xác định hàm Y". Với mỗi<br />
quan hệ r trên lược đồ S(), ta nói r thỏa mãn (hay thỏa) phụ thuộc hàm X Y (hay phụ<br />
thuộc hàm X Y đúng trên r) nếu và chỉ nếu với mọi bộ t1, t2 r, t1[X] = t2[X] kéo theo<br />
t1[Y] = t2[Y].<br />
Ví dụ 3. Một cửa hàng cần quản lý dữ liệu về các loại hàng hóa mà họ bán ra. Thông tin<br />
về mỗi loại hàng bao gồm mã số (MaSo), tên hàng (TenHang) và giá bán (GiaBan). Giả sử<br />
mỗi loại hàng có một mã số duy nhất và một tên duy nhất. Khi đó, {MaSo}{TenHang},<br />
{TenHang}{GiaBan}, {MaSo}{GiaBan} và dễ nhận thấy rằng {MaSo}{TenHang,<br />
GiaBan}.<br />
Hệ quy tắc suy diễn Armstrong. Với lược đồ quan hệ S = và X, Y , ta ký<br />
hiệu XY thay cho X Y. Với mọi X, Y, Z , hệ quy tắc suy diễn Armstrong đối với các<br />
phụ thuộc hàm gồm ba quy tắc sau đây:<br />
Q1. (Phản xạ): Nếu Y X thì X Y.<br />
Q2. (Gia tăng): Nếu X Y thì XZ YZ.<br />
Q3. (Bắc cầu): Nếu X Y và Y Z thì X Z.<br />
Từ hệ quy tắc suy diễn Armstrong, ta có các quy tắc suy diễn bổ sung dưới đây:<br />
Quy tắc hợp: Nếu X Y và X Z thì X YZ.<br />
Quy tắc tách: Nếu X Y và Z Y thì X Z.<br />
Quy tắc giả bắc cầu: Nếu X Y và WY Z thì WX Z.<br />
<br />
<br />
<br />
74 V. Q. TuÊn, V. C. Thuý, "Ph¬ng ph¸p ma trËn … trong c¬ së d÷ liÖu.”<br />
Nghiªn cøu khoa häc c«ng nghÖ<br />
<br />
Ví dụ 4. Trở lại ví dụ 3. Từ {MaSo}{TenHang} và {TenHang}{GiaBan} ta có<br />
{MaSo}{GiaBan} theo quy tắc bắc cầu. Từ {MaSo}{TenHang} và<br />
{MaSo}{GiaBan} ta có {MaSo}{TenHang, GiaBan} theo quy tắc hợp.<br />
Quan hệ tương đương. Cho r là một quan hệ trên lược đồ quan hệ S() và X . Quan<br />
hệ r là một tập các bộ, mỗi bộ là một hàng (một dòng) trong r. Xét quan hệ X trên r được<br />
định nghĩa như sau: t X u khi và chỉ khi t[X] = u[X] với mọi t, u r. Dễ dàng thấy rằng X<br />
là một quan hệ tương đương.<br />
Ví dụ 5. Trở lại ví dụ 1, xét quan hệ SV trong bảng 1. Ta thấy hai bộ ứng với mã số<br />
K40-01 và K41-01 tương đương với nhau trên tập thuộc tính X = {Mã khoa, Địa chỉ}. Hai<br />
bộ còn lại tương đương trên tập {Mã khoa}.<br />
3. MA TRẬN TƯƠNG ĐƯƠNG<br />
3.1. Phân hoạch<br />
Cho r là một quan hệ trên lược đồ quan hệ S(). Với mỗi tập thuộc tính X , ta xây<br />
dựng một quan hệ tương đương X như ở trên; quan hệ X này sẽ phân hoạch tập các bộ<br />
của r thành các lớp tương đương. Ký hiệu lớp tương đương của một bộ t r khi phân<br />
hoạch theo X là [t]X, nghĩa là [t]X = {u r: t[X] = u[X]}. Tập X = {[t]X : t r} gồm các<br />
lớp tương đương được gọi là phân hoạch của r trên X.<br />
Ví dụ 6. Phân hoạch quan hệ SV trong bảng 1 theo tập thuộc tính {Mã khoa} ta sẽ được<br />
hai lớp tương đương: lớp thứ nhất gồm hai bộ ứng với các mã số K40-01 và K41-01, lớp<br />
thứ hai gồm hai bộ còn lại.<br />
3.2. Ma trận tương đương<br />
Cho r là một quan hệ trên lược đồ quan hệ S(). Giả sử r t1 , t2 ,..., tm . Mỗi quan hệ<br />
tương đương X trên r có thể được biểu diễn dưới dạng một ma trận vuông như dưới đây<br />
với aij 1 nếu ti X tj và aij 0 nếu ngược lại.<br />
X t1 t2 ... tj ... tm<br />
t1 a11 a12 ... a1j ... a1m<br />
t2 a21 a22 ... a2j ... a2m<br />
... ... ... ... ... ... ...<br />
ti ai1 ai2 ... aij ... aim<br />
... ... ... ... ... .. ...<br />
tm am1 am2 ... amj ... amm<br />
Các ma trận được cảm sinh từ các quan hệ tương đương X trên r được gọi là ma trận<br />
tương đương trên r.<br />
Ví dụ 7. Quan hệ tương đương "=" trên r t1 , t2 ,..., tm ứng với phân hoạch<br />
: t1 ,t2 ,...,tm có ma trận tương đương là ma trận đơn vị cấp m.<br />
= t1 t2 ... ti ... tm<br />
t1 1 0 ... 0 ... 0<br />
t2 0 1 ... 0 ... 0<br />
... ... ... ... ... ... ...<br />
ti 0 0 ... 1 ... 0<br />
<br />
<br />
<br />
<br />
T¹p chÝ Nghiªn cøu KH&CN Qu©n sù, Sè 34, 12 - 2014 75<br />
Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br />
<br />
... ... ... ... ... .. ...<br />
tm 0 0 ... 0 ... 1<br />
Ví dụ 8. Quan hệ tương đương : t i t j với mọi i, j 1, 2,..., m trên r t1 , t2 ,..., tm có<br />
ma trận tương đương là ma trận vuông cấp m với tất cả các phần tử đều bằng 1.<br />
t1 t2 ... ti ... tm<br />
t1 1 1 ... 1 ... 1<br />
t2 1 1 ... 1 ... 1<br />
... ... ... ... ... ... ...<br />
ti 1 1 ... 1 ... 1<br />
... ... ... ... ... .. ...<br />
tm 1 1 ... 1 ... 1<br />
Định nghĩa 1. Cho trước M 1 tij và M 2 t 'ij là hai ma trận tương đương cấp m.<br />
Khi đó, giao của M1 và M 2 là một ma trận, kí hiệu là M 1 M 2 sij ,<br />
với sij min(tij,t 'ij ) . Để nhận được ma trận M1 M 2 , ta cần tính m 2 giá trị sij ; do đó độ<br />
phức tạp thời gian khi tính M1 M 2 từ M1 và M 2 là O(m2 ) .<br />
Ví dụ 9. Với r t1 , t2 , t3 , t4 , t5 , t6 . Phân hoạch 1 : t1 , t6 ,t2 , t3 ,t4 , t5 có ma trận M 1<br />
và phân hoạch 2 : t1 , t3 , t4 , t5 , t6 ,t2 có ma trận M 2 .<br />
1 0 0 0 0 1 1 0 1 1 1 1<br />
0 1 1 0 0 0 0 1 0 0 0 0 <br />
<br />
0 1 1 0 0 0 1 0 1 1 1 1<br />
M1 , M2 ,<br />
0 0 0 1 1 0 1 0 1 1 1 1<br />
0 0 0 1 1 0 1 0 1 1 1 1<br />
<br />
1 0 0 0 0 1 1 0 1 1 1 1 <br />
1 0 0 0 0 1<br />
0 1 0 0 0 0 <br />
<br />
0 0 1 0 0 0<br />
Giao của M 1 và M 2 là ma trận M 3 M1 M 2 .<br />
0 0 0 1 1 0<br />
0 0 0 1 1 0<br />
<br />
1 0 0 0 0 1 <br />
Định nghĩa 2. Cho trước M 1 tij và M 2 t 'ij là hai ma trận tương đương cấp m. Ta<br />
nói M1 M 2 nếu tij t 'ij với mọi i, j 1, 2,..., m .<br />
Như vậy, để kiểm tra M1 M 2 ta cần thực hiện m 2 phép so sánh tij t 'ij ; do đó độ<br />
phức tạp thời gian để so sánh hai ma trận M1 , M 2 cũng chỉ là O(m2 ) .<br />
Ví dụ 10. Với các ma trận M 1 , M 2 , M 3 trong ví dụ 9, dễ thấy rằng M 3 M 1 và<br />
M3 M2 .<br />
<br />
<br />
<br />
<br />
76 V. Q. TuÊn, V. C. Thuý, "Ph¬ng ph¸p ma trËn … trong c¬ së d÷ liÖu.”<br />
Nghiªn cøu khoa häc c«ng nghÖ<br />
<br />
3.3. Ma trận thuộc tính<br />
Cho r T t1 , t2 ,..., tm là một quan hệ trên tập thuộc tính = {A1, A2,..., An}, kí hiệu<br />
là r ( T, ) . Với mỗi thuộc tính A , ta xây dựng một quan hệ tương đương A trên T<br />
như sau: t A u nếu và chỉ nếu t[A] = u[A] với mọi t, u T ; nghĩa là các bộ t, u có cùng<br />
giá trị trên thuộc tính A. Gọi M A là ma trận tương đương của quan hệ A .<br />
Định nghĩa 3. Ma trận M A của quan hệ tương đương A được xây dựng như ở trên được<br />
gọi là ma trận của thuộc tính A (hay của tập thuộc tính {A}).<br />
Ví dụ 11. Xét một quan hệ r ( T, ) được cho trong bảng 3 với = {A1, A2,..., A6} và<br />
r T t1 , t2 ,..., t5 :<br />
Bảng 3. Quan hệ r ( T, )<br />
A1 A2 A3 A4 A5 A6<br />
t1 4 1 K X 8.36 M<br />
t2 3 2 J Y 5.14 F<br />
t3 4 1 L X 8.38 M<br />
t4 3 1 K X 8.29 F<br />
t5 4 2 J Y 5.27 M<br />
Với mỗi thuộc tính A ta có các ma trận sau:<br />
1 0 1 0 1 1 0 1 1 0<br />
0 1 0 1 0 0 1 0 0 1 <br />
<br />
M A1 M A6 1 0 1 0 1 , M A2 M A4 1 0 1 1 0 ,<br />
<br />
0 1 0 1 0 1 0 1 1 0<br />
1 0 1 0 1 0 1 0 0 1 <br />
1 0 0 1 0 1 0 00 0<br />
0 1 0 0 1 0 1 00 0<br />
<br />
M A3 0 0 1 0 0 , M A5 0 0 10 0<br />
<br />
1 0 0 1 0 0 0 00 1<br />
0 1 0 0 1 0 0 01 0<br />
Định nghĩa 4. Cho trước quan hệ r( T, ) và một tập con X . Ma trận tương đương<br />
của X được định nghĩa là M X aij với aij 1 nếu và chỉ nếu ti[X] = tj[X]. Dễ thấy rằng<br />
M X AX M A .<br />
Ví dụ 12. Xét lại quan hệ r ( T, ) trong bảng 3. Với X A1 , A4 ta có ma trận M X như<br />
sau:<br />
1 0 1 0 0<br />
0 1 0 0 0 <br />
<br />
M X M A1 M A4 1 0 1 0 0<br />
<br />
0 1 0 1 0<br />
0 0 0 0 1 <br />
<br />
<br />
<br />
<br />
T¹p chÝ Nghiªn cøu KH&CN Qu©n sù, Sè 34, 12 - 2014 77<br />
Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br />
<br />
3.4. Một số tính chất của ma trận thuộc tính<br />
Từ định nghĩa về ma trận của tập thuộc tính (định nghĩa 4) và hệ quy tắc suy diễn<br />
Armstrong, ta dễ dàng suy ra được các tính chất sau:<br />
Định lý 1. [1] Cho quan hệ r ( T, ) . Khi đó, với mọi X , Y ta có M X M Y M X Y .<br />
Chứng minh. Do phép có tính chất giao hoán và kết hợp nên:<br />
( AX M A ) ( AY M A ) AX Y M A . <br />
Định lý 2. [1] Cho quan hệ r ( T, ) . Khi đó, với mọi X , Y ta có<br />
M X Y M XY M X , M Y .<br />
Chứng minh. Giả sử x, y {0,1} . Theo định nghĩa thì x y min( x, y) nên<br />
x y x, y . <br />
Định lý 3. [1] Cho quan hệ r ( T, ) . Khi đó, với mọi X , Y , nếu X Y thì<br />
M X MY .<br />
Chứng minh. Đặt Z X \ Y . Ta có M X M YZ M Y theo định lý 2. <br />
Định lý 4. [1] Cho quan hệ r (T, ) . Với X , Y , nếu M X M Y thì M X Z M Y Z<br />
với mọi Z .<br />
Chứng minh. Vì M X M Y nên M X M Y M X .<br />
Do đó, ( M X M Z ) ( M Y M Z ) ( M X M Y ) ( M Z M Z ) M X M Z ;<br />
Vậy ( M X M Z ) ( M Y M Z ) hay M X Z M Y Z .<br />
Định lý 5. Cho quan hệ r ( T, ) . Khi đó, với mọi X , Y , Z , nếu M X M Y và<br />
M X M Z thì M X M YZ .<br />
Chứng minh.Giả sử M X xij , M Y yij và M Z zij . Từ M X M Y và M X M Z<br />
ta có xij yij , xij zij . Suy ra xij min( yij , zij ) yij zij . <br />
5. Phụ thuộc hàm<br />
Định lý 5. [1] Phụ thuộc hàm X Y đúng trên r ( T, ) khi và chỉ khi M X M Y , nghĩa<br />
là AX M A AY M A .<br />
Chứng minh. Giả sử r t1 , t2 ,..., tm , M X xij và M Y yij .<br />
+ Nếu X Y thì M X M Y . Thật vậy, vì X Y nên theo định nghĩa phụ thuộc hàm<br />
ta có: ti , t j r nếu ti [ X ] t j [ X ] thì ti [Y ] t j [Y ] ; kết hợp với định nghĩa 4, suy ra:<br />
nếu xij 1 thì yij 1 . Mặt khác, M X , M Y là các ma trận nhị phân nên M X M Y .<br />
+ Nếu M X M Y thì X Y . Ta cần chỉ ra ti , t j r , nếu ti [ X ] t j [ X ] thì<br />
ti [Y ] t j [Y ] . Thật vậy, vì ti [ X ] t j [ X ] nên theo định nghĩa 4, ta có xij 1 ; mặt khác<br />
do M X M Y nên xij yij , suy ra yij 1 ; cũng theo định nghĩa 4, từ yij 1 ta có<br />
ti [Y ] t j [Y ] . <br />
Như vậy, để kiểm tra X Y ta chỉ cần kiểm tra M X M Y ; độ phức tạp thời gian là<br />
O( m 2 ) .<br />
Hệ quả. Nếu M X M thì X là siêu khoá, nghĩa là X đúng trên r ( T, ) .<br />
4. PHÁT HIỆN PHỤ THUỘC HÀM<br />
Thuật toán 1. Thuật toán tìm ma trận M A tij .<br />
<br />
<br />
<br />
78 V. Q. TuÊn, V. C. Thuý, "Ph¬ng ph¸p ma trËn … trong c¬ së d÷ liÖu.”<br />
Nghiªn cøu khoa häc c«ng nghÖ<br />
<br />
INPUT: Quan hệ r ( T, ) t1 , t2 ,..., tm và A .<br />
OUTPUT: Ma trận tương đương M A .<br />
for i: = 1 to m do<br />
for j: = 1 to m do<br />
if ti [ A] t j [ A] then tij 1 else tij 0 ;<br />
Nhận xét 1. Thuật toán 1 có độ phức tạp thời gian là O(m 2 ) .<br />
Thuật toán 2. Thuật toán tính ma trận M M1 M 2 .<br />
INPUT: Hai ma trận (vuông, nhị phân, cấp m) M1 , M 2 .<br />
OUTPUT: M M1 M 2 .<br />
+ Quy tắc tính: 0 0 0 , 0 1 1 0 0 , 1 1 1 .<br />
+ Giả sử M tij , M 1 t 'ij , M 2 t ''ij , ta có:<br />
for i: = 1 to m do<br />
for j: = 1 to m do<br />
if t 'ij t ''ij then tij t 'ij else tij t ''ij ;<br />
Nhận xét 2. Thuật toán 2 có độ phức tạp thời gian là O(m 2 ) .<br />
<br />
Thuật toán 3. Thuật toán kiểm tra phụ thuộc hàm X Y .<br />
INPUT: Quan hệ r ( T, ) t1 , t2 ,..., tm và X , Y .<br />
OUTPUT: TRUE nếu X Y đúng trên r ( T, ) hoặc FALSE nếu ngược lại.<br />
Bước 1. Tính M X = ?<br />
<br />
<br />
+ Giả sử X x1 , x2 ,..., x X . <br />
+ Tính M x1 theo Thuật toán 1; M X : M x1 ;<br />
+ for i := 2 to X do<br />
begin<br />
+ Tính M xi ;<br />
+ M X : M X M xi ;<br />
end;<br />
Bước 2. Tính M Y = ?<br />
<br />
<br />
+ Giả sử Y y1 , y2 ,..., y Y . <br />
+ Tính M y1 theo Thuật toán 1; M Y : M y1 ;<br />
+ for i := 2 to Y do<br />
begin<br />
+ Tính M yi ;<br />
+ M Y : M Y M yi ;<br />
end;<br />
Bước 3. So sánh M X và M Y ?<br />
+ Giả sử M X xij và M Y yij .<br />
<br />
<br />
<br />
<br />
T¹p chÝ Nghiªn cøu KH&CN Qu©n sù, Sè 34, 12 - 2014 79<br />
Kü thuËt ®iÖn tö & Khoa häc m¸y tÝnh<br />
<br />
+ TEST := TRUE;<br />
+ for i := 1 to m do<br />
for j := 1 to m do<br />
if xij yij then<br />
begin<br />
TEST := FALSE;<br />
break;<br />
end;<br />
+ return TEST;<br />
Nhận xét 3. Thuật toán 3 có độ phức tạp thời gian là O(m2 ) .<br />
<br />
5. KẾT LUẬN<br />
Bài báo đã nghiên cứu về ma trận thuộc tính và phương pháp ma trận để kiểm tra một<br />
phụ thuộc hàm có được thoả mãn hay không đối với một quan hệ cho trước. Phương pháp<br />
ma trận tỏ ra đơn giản và hiệu quả vì độ phức tạp thời gian tính toán của phương pháp này<br />
chỉ là đa thức. Trong các bài báo tiếp theo, chúng tôi sẽ nghiên cứu tiếp các tính chất quan<br />
trọng của ma trận tương đương, phương pháp ma trận để phát hiện khoá của quan hệ, đồng<br />
thời mở rộng phương pháp ma trận để phát hiện phụ thuộc hàm xấp xỉ.<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1]. J.W. Guan, D.A. Bell and Z. Guan, “Matrix computation for information systems”,<br />
Information Sciences 131 (2001), pp. 129 -156.<br />
[2]. D. Maier, “The theory of relational databases”, Computer Science Press, (1983).<br />
[3]. Hong Yao, Howard J. Hamilton, Cory J. Butz, “FD_Mine: Discovering Functional<br />
Dependencies in a Database Using Equivalences”, Second IEEE International<br />
Conference on Data Mining, (2002).<br />
[4]. Laurentiu B. Cristofor, “A rough set based generalization of functional<br />
dependencies”, Department of Math and Computer Science, UMass/Boston, May 8,<br />
(2000).<br />
[5]. Nguyễn Đăng Khoa, Vũ Huy Hoàng, “Phụ thuộc hàm suy rộng trên cơ sở lý thuyết tập<br />
thô”, Tạp chí Tin học và Điều khiển học, T.20, S.1, (2004).<br />
[6]. Y. Huhtala and et al, “Efficient discovery of functional and approximate dependencies<br />
using partitions”, (1998).<br />
<br />
ABSTRACT<br />
MATRIX METHOD FOR DISCOVERING FUNCTIONAL<br />
DEPENDENCIES IN A DATABASE<br />
Discovering functional dependencies from a database is an important<br />
technique in data mining. In this paper, we present an algorithm for finding<br />
functional dependencies using equivalence matrices. The advantage of this<br />
algorithm is that matrices can be computed simply and efficiently.<br />
Keywords: Data mining, Database, Relation, Relation scheme, Functional dependency, Equivalence matrix.<br />
<br />
Nhận bài ngày 28 tháng 07 năm 2014<br />
Hoàn thiện ngày 09 tháng 10 năm 2014<br />
Chấp nhận đăng ngày 05 tháng 12 năm 2014<br />
Địa chỉ: * Khoa Tự nhiên - Trường Cao đẳng Hải Dương.<br />
** Trung tâm Dịch vụ Giá trị Gia tăng, Công ty Thông tin di động VMS-MobiFone.<br />
<br />
<br />
80 V. Q. TuÊn, V. C. Thuý, "Ph¬ng ph¸p ma trËn … trong c¬ së d÷ liÖu.”<br />