收稿日期:2007-11-25;修回日期:2008-03-04
基金項目:江蘇省“六大人才高峰”高層次人才資助項目(06-A-027);江蘇省高校自然科學基金資助項目(06KJD520122); 南京信息工程大學基礎研究基金重點資助項目(20070084)
作者簡介:張穎超(1960-),男,江蘇徐州人,院黨委書記,教授,博導,主要研究方向為系統控制和仿真、網絡控制技術等(yc.nuist@126.com);王慧(1983-),女,江蘇揚州人,碩士研究生,主要研究方向為數據庫技術、計算機應用等.*
(南京信息工程大學 信息與控制學院,南京 210044)
摘 要:目前SQL模糊擴展查詢已經研究了帶權重的模糊簡單查詢、復合查詢、多表查詢、子查詢、全關系查詢等,在一定程度上解決了查詢中的模糊型問題,但對于帶模糊語言量詞的查詢研究不多。基于Zadeh的模糊理論將模糊理論與SQL系統函數相結合,提出了一種解決含模糊語言量詞的SQL查詢方法,進一步豐富了SQL模糊查詢體系,擴展了SQL模糊查詢的應用范圍,提高了查詢能力。
關鍵詞:模糊集理論;模糊語言量詞;SQL函數;匹配度;去模糊機制
中圖分類號:TP311.132
文獻標志碼:A
文章編號:1001-3695(2008)10-2917-03
Study on fuzzy queries with fuzzy quantifies in SQL
ZHANG Ying-chao, WANG Hui
(College of Information Communication, Nanjing University of Information Science Technology, Nanjing 210044, China)
Abstract:The previous study on fuzzy queries included simple queries, compound queries, multi-relational queries, subqueries with weights and so on. It solved fuzzy questions to some extent. But it did a little to the queries with fuzzy linguistics quantifies. Based on Zadeh’s fuzzy theory, this paper introduced a new method to deal with such problems through the combinations of fuzzy theory and SQL functions. This will improve the SQL fuzzy queries system, thus enabling more effective queries.
Key words:fuzzy theory; fuzzy linguistic quantifies; SQL functions; matching degree; translation system
0 引言
自Zadeh于1965年提出模糊集合理論以來,模糊理論得到了廣泛應用。在數據庫模糊查詢方面,許多人致力于利用模糊集合理論來擴展數據庫模糊查詢技術,將vague、imprecise引入DBMS,使其查詢更加靈活,更符合人的自然思維。
數據庫系統模糊查詢主要集中在模糊數據庫的研究和基于傳統數據庫的模糊查詢兩個方面。基于模糊理論的SQL查詢則屬于后者。SQL查詢若能夠支持自然語言的表述查詢,則能切合人們的日常思維習慣,滿足查詢需求,為人們提供更簡便的查詢方法。
歸納起來,查詢中的自然語言項可包括以下方面:a)數值型的模糊值 ,如“高”“矮”“年輕”“年老”等;b)修飾算子,即語氣算子、模糊化算子、判定化算子等,如“近乎肥胖”“非常高”“偏向年輕”等;c)模糊關系,如“年齡至多為30”“庫存量約等于銷售量”等;d)模糊語言量詞,如“幾乎所有”“大部分”等;e)權重。
以上幾個方面幾乎包含了人們日常查詢中涉及的自然語言變量,人們也就此進行了各方面的研究。目前國內外基于SQL的模糊查詢的研究主要集中在a)b)兩個方面。其中文獻[1,2]在查詢條件嵌入簡單模糊項、復雜模糊項及復合模糊項這方面做了大量的研究工作,并分別提出了利用正向法和反向法實現去模糊機制。此外在c)方面,文獻[3]提出了在關系型數據庫系統中利用α-截集實現含模糊關系的SQL查詢的轉換機制;文獻[4~6]在權重方面進行了研究,前者提出了新的基于自動聚類技術和權重概念對關系型數據庫進行模糊查詢的方法,后者直接在查詢語句中引入權重,解決了查詢時的偏好表述概念;文獻[7]研究了在SQL中仍使用精確數值,但對查詢的結果集采用基于距離的模糊等價關系和模糊聚類法,將模糊排序整合進靈活查詢系統,得到了模糊的查詢結果集;文獻[8]提出了基于模糊理論和模糊數的α-截集的泛化SQL模糊查詢,引入復雜模糊關系作為運算符,通過用戶設定不同的閾值來實現模糊查詢的轉換機制;文獻[9]研究了含模糊聚集運算符SQL查詢,分析了傳統SQL語言體系在擴展SQL語言中的等價性。相對而言,國內外在模糊語言量詞方面的研究相對較少。文獻[10]研究了模糊量詞的計算,但對SQL中含模糊量詞的去模糊未加以討論,其他這方面的文獻較少。本文主要是基于Zadeh的模糊理論, 將模糊理論與SQL數據庫系統自身的函數特征相結合,提出了一種解決含模糊語言量詞的SQL查詢方法,實現了去模糊,完成了SQL擴展查詢。
1 含模糊語言量詞的SQL擴展查詢
SQL語言和基于SQL的關系型數據庫系統是計算機應用的重要技術。SQL查詢,即對數據庫表進行投影運算,涉及到簡單查詢、多表查詢、匯總查詢以及子查詢等。基于以往文獻研究狀況,可將基于模糊理論的SQL模糊擴展查詢的語法定義如下:
SELECT attributes
FROM sourceDataName
WHERE conditions1
WEIGHT weights
GROUP BY attributes
HAVING conditions2
WITH α
其中:SELECT 子句中attributes是用戶需要查詢的數據庫關系表的字段;sourceDataName為檢索記錄的數據庫關系表,可為單表,也可為多表的連接,當為多表查詢時,各個關系表用逗號隔開;WHERE 子句中conditions1為檢索記錄需滿足的搜索條件(在ANSI/ISO標準中稱為謂詞);weights是用戶為各個檢索字段設置的偏好權重,權重在合取式中起到放寬結果集的作用,而在析取式中為收縮結果集的作用;包含GROUP BY子句的查詢為分組查詢,它將來自源表的數據進行分組,并為每個記錄組生成一個匯總記錄;attributes為查詢的分組字段;HAVING子句用來選擇和排除記錄組,為組指定搜索條件。這里要著重說明的是,condition1、conditions2格式為A1 is F1(AND/OR)A2 is F2(AND/OR)…An is Fn。其中:A1,A2,…,An為關系表的字段;F則為精確數或用自然語言表述的模糊謂詞。
子條件的匹配度計算如下:
MD(t)=uF(A)(1)
其中:uF為模糊的隸屬函數;t為T上的一個元組;模糊謂詞F可以是原子謂詞、復雜謂詞、復合謂詞。
由AND或OR連接的條件整體匹配度的計算:AND:MD(t)=min(m1,…,mi)(2)
OR:MD(t)=max(m1,…,mi)(3)
帶權重的合取式和析取式的匹配度計算公式(wi是Ai的權重):
MD(t)=min(mw11,…,mwkk)=
min[max(1-w1,m1),…,max(1-wk,mk)](4)
MD(t)=max[m1w1,…mkwk)=
max[min(w1,m1),…,min(wk,mk)](5)
為實現上述SQL查詢模糊擴展,須建立模糊查詢模型,從而實現去模糊,完成模糊集合與經典集合之間的轉換。目前有正向求解模型和反向求解模型兩種方法。正向求解模型即根據查詢條件,將要查詢的字段值帶入到相應的隸屬函數中,計算出其隸屬度,得到隸屬度表,根據上述已給定的相關公式得到總隸屬度后設定總隸屬度閾值,再對隸屬度進行查詢;反向求解模型即預設一個隸屬度閾值,據此計算出對應字段的取值范圍,將此取值范圍代替原字段需要滿足的模糊謂詞項,從而以精確查詢的方式實現模糊查詢。
11 帶模糊語言量詞的SQL模糊查詢
如前所述,目前模糊查詢擴展已經研究了帶權重的模糊簡單查詢、復合查詢、多表查詢、子查詢、全關系查詢等,在一定程度上解決了查詢中的模糊型問題,但對于查詢諸如“查找一個部門,在該部門工作的員工大多數是年輕人”這樣帶模糊語言量詞的查詢研究不多。本文基于Zadeh的模糊理論, 將模糊理論與SQL數據庫系統自身的函數特征相結合,提出了一種解決含模糊語言量詞的SQL查詢的新方法,結合正向建模和反向建模實現了去模糊,完成了SQL擴展查詢。
Zadeh提出,在自然語言中存在這樣兩類量詞:絕對量詞和相對量詞[10]。前者為“至少三個”“十個”“大約五個”等,可以通過非負數的模糊子集表示;后者如“大多數”“至少一半”“絕大多數”等,可通過單位區間的模糊子集描述。
通常帶語言量詞的自然表述有諸如“大約10個是老年人”“大多數人是年輕人”“大多數年輕人工資至少為4500”等。本文對此加以抽象化,可表述為以下兩種形式:
a)Q is fc1
b)Q (fc1) is fc2
其中:Q為模糊語言量詞(絕對/相對);fc1、 fc2為模糊條件,包括模糊謂詞(簡單模糊謂詞、復雜模糊謂詞和復合模糊謂詞)、模糊關系運算符和連接詞AND、OR等。
對語言量詞的表述人們也有不同的解釋,如Zadeh的Computational、Ager的competitive type aggregation[11]以及Yager的OWA-based interpretation of fuzzy quantifiers[12]。其中,Zadeh的Computational未給出完全的計算公式,不能滿足數據庫用戶的直觀性需求;而后兩者則著重于聚集行為的研究應用。
在以往SQL模糊查詢的研究基礎上,于SQL查詢的WHERE和HAVING子句中引入模糊語言量詞,解決了上述提出的問題,通過模糊理論與SQL函數結合正/反向建模法實現去模糊,得到查詢結果集。
SELECT attributes
FROM sourceDataName
WHERE Q1 is fc1 [Q1 (fc1) is fc2]
WEIGHT weights
GROUP BY attributes
HAVING Q2 is fc1 [Q2 (fc1) is fc2]
WITH α1,α2 ,β1,β2
其中:α1、α2 分別是WHERE和HAVING子句中查詢條件需要滿足的閾值(置信水平);Q1與Q2為用戶可自行指定的模糊語言量詞命題(如相對模糊語言量詞“幾乎所有”“至少一半”“相對少一點”以及絕對語言模糊量詞“大約四個”等);β1、β2為查詢記錄滿足模糊語言量詞命題的匹配度;α1、α2 、β1、β2可為精確數值型,也可為自然語言表述的模糊項;其他字句功能意義同上。
12 模糊查詢舉例
為了清楚地闡述帶模糊語言量詞的SQL模糊查詢,本文通過例子進一步說明。為能簡潔明了,選取了較為簡單的SQL查詢語句形式。
SELECT attributes
FROM sourceDataName
WHERE Q1 is fc1
GROUP BY attributes
WITH α,β
實現上面提出的查詢“查找一個部門職員情況,在該部門工作的員工大部分是年輕人”。具體SQL查詢語句如下:
SELECT Emp_Id ,Name,Age,Salary,Dep_Id
FROMEmployees
WHERE 大部分is (age is young)
GROUP BY Dep_Id
WITH0.5,0.8
隸屬函數如young、tall及模糊語言量詞的確定過程,本質上是可觀的,但又允許有一定的人為技巧。通常隸屬函數的確定有以下幾種常用方法[13]:模糊統計實驗法、二元對比排序法、逐級估量法等。然而在大量的統計中,就一般情況而言,可將隸屬函數分為三類:偏小型(戒上型),如降半哥西分布、降半梯形分布等;偏大型(戒下型),如升半哥西分布、升半梯形分布等;中間型(對稱型),如哥西分布、梯形分布等。人們根據所定義的自然語言的需要選擇合適的隸屬函數進行表達,如“年輕”選擇偏小型,而“年老”對應偏大型等。
以此,令young、tall及模糊語言量詞“大部分”的隸屬函數如下:uyoung(x)=1x≤25
1/{1+[(x-25)/10]2}x>25
utall(x)=1x≥190
1/{1+[(x-190)/10)]2}x<190
u大部分(x)=x/05 0<x≤05
1x>05
當然,通過統計得出的隸屬函數仍帶有一定的主觀性,可以通過專家系統、神經網絡自學習機制,利用FNN直接生成隸屬函數來完成模糊查詢,避免直接指定隸屬函數帶來的主觀性[14]。
Employees如表1所示。采用正向建模法,借助中間視圖,得到表2;進而結合young的閾值,利用SQL函數,令u=COUNT(when μyoung≥05,1,1)/COUNT(*)可得到表3;最后根據模糊語言量詞“大部分”的隸屬函數及其閾值,輸出結果集如表4所示。
表1 職員關系EmployeesEmp_Idnamesexageheight/cmsalaryDep_Id2001王鵬男261724 50012002張飛男331853 50012003劉飛女391654 70012004張玉女281702 90022005蘇云男251833 50022006嚴麗女401655 00022007吳蘭男221854 90032008張麗女311605 20032009李素女201724 8003表 2 關系Employees上的元組關于young 的隸屬度Emp_Idnamesexageheight/cmsalaryDep_Idμyoungu2001王鵬男261724 500109612002張飛男331853 500102812003劉飛女391654 700101132004張玉女281702 900207352005蘇云男251833 500212006嚴麗女401655 0002012007吳蘭男221854 900312008張麗女311605 200304102009李素女201724 80031
結合young的閾值利用SQL函數,得表3。
表3 結合young閾值及SQL函數的計算結果Emp_Idnamesexageheight/cmsalaryDep_Idμyoungu 2001王鵬男261724 50010961(1)2002張飛男331853 50010281(1)03332003劉飛女391654 70010113(1)2004張玉女281702 90020735(1)2005蘇云男251833 50021(1)06672006嚴麗女401655 000201(1)2007吳蘭男221854 90031(1)2008張麗女311605 20030410(1)06672009李素女201724 80031(1)
示例只是為了說明解決含模糊語言量詞的SQL模糊擴展查詢的基本思想,對于更為復雜的SQL語句,如用AND和OR連接子條件的SQL查詢利用式(2)(3)計算隸屬度,對于帶權重的模糊查詢利用式(4)(5)。本思想同樣適用于多表查詢、子查詢等。
表4 結果記錄集Emp_IdnameagesalaryDep_Idumost2004張玉282 90022005蘇云253 50022006嚴麗405 0002
12007吳蘭224 90032008張麗315 20032009李素204 8003
12 結束語
本文在以往研究SQL模糊擴展查詢的基礎上,基于Zadeh的模糊理論, 將模糊理論與SQL系統自身的函數特征相結合,通過正/反向建模,提出了一種解決含模糊語言量詞的SQL查詢方法,解決了WHERE和HAVING子句中含模糊語言量詞的查詢,擴展了SQL查詢技術的應用,提高了查詢能力。在今后的研究中,可利用模糊語言量詞替換各條件連接的邏輯關系,進一步提高查詢的靈活性。
參考文獻:
[1]周泓,徐小良,汪樂宇.基于模糊算法的數據庫查詢工具的設計[J].計算機應用研究,2001,18(5):15-17.
[2]朱蓉.基于模糊理論的查詢技術研究[J].計算機應用研究,2003, 20(5):8-10,29.
[3]CHEN S M, JONG W T. Fuzzy query translation for relational database systems [J]. IEEE Trans on Systems Man and Cyberne-tics: PartB Cybernetics,1997,27(4):714-720.
[4]CHEN S M, LIN Y S. A new method for fuzzy query processing in relational database systems[J]. Cybernetics and Systems,2002,33(1):447-482.
[5]ZHANG Ying-chao, CHEN Yi-fei, YE Xiao-ling. Weighted fuzzy queries in relational database[C]//Proc of Lecture Notes in Computer Science 3614. 2005:430-440.
[6]陳逸菲,張穎超,葉小嶺.關系數據庫中帶語言值權重的模糊查詢[J].計算機應用研究, 2005,22(6):73-75.
[7]BODENHOFER U, KUNG J, SAMINGER S. Flexible query answe-ring using distance-based fuzzy relations[C]//Proc of TARSKII,LNCS 4342. 2006:207-228.
[8]MA Z M, YAN Li.Generalization of strategies for fuzzy query translation in classical relational databases [J]. Information and Software Technology, 2007,49(5):172-180.
[9]BOSC P, PIVERT O. A relational database language for fuzzy querying [J]. IEEE Trans on Fuzzy Systems,1995,3(2):1-17.
[10]ZADEH L A .A computational approach to fuzzy quantifiers in natural languages [J]. Fuzzy Sets and Systems,1983,1(5):149-183.
[11]YAGER R R. General multiple-objective decision function and linguistically quantified statement [J]. International Journal of Man-Machine Studies, 1984, 21(5):389-400.
[12]LEGIND H, ROSKILDE L. An approach to flexible information access system using soft computing[C]// Proc of the 32nd Hawaii International Conference on System Science.1999: 1-9.
[13]曹炳元.應用模糊數學與系統[M].北京:科學出版社,2005.
[14]陳逸菲,張穎超.FNN在數據庫模糊查詢中的研究[J].計算機應用研究,2004,21(11):44-46.