Truy vấn trên dữliệu mờ

Một phần của tài liệu Biễu diễn dữ liệu mờ bằng ngôn ngữ XML và ứng dụng (Trang 48 - 63)

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> ….. (adsbygoogle = window.adsbygoogle || []).push({});

</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) ) (adsbygoogle = window.adsbygoogle || []).push({});

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 AifvalueiAj1 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 AifvalueiAj1 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 AifvalueiAj1 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 (adsbygoogle = window.adsbygoogle || []).push({});

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= rresultt; (16) Else if (Ai)= (fvalue) then rresult=rresult (adsbygoogle = window.adsbygoogle || []).push({});

t; (17) End (18) Else //trường hợp k,k,k (19) Begin (20) Case  of (21) k: If ( [ ]) (fvalue) then rresult= rresultt; (22) k: If ( [ ]) (fvalue) then rresult= rresultt; (23) k: If ( [ ]) (fvalue) then rresult= rresultt; (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) fvalueiAj1(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) fvalueiAj1(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}, HAiHAi 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}, HAjHAj 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) fvalueit[Aj]1(Ai) fvaluej.

//Trường hợp  à ph p tốn and (adsbygoogle = window.adsbygoogle || []).push({});

(18) For each trdo

(19) If {(t[Ai](Ai) fvaluei)=1} and {(t[Aj]1(Aj) fvaluej)=1} then (20) rresult= rresultt;

//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= rresultt;

(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. (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Biễu diễn dữ liệu mờ bằng ngôn ngữ XML và ứng dụng (Trang 48 - 63)