2.2.3.1. i u di n tru ấn
Ngơn ngữ truy vấn trong CSDL mờ được các tác giả quan tâm nghiên cứu và đã cĩ nhiều kết quả. Truy vấn theo cách tiếp cận lý thuyết tập mờ, truy vấn theo cách tiếp cận quan hệ tương tự. Hầu hết, các tác giả đều xây dựng ngơn ngữ truy vấn với mong muốn thao tác mềm dẻo, “chính xác” với dữ liệu mờ bằng cách tập trung xây dựng các hàm thuộc, từ đĩ tùy theo ngữ nghĩa của dữ liệu để chọn các ngưỡng phù hợp khi thao tác dữ liệu.
Tuy nhiên mỗi ngơn ngữ truy vấn chỉ phù hợp với một mơ hình CSDL mờ cụ thể mà khơng cĩ ngơn ngữ nào tổng quát cho các mơ hình. Chẳng hạn, đối với ngơn ngữ truy vấn trên mơ hình CSDL mờ theo cách tiếp cận mờ, việc xác định giá trị chân lý của điều kiện mờ trong truy vấn thường là khĩ khăn và kết quả của truy vấn phụ thuộc nhiều vào việc xây dựng các hàm thuộc.
Nếu chúng ta xem miền trị của thuộc tính mờ là một ĐSGT thì việc xây dựng ngơn ngữ truy vấn trên mơ hình CSDL mờ để phù hợp với ngữ nghĩa mới là cần thiết cho việc thao tác và tìm kiếm dữ liệu, giá trị chân lý của điều kiện mờ trong câu truy vấn được xác định đơn giản và hiệu quả.
Vấn đề quan tâm ở đây là đề xuất một ngơn ngữ được dùng để truy vấn dữ liệu trong mơ hình CSDL mờ đã được xây dựng trong phần 2.3.2. Do đĩ, trước tiên phải đi xây dựng các thuật tốn xác định giá trị chân lý của điều kiện mờ để làm cơ sở khi truy vấn dữ liệu, tiếp đến áp dụng các thuật tốn vừa xây dựng để thực hiện truy vấn.
Để thực hiện các truy vấn mờ trên cơ sở dữ liệu mờ biểu diễn bằng XML thì trước tiên ta phải chuyển các truy vấn mờ về truy vấn rõ sau đĩ sử dụng phương pháp đối sánh mờ mức k được trình bày trong mục 1.2.3.2 để thực hiện truy vấn. Cấu trúc của lệnh truy vấn mờ dựa trên cơ sở các câu lệnh SQL nhưng ở đây chúng tơi quy định một số thẻ trong XML để mơ tả câu lệnh truy vấn mờ.
Tương tự như trong CSDL quan hệ, dạng tổng quát của câu lệnh truy vấn SQL sử dụng truy vấn trong CSDL mờ được biểu diễn như sau:
SELECT [DISTINCT]<danh sách cột> FROM <danh sách các bảng>
[WHERE <biểu thức đ ều kiện>]
Khi đĩ câu lệnh SQL sẽ được biểu diễn thơng qua các thẻ của XML.
a) Thẻ select
Được dùng để liệt kê các trường được chọn để thực hiện truy vấn. Tên các trường được liệt kê qua thẻ Field.
<Select> <Field>Truong_1</Field> … <Field>Truong_n</Field> </Select> b) Thẻ rom
Được dùng để chỉ các bảng được chọn. Tên các bảng được liệt kê thơng qua thẻ
Table.
<From>
….
<Table>Bang_n</Table> </From>
c) Thẻ xpression
Được dùng để biểu diễn một biểu thức điều kiện. -
<Expression Type = ”Fuzzy”> <F el >T n-Tr ng</F el >
<Math val = ”Ph -t n- - nh”></Math> <Val type = ”n”>g -tr -đ - nh</Val> </Expression >
-
<Expression Type = ”UnFuzzy”> <F el >T n-Tr ng</F el >
<Math val = ”Ph -t n- - nh”></Math> <Val>g -tr -đ - nh</Val>
</Expression >
d) Thẻ here
Được dùng để liệt kê các biểu thức điều kiện. Các biểu thức điều kiện được kết hợp với nhau thơng quả thẻ Math. Thẻ Math được dùng để liệt kê phép tốn kết hợp giữa các biểu thức điều kiện và nĩ chỉ nhận 2 giá trị hoặc là “And” hoặc là “Or”.
<Where>
<Expression Type = …>…</Ex re n> <Math>{And, Or}</Math>
<Expression Type = …>…</Ex re n> …..
</Where>
Ví dụ 2.6: Giả sử ta cĩ cơ sở dữ liệu mờ được cho trong bảng 2.1. Bây giờ, ta xét truy vấn sau: “T m những nh n iên Trẻ ở Thái Nguyên”. Điều kiện trong truy vấn trên cĩ thể biểu diễn bởi biểu thức t[Tuoi] = ”Trẻ” and t[DiaChi] = ”Thái
Nguyên”. Chúng ta sẽ biểu diễn câu truy vấn này bằng ngơn ngữ XML với các thẻ
<SQL> <Select> <Field>HoTen</Field> <Field>Tuoi</Field> <Field>DiaChi</Field> </Select> <From> <Table>LyLich</Table> </From> <Where>
<Expression Type = ”Fuzzy”> <Field>Tuoi</Field>
<Math val = ” = ”></Math> <Val type = ”1”>Trẻ</Val> </Expression>
<Math>and</Math>
<Expression Type = ”UnFuzzy”> <Field>DiaChi</Field>
<Math val = ” = ”></Math> <Val>Thái Nguyên</Val> </Expression>
</Where> </SQL>
Trong phần tiếp theo chúng ta đi xây dựng các thuật tốn xác định giá trị chân lý của điều kiện mờ để làm cơ sở khi truy vấn dữ liệu, tiếp đến áp dụng các thuật tốn vừa xây dựng để thực hiện truy vấn.
2.2.3.2. Đánh giá tru ấn
a) Thuật tốn xác định giá trị chân lý của điều kiện mờ
Như trong mục 2.2.1 đã trình bày, miền giá trị của thuộc tính mờ trong quan hệ của lược đồ cơ sở dữ liệu phức tạp và cĩ thể nhận giá trị như số, giá trị ngơn ngữ hoặc vừa giá trị số vừa giá trị ngơn ngữ. Vì vậy, ta đi xây dựng thuật tốn đánh giá điều kiện mờ để làm cơ sở cho việc thao tác và tìm kiếm dữ liệu sau này.
Gọi Dom( ) = Num( ) LV( ) là miền trị của thuộc tính mờ trong một quan hệ của lược đồ cơ sở dữ liệu. Khi đĩ, thuật tốn được xây dựng như sau:
Thuật tốn 2.1 [8]:
Vào: cho r là một quan hệ xác định trên tập vũ trụ các thuộc tính U.
Điều kiện [ ] , với u là một giá trị số hoặc giá trị ngơn ngữ.
Ra: Với mọi t r sao cho ( [ ] ) = true
Phương pháp:
Xây dựng các Pk = {I(t[Ai]):t[ ] = k, t r}, theo [6], một giới hạn hợp lý để phù hợp trong thực tế ta cho k 4. Trước tiên, ta chuyển các giá trị số thành giá trị ngơn ngữ.
(1) For each t r do
(2) If t[ ] Num( ) then t[ ] = k(IC(t[ ]));
//Xây dựng các dựa vào độ dài các từ
k = 1; (3) While k 4 do (4) Begin (5) Pk = ; (6) for each t r do (7) | [ ]| { ( [ ])}; (8) k = k+1; (9) End
//Xác định giá trị chân lý của ( [ ] )
(10) if u Num( ) then ( ( ));
(11) k = 4; //Phân hoạch tương ứng với mức lớn nhất (12) While k > 0 do
(14) for each do
(15) if (I( [ ]) and I(u) ) or (I( [ ]) and I(u) )
then {( [ ] ) = true} or {( [ ] ) = true};
(16) Exit;
(17) k = k -1 (18) End
Thuật tốn 2.2 [8]:
Vào: Cho r là một quan hệ xác định trên tập vũ trụ các thuộc tính U.
Điều kiện [ ] , với u là một giá trị số hoặc giá trị ngơn ngữ, { }.
Ra: Với mọi t r sao cho ( [ ] )
Phương pháp:
(1) //Sử dụng các bước từ (1)-(8) trong Thuật tốn 2.1
(2) ( ) ( ( ));
(3) k = 1;
(4) While k 4 do
(5) Begin
(6) for với mọi do
(7) Begin
(8) if { I(t[Ai]) k or I(u) k} then
(9) Begin
(t[Ai ] ku) = true;
(t[Ai ] ku) = true; (11) else if (t[Ai] ku) = true; (12) End (13) if { I(t[Ai ] ) k or I(u) k} then (t[Ai ] k u) = true; (14) if {v(t[Ai ] > v( u) } then or (t[Ai ] k u) = true ; (15) else if (t[Ai ] k u) = true; (16) End (17) k = k + 1; (18) End
Trong trường hợp đa điều kiện mờ với phép tốn , khơng mất tính tổng quát, giả sử điều kiện mờ cĩ dạng Ai fvalueiAj1 fvaluej, với fvaluei, fvaluej là giá trị mờ, Ai, Aj là thuộc tính mờ cĩ tính đơn điệu; k,k,k,k và là phép tốn
and hoặc or. Muốn xác định giá trị chân lý trong trường hợp này, trước hết các điều kiện Ai fvaluei và Aj1 fvaluej được xác định dựa vào Thuật tốn 2.1, tiếp theo tùy thuộc vào là phép tốn and hoặc or để kết hợp giá các giá trị chân lý vừa xác định. Do đĩ, thuật tốn xác định giá trị chân lý của đa điều kiện mờ được trình bày chi tiết:
Thuật tốn 2.3: Xác định giá trị chân lý của đa điều kiện mờ với phép tốn
Vào: cho r là một quan hệ xác định trên vũ trụ các thuộc tính U={ A1, A2, …,An}. Điều kiện Ai fvaluei Aj1 fvaluej
Phương pháp (1) Begin (2) for each do (3) Begin (4) If [ ] then [ ] ( ( [ ])); (5) If [ ] then [ ] ( ( [ ])); (6) End
//Xây dựng các và dựa vào độ dài các từ.
(7) K = 1 (8) While do (9) Begin (10) ; ; (11) For each do (12) begin (13) If | [ ]| then { ( [ ])}; (14) If | [ ]| then { ( [ ])}; (15) End (16) K = k +1 (17) End (18) For each do (19) Begin // Trường hợp là phép tốn and
(20) If ((t[Ai] fvaluei)1) and ((t[Aj]1 fvaluej)1) then (21) ((t[Ai] fvaluei) and(t[Aj]1 fvaluej)1;
// Trường hợp à ph p tốn or
(22) If ((t[Ai] fvaluei)1) or ((t[Aj]1 fvaluej)1) then (23) ((t[Ai] fvaluei) or (t[Aj]1 fvaluej)1;
(24) End
Thuật tốn 2.4: Thực hiện truy vấn SQL mờ trong trường hợp đơn điều kiện. Vào: Quan hệ r xác định trên tập vũ trụ các thuộc tính U={ A1, A2, …,An}.
Câu truy vấn dạng select … from … r where ( )
Ra: Quan hệ thỏa mãn với mọi ta cĩ [ ] ( )
Phương pháp
//Khởi tạo các giá trị
(1) Begin
(2) Cho { }, .
/*Trong đ HAi h1,h2, HAi = {h3, h4 với h1 < h2 và h3 >
h4. họn độ đo ờ cho các ph n tử inh và gia tử.*/
(3) [ ]; /*Với , giá trị nh
nhất và ớn nhất i n thị i.*/
(1) ( ) ( )
(2) Rresult=;
//Phân hoạch thành các khoảng tương tự ức k.
(3) K = 1;
(4) While do //Mức tương tự lớn nhất k=p
(5) Begin
(6) //Xây dựng các khoảng tương tự mức
k: ( ) ( ) ( )
(7) k = k + 1;
(8) End
//Xác định ân cận ức k của fvalue
(9) If ( ) then ( ) ( ) ;
// y t các bộ t trong r đ t các bộ th a n đi ki n t i] (Ai)fvalue
(10) For each trdo
(11) If t[Ai]LDAi then //Xác định ân cận ức k của t[Ai à (Ai)= ( );
(12) For each trdo
(13) If à ph p k then
(14) Begin
(15) If t[Ai] (fvalue) then rresult= rresultt; (16) Else if (Ai)= (fvalue) then rresult=rresult
t; (17) End (18) Else //trường hợp k,k,k (19) Begin (20) Case of (21) k: If ( [ ]) (fvalue) then rresult= rresultt; (22) k: If ( [ ]) (fvalue) then rresult= rresultt; (23) k: If ( [ ]) (fvalue) then rresult= rresultt; (24) End (25) Return rresult; (26) End.
Trong trường hợp đa điều kiện mờ, muốn xác định giá trị chân lý trước hết các điều kiện Ai(Ai) fvaluei và Aj1(Ai) fvaluej được xác định dựa vào Thuật tốn 2.3, tiếp theo tùy thuộc vào là phép tốn and hay or để kết hợp các giá trị chân lý vừa xác định. Do đĩ, Thuật tốn được xây dựng chi tiết như sau:
Thuật tốn 2.5: Thực hiện truy vấn SQL mờ trong trường hợp đa điều kiện. Vào: Quan hệ r xác định trên tập vũ trụ các thuộc tính U={ A1, A2, …,An}. Câu truy vấn dạng select … from … r where Ai(Ai) fvaluei Aj1(Ai) fvaluej, trong đĩ là phép tốn and hoặc or.
Ra: quan hệ rresult thỏa mãn với mọi trresult ta cĩ t[Ai](Ai) fvaluei j Ai j fvalue A t[ ]1( ) .
Phương pháp
//Khởi tạo các giá trị
(1) Begin
(2) Cho GAi {0,cAi,W,cAi,1}, HAi HAi HAi . /*Trong đ HAi h1,h2
, HAi = {h3, h4 với h1 < h2 và h3 > h4. họn độ đo ờ cho các ph n tử inh và gia tử.*/
(3) Cho GAj {0,cAj,W,cAj,1}, HAj HAj HAj. /*Trong đ HAi h1,h2
, HAj = {h3, h4 với h1 < h2 và h3 > h4. họn độ đo ờ cho các ph n tử inh và gia tử./*
(4) DAi minAi,maxAi, //với inAi, maxAi giá trị nh nhất và ớn nhất i n thị i.
(5) DAj minAj,maxAj, //với inAj, maxAj giá trị nh nhất và ớn nhất i n thị j.
(6) LDAi= HAi(c)HAi(c)
(7) LDAj= HAj(c)HAj(c)
(8) Rresult= ;
//Phân hoạch và thành các khoảng tương tự ức k.
(9) K = 1;
(10) While do
(11) Begin
(12) //Xây dựng các khoảng tương tự ức k:
( ) ( ) ( );
(13) //Xây dựng các khoảng tương tự ức k:
( ) ( ) ( );
(14) k = k + 1;
(15) End
//Xác định ân cận ức k của fva ei và fvaluej
(16) If ( ) then ( ) ( ); (17) If ( ) then ( ) ( );
// y t các bộ t trong r đ t các bộ th a n đi ki n t[Ai](Ai) fvaluei t[Aj]1(Ai) fvaluej.
//Trường hợp à ph p tốn and
(18) For each trdo
(19) If {(t[Ai](Ai) fvaluei)=1} and {(t[Aj]1(Aj) fvaluej)=1} then (20) rresult= rresultt;
//Trường hợp à ph p tốn or
(21) If {(t[Ai](Ai) fvaluei)=1} or {(t[Aj]1(Aj) fvaluej)=1} then
(22) rresult= rresultt;
(23) Return If {(t[Ai](Ai) fvaluei)=1} and {(t[Aj]1(Aj) fvaluej)=1} then
(24) Return rresult;
(25) End.
b) Phương pháp tru ấn dữ liệu mờ
Các ngơn ngữ truy vấn trong mơ hình CSDL quan hệ được nhiều tác giả quan tâm nghiên cứu và mở rộng trong mơ hình CSDL mờ như: đại số quan hệ mờ, ngơn ngữ SQL. Vì thế, tương tự trong CSDL quan hệ, cấu trúc của câu lệnh SQL trong CSDL mờ được xem xét trong Mục 2.3.3.1. Như vậy, câu lệnh SQL trong CSDL mờ cĩ thể được tổng quát hĩa sau:
(1) Xác định giá trị chân lý của các điều kiện mờ (Sử dụng thuật tốn 2.1, 2.2, 2.3, 2.4, 2.5) và liên kết các giá trị chân lý vừa xác định.
(2) Chọn các bộ dữ liệu thỏa mãn bước (1).
Do đĩ, vấn đề quan trọng của câu lệnh SQL trong CSDL mờ chính là xác định giá trị chân lý của điều kiện mờ và liên kết các giá trị chân lý đĩ.
Ví dụ 2.7: Cho lược đồ quan hệ U = {SOCM, HOTEN, SUCKHOE, TUOI,
Bảng 2: Quan hệ Lương Tuổi
Socm Hoten Suckhoe Tuoi Luong
11111 Phạm Trọng Cầu rất rất tốt 31 2.800.000
22222 Nguyễn Văn Tý rất tốt 85 cao
33333 Trần Tiến xấu 32 2.000.000
44444 Vũ Hồng hơn xấu 45 500.000
55555 An Thuyên rất xấu 41 rất cao
66666 Thuận Yến khả năng xấu 61 thấp
77777 Văn Cao hơn xấu 59 ít cao
88888 Thanh Tùng khả năng tốt 75 1.500.000
99999 Nguyễn Cường ít tốt 25 khá thấp
(a) Tìm những cán bộ cĩ TUOI hơn già và SUCKHOE khả năng tốt. (b) Tìm những cán bộ cĩ TUOI 2trẻ hoặc cĩ LUONG cao.
Trước hết chúng ta sẽ xem miền giá trị của SUCKHOE, TUOI và LUONG là ba đại số gia tử và được xác định như sau:
Suckhoe
X = (Xsuckhoe, Gsuckhoe, Hsuckhoe, ), với Gsuckhoe = {tốt, xấu}, Hsuckhoe = {rất, hơn}, Hsuckhoe = {khả năng, ít}, rất > hơn và ít > khả năng.
Wsuckhoe = 0.6, fm(xấu) = 0.6, fm(tốt) = 0.4, fm(rất) = 0.3, fm(khá) = 0.2, fm(khả năng) = 0.2, fm(ít) = 0.3.
Tuoi
X = (Xtuoi,Gtuoi,Htuoi, ), với Gtuoi= {trẻ, già}, Htuoi = {rất, hơn}, Htuoi ={khả năng, ít}, rất > hơn và ít > khả năng, Wtuoi= 0.4, fm(trẻ) = 0.4, fm(già) = 0.6, fm(rất) = 0.3, fm(hơn) = 0.15, fm(khả năng) = 0.25, fm(ít) = 0.3.
Luong
X = (Xluong,Gluong,Hluong, ), với Gluong= {cao, thấp}, Hluong = {rất, hơn},
luong
H = {khả năng, ít}, rất > hơn và ít >khả năng. Wluong= 0.6, fm(thấp) = 0.6, fm(cao) = 0.4, fm(rất) = 0.25, fm(hơn) = 0.25, fm(khả năng) = 0.25, fm(ít) = 0.25.
Đối với thuộc tính Tuoi: Ta cĩ fm(rất trẻ) = 0.12, fm(hơn trẻ) = 0.06, fm(ít trẻ)
= 0.12, fm(khả năng trẻ) = 0.1.
Vì rất trẻ < hơn trẻ < trẻ < khả năng trẻ < ít trẻ nên I(rất trẻ) = [0,0.12], I(hơn trẻ) = [0.12, 0.18], I(khả năng trẻ) = [0.18, 0.3], I(ít trẻ) = [0.3, 0.4].
Ta cĩ fm(rất già) = 0.18, fm(hơn già) = 0.09, fm(ít già) = 0.18, fm(khả năng già) = 0.15.
Vì ít già < khả năng già < già < hơn già < rất già nên I(ít già) =[0.4, 0.58], I(khả năng già) = [0.58, 0.73], I(hơn già) = [0.73, 0.82], I(rất già) = [0.82, 1].
Nếu chọn 1 = 100 Xtuoi khi đĩ N um(TUOI), sử dụng IC() ta cĩ N um(TUOI) ={0.31, 0.85, 0.32, 0.45, 0.41, 0.61, 0.59, 0.75, 0.25}.
Do đĩ 2(0.31) = ít trẻ vì 0.31 I(ít trẻ), tương tự 2(0.45) = rất già, 2 (0.32) = ít trẻ, 2(0.45) = ít già, 2(0.41) = ít già, 2(0.61) = khả năng già, 2(0.59) = khả năng già, 2(0.75) = hơn già,2(0.25) = khả năng trẻ.
Đối với thuộc tính LUONG: Ta cĩ fm(rất thấp) = 0.15, fm(khá thấp) = 0.15, fm(ít thấp) = 0.15, fm(khả năng thấp) = 0.15.
Vì rất thấp < hơn thấp < thấp < khả năng thấp < ít thấp nên I(rất thấp) = [0,0.15], I(ít thấp) = [0.15, 0.3], I(khả năng thấp) = [0.3, 0.45], I(ít thấp) = [0.45, 0.6].
Ta cĩ fm(rất cao) = 0.1, fm(hơn cao) = 0.1, fm(ít cao) = 0.1, fm(khả năng cao) = 0.1.
Vì ít cao < khả năng cao < cao < hơn cao < rất cao nên I(ít cao) = [0.6, 0.7], I(khả năng cao) = [0.7, 0.8], I(hơn cao) = [0.8, 0.9], I(rất cao) = [0.9, 1].
Nếu chọn 2 = rất rất cao Xluong và 1 = 3.000.000,ta cĩ v(rất rất cao) =
0,985 khi đĩ N um(LUONG) = {2.800.000, 2.000.000, 500.000, 1.500.000}. Do đĩ 2(0.92) = rất cao, 2(0.65) = ít cao, 2(0.16) = hơn thấp, 2(0.49) = ít cao.
Vậy, những cán bộ cĩ TUOI 2hơn già và SUCKHOE 2khả năng tốt là:
Bảng 3: Kết quả tìm kiếm của ví dụ (a)
Socm Hoten Suckhoe Tuoi Luong
88888 Thanh Tùng khả năng tốt 75 1.500.000 và những cán bộ cĩ TUOI trẻ hoặc cĩ LUONG cao.
Bảng 4: Kết quả tìm kiếm của ví dụ (b)
Socm Hoten Suckhoe Tuoi Luong
11111 Phạm Trọng Cầu rất rất tốt 31 2.800.000
33333 Trần Tiến xấu 32 2.000.000
44444 Vũ Hồng khá xấu 45 500.000
66666 Thuận Yến khả năng xấu 61 thấp 99999 Nguyễn Cường ít tốt 25 khá thấp
2.3. TỔNG KẾT CHƯƠNG
Cơ sở dữ liệu mờ được cài đặt trên máy tính cho phép lưu trữ, xử lý sẽ cĩ nhiều ý nghĩa quan trọng trong việc giải quyết các bài tốn trong thực tế. Trong chương này, luận văn đã tập trung nghiên cứu các vấn đề nảy sinh trong hệ thống “Quản lý
thơng tin nhân sự”. Qua đĩ luận văn đã đề xuất hướng giải quyết và đưa ra các mơ
hình cơ sở dữ liệu mờ dựa trên lý thuyết về đại số gia tử đã được phân tích để giải quyết các yêu cầu của hệ thống, đồng thời trình bày phương pháp sử dụng ngơn ngữ XML để biểu diễn mơ hình cơ sở dữ liệu mờ đĩ. Từ đĩ, luận văn giới thiệu cách