【摘 要】傳統的數據庫都是以二值邏輯和精確數據為基礎的,不能表示許多模糊不清的對象。目前模糊數據庫技術是基于L. A. Zadeh所提出的模糊集,由于Vague集在表達模糊信息方面的能力比模糊集強,所以基于Vague集的模糊數據庫具有廣闊的應用前景。本文在Vague集和Vague關系基礎上,提出基于Vague集的模糊結構化查詢語言VSQL,它是針對于Vague關系模型的一種標準SQL擴展,可以應用于機器學習、決策分析、知識獲取,以及模式匹配等方面。
【關鍵詞】Vague集 Vague關系模式 Vague關系 Vague結構化查詢語言 Vague隸屬度
【中圖分類號】TP399 【文獻標識碼】A 【文章編號】1674-4810(2012)24-0012-03
Cantor創立的集合論是無法處理具有模糊性的不確定信息和數據的,于是L. A. Zadeh在1965年提出了模糊集(fuzzy set)理論。在隨后的幾十年中,模糊集理論不斷發展和完善,并在許多領域里取得被成功地應用。模糊集最主要的特征是:每一對象都有一個互不相同的隸屬于模糊集A的程度,隸屬函數μA(x)(x∈U)給每個對象分派一個[0,1]中的數作為它的隸屬度。
隨著模糊集理論在模糊數據處理方面的廣泛應用,其本身所具有的一些不足也顯現出來,其中之一就是糊集理論中單值隸屬度不能同時表示支持和反對的證據。為解決此問題,臺灣學者W .L. Gau和D. J. Buehrer于1993年提出了Vague集(Vague set)理論。作為模糊集的進一步推廣,Vague集具有更強的表達數據模糊性和不精確性的能力。在Vague集中,給每個對象同樣分派一個隸屬度,不同的是該隸屬度是[0,1]的一個子區間,這個子區間既給出了支持x∈U的證據,同時也給出了反對x∈U的證據。與模糊集相比較,Vague集有如下特性:模糊集能表示的模糊信息,Vague集能表示;模糊集不能表示的信息,Vague集也能表示。
有關 Vague 集的研究已取得了豐碩的成果,一方面是Vague 集的性質研究,主要集中在相似度測量方面[3,4,5],另一方面是利用Vague擴展關系數據模型,還有一個重要的研究方向是基于Vague集的查詢研究,Prade等人提出了一種基于模糊數據庫的查詢語言,并對其中的選擇和投影操作進行了研究,Bosc等人基于可能性分布模糊數據庫,對其中的選擇、投影和連接操作進行了討論,國內的趙法信等人在這方面也作出了一定的研究,基于Vague集的代數查詢語言中的選擇、投影和連接操作進行了研究,Vague 除操作實現方法的研究,基于Vague關系數據模型的聚集操作研究。本文在擴展Vague關系模型的基礎上,提出了基于Vague集的模糊結構化查詢語言VSQL,并給出了相應的定義,能夠方便高效地進行查詢Vague信息。
一 Vague集
Vague集作為模糊集的一般化形式,具有更強的表達模糊信息的能力。下面給出Vague集的定義。
定義1令X是一個點(對象)的空間,其中的任一元素用x表示,X中的一個Vague集V用一個真隸屬函數tv和一個假隸屬函數fv表示。tv(x)是從支持x的證據所導出的x的隸屬度的下界,fv(x)則是從反對x的證據所導出的x的隸屬度的下界,tv(x)和fv(x)將區間[0,1]的一個實數與X中的每個點聯系起來,且tv(x)+fv(x)≤1,即:
tv:X→[0,1] fv:X→[0,1] [2]
由定義可知,它將x的隸屬度限制在[0,1]的一個子區間[tv(x),1-fv(x)]內。
Vague集V可以表示為: 。
例如:如果tv(x),1-fv(x)=[0.5,0.8],那么tv(x)=0.5,fv(x)=0.2。這一結果表明:x屬于Vague集V的程度為0.5,而它不屬于V的程度為0.2。用投票模型解釋為:對于一個方案,有10個專家進行投票,有5個人支持,2個人反對,有3個人棄權。
換句話說,我們可以這樣理解,x的精確隸屬度μv(x)或許不知道,但是它應是tv(x)≤μv(x)≤1-fv(x),其中tv(x)+fv(x)≤1。
這樣,x的信息的精確性就十分清楚了,因為關于x的不確定性可以用1-fv(x)-tv(x)來表征。如果該差值小,表明我們相當精確地知道x;如果該差值大,則表明關于x我們知道很少。如果1-fv(x)=tv(x),則表明我們精確地知道x,此時,Vague集就退化為模糊集。如果1-fv(x)和tv(x)同時為1或0,這取決于x屬于還是不屬于V,此時關于x的信息是精確的,也就是說,Vague集退化為普通集合。Vague集的幾何解釋,見右圖。
二 Vague關系
由于客觀世界的復雜性,人們對許多事物的認識具有一定的局限性。因此,數據庫系統管理的模糊數據也應該體現人們認識上的差異,帶有Vague可信度。
定義2:一個Vague關系模式Rv是由(屬性名,Vague可信度)組成的一個有限集合{(A1,C1),(A2,C2),…,(An,Cn)},簡記為RV[(A1,C2),(A2,C2),…,(An,Cn)],其中Ai(i=1,2,…,n)表示屬性名,Ci是對應于屬性Ai的Vague可信度名,dom(Ci)=[tv(xi),1-fv(xi)]。
定義3:Vague關系模式RV[(A1,C1),(A2,C2)…,(An,Cn)]上的Vague關系RV是(dom(A1),dom(C1)×,(dom(A2),dom(C2)×…×(dom(An),dom(Cn))的一個Vague子集。
定義4:Vague關系Rv的元素稱為Vague元組,簡稱為元組,可記為:ti=((ai1,ci1),(ai2,ci2),…,(ain,cin),cin+1),其中i=1,2,…,m,m為R的基數,cin+1為元組ti的Vague隸屬度。
表1是一個Vague關系的例子。
三 基于Vague集的結構化查詢語言(VSQL)
SQL(Structured Query Language)結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。
SQL語言包含四個部分:一是數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句;二是數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句;三是數據查詢語言(DQL),例如:SELECT語句;四是數據控制語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。
借助于Vague隸屬度和Vague閾限,基于Vague集,把DDL和DML擴充為VDDL和VDML。
1 Vague集的數據定義語言(VDDL)
VDDL是基于Vague集的模糊數據定義語言,主要包括以下內容。
第一,定義模糊表。
CREATE TABLE <模糊表名>(<列名1><類型名> [NOT NULL][,<列名2><類型名>[NOT NULL]] …);
其中<類型名>可以為傳統的數據類型或模糊數據類型。
表1的employee關系可以定義如下:
CREATE TABLE employee(NAME CHAR(10)NOT NULL,AGE FNUMBER,HEIGHT FNUMBER,CAPABILTY FSCALAR,SALARY FNUMBER,Vague隸屬度 VDEGREE);
第二,修改模糊表結構。
ALTER TABLE <模糊表名> ADD <列名> <類型名>;
第三,刪除表。
DROP TABLE <模糊表名>;
上述模糊關系表定義語言可以根據SQL標準進一步增加語句。
2.Vague集的數據操縱語言(VDML)
VDML是指基于Vague集的模糊數據操縱語言,主要包括模糊選擇、模糊插入、模糊刪除和模糊更新語句。
第一,模糊選擇語句。
SELECT[ALL|DISTINCT|DISMIN|DISAVG]*| <目錄列表>
FROM<模糊表名列>
[WHERE <模糊條件>[WITH ]]
[GROUP BY <分組列表>][HAVING<模糊分組條件>[WITH 1]]
[ORDER BY<模糊表達式>[ASC|DESC]…];
設有兩個Vague值X=[tx,1-fx]和Y=[tY,1-fY]若tx≥tY,則X≥Y。其中?為Vague閾限,由用戶指定。SELECT語句選擇滿足模糊條件且元組Vague隸屬度≥?的那些元組,然后將出現在<目錄列表>中的屬性輸出。為了避免重復,VSQL語言擴充了四個關鍵字。
若帶ALL短語,則輸出所有滿足模糊條件的元組。缺省值為ALL。
若帶DISTINCT短語,則輸出最高隸屬度的元組。
若帶DISMIN短語,則輸出最低隸屬度的元組。
若帶DISAVG短語,則輸出的隸屬度為所有重復元組隸屬度的平均值。
例如:查找所有高個子的年輕人的姓名。
SELECT NAME
FROM employee
WHERE AGE=Young and HEIGHT=Tall WITH[0.6,1];
結果為:{[0.8,1]/Bill ,[0.8,0.9]/Jack}。
第二,模糊插入語句。
INSERT INTO <模糊表名>[(<列表>)] VALUES(<模糊表達式表>)|<子查詢>;
其中<子查詢>的目標列表的列數必須與INSERT語句的列表的列數相同。
例如:插入John的信息。
INSERT INTO employee VALUES(‘John’,Young,170,Fair,Middle,[0.7,0.9]);
第三,模糊刪除語句。
DELETE FROM <模糊表名> [WHERE<模糊條件> WITH]
若忽略WHERE子句,則刪除模糊表中的所有元組。
第四,模糊更新語句。
UPDATE <模糊表名>
SET <列名1>=<值表達式1>[,<列名2>=<值表達式2>]…
[WHERE <模糊條件> WITH]];
例如:將Smith的年齡修改為Middle,能力修改為Fair。
UPDATE employee
SET AGE=Middle,CAPABILTY=Fair
WHERE NAME=‘Smith’;
經典關系數據庫的查詢操作是在結果關系中保留滿足給定條件的元組,而在基于Vague集的數據庫選擇操作定義中,則是在結果關系中保留小于等于Vague閾限的所有元組。
四 結束語
Vague集的最大特點是能同時給出支持和反對的證據,因而能更為全面地表達模糊信息?;赩ague集的模糊結構化查詢語言VSQL可以應用于人工智能的各個分支,如機器學習、決策分析、知識獲取以及模式匹配等方面。
為了查詢Vague數據庫中的信息,本文提出了一種基于Vague集的模糊數據庫查詢語言VSQL,為進一步的模糊數據操縱提供了很好的基礎;現在SQL3的標準已經制定,新的標準中使得數據庫中數據類型的定義更加靈活,如何在SQL3的基礎上擴展基于Vague集的模糊關系數據庫語言是進一步研究的重點。
參考文獻
[1]L. A. Zadeh. Fuzzy sets [J].Information and control, 1965(8)
[2]W. L. Gau, D.J.Buehrer.Vague sets[J].IEEE Transactions on System Man and Cybernetics, 1993(23)
[3]Faxin Zhao and Z.M.Ma. Vague Query Based on Vague Relational Model[J].Advances in Intelligent and Soft Computing, 2009(116)
[4]Lu A, Ng W. Vague sets or intuitionist fuzzy sets for handling vague data:which one is better[A].Lecture Notes in Computer Science, 2005
[5]Faxin Zhao,Z.M.Ma*,Li Yan . A Vague Relational Model and Algebra[J].IFuzzy Systems and Knowledge Discovery, 2007(1)
[6]Prade H,Testemale C.Generalizing database relational algebrafor the treatment of incomplete/uncertain information and vague queries[J].Information Science,1984(2)
[7]Bosc P,Pivert 0.About projection—selection—join queries addressed to possibilistic relational databases[J].IEEE Transactions on Fuzzy Systems,2005(1)
[8]楊寧、毛宇光.基于Vague集的廣義模糊關系數據模型[J].計算機工程與應用,2005.41(11)
[9]趙法信、馬宗民、呂艷輝.基于Vague數據庫的代數查詢語言[J].小型微型計算機系統,2008.29(10):1893~1899
[10]趙法信.基于Vague關系數據模型的除操作研究[J].計算機工程,2012(14)
[11]趙法信、馬宗民.基于Vague關系數據模型的聚集操作研究[J].東北大學學報(自然科學版),2006(12)
〔責任編輯:李錦雯〕