【摘 要】傳統(tǒng)的數(shù)據(jù)庫(kù)都是以二值邏輯和精確數(shù)據(jù)為基礎(chǔ)的,不能表示許多模糊不清的對(duì)象。目前模糊數(shù)據(jù)庫(kù)技術(shù)是基于L. A. Zadeh所提出的模糊集,由于Vague集在表達(dá)模糊信息方面的能力比模糊集強(qiáng),所以基于Vague集的模糊數(shù)據(jù)庫(kù)具有廣闊的應(yīng)用前景。本文在Vague集和Vague關(guān)系基礎(chǔ)上,提出基于Vague集的模糊結(jié)構(gòu)化查詢(xún)語(yǔ)言VSQL,它是針對(duì)于Vague關(guān)系模型的一種標(biāo)準(zhǔn)SQL擴(kuò)展,可以應(yīng)用于機(jī)器學(xué)習(xí)、決策分析、知識(shí)獲取,以及模式匹配等方面。
【關(guān)鍵詞】Vague集 Vague關(guān)系模式 Vague關(guān)系 Vague結(jié)構(gòu)化查詢(xún)語(yǔ)言 Vague隸屬度
【中圖分類(lèi)號(hào)】TP399 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-4810(2012)24-0012-03
Cantor創(chuàng)立的集合論是無(wú)法處理具有模糊性的不確定信息和數(shù)據(jù)的,于是L. A. Zadeh在1965年提出了模糊集(fuzzy set)理論。在隨后的幾十年中,模糊集理論不斷發(fā)展和完善,并在許多領(lǐng)域里取得被成功地應(yīng)用。模糊集最主要的特征是:每一對(duì)象都有一個(gè)互不相同的隸屬于模糊集A的程度,隸屬函數(shù)μA(x)(x∈U)給每個(gè)對(duì)象分派一個(gè)[0,1]中的數(shù)作為它的隸屬度。
隨著模糊集理論在模糊數(shù)據(jù)處理方面的廣泛應(yīng)用,其本身所具有的一些不足也顯現(xiàn)出來(lái),其中之一就是糊集理論中單值隸屬度不能同時(shí)表示支持和反對(duì)的證據(jù)。為解決此問(wèn)題,臺(tái)灣學(xué)者W .L. Gau和D. J. Buehrer于1993年提出了Vague集(Vague set)理論。作為模糊集的進(jìn)一步推廣,Vague集具有更強(qiáng)的表達(dá)數(shù)據(jù)模糊性和不精確性的能力。在Vague集中,給每個(gè)對(duì)象同樣分派一個(gè)隸屬度,不同的是該隸屬度是[0,1]的一個(gè)子區(qū)間,這個(gè)子區(qū)間既給出了支持x∈U的證據(jù),同時(shí)也給出了反對(duì)x∈U的證據(jù)。與模糊集相比較,Vague集有如下特性:模糊集能表示的模糊信息,Vague集能表示;模糊集不能表示的信息,Vague集也能表示。
有關(guān) Vague 集的研究已取得了豐碩的成果,一方面是Vague 集的性質(zhì)研究,主要集中在相似度測(cè)量方面[3,4,5],另一方面是利用Vague擴(kuò)展關(guān)系數(shù)據(jù)模型,還有一個(gè)重要的研究方向是基于Vague集的查詢(xún)研究,Prade等人提出了一種基于模糊數(shù)據(jù)庫(kù)的查詢(xún)語(yǔ)言,并對(duì)其中的選擇和投影操作進(jìn)行了研究,Bosc等人基于可能性分布模糊數(shù)據(jù)庫(kù),對(duì)其中的選擇、投影和連接操作進(jìn)行了討論,國(guó)內(nèi)的趙法信等人在這方面也作出了一定的研究,基于Vague集的代數(shù)查詢(xún)語(yǔ)言中的選擇、投影和連接操作進(jìn)行了研究,Vague 除操作實(shí)現(xiàn)方法的研究,基于Vague關(guān)系數(shù)據(jù)模型的聚集操作研究。本文在擴(kuò)展Vague關(guān)系模型的基礎(chǔ)上,提出了基于Vague集的模糊結(jié)構(gòu)化查詢(xún)語(yǔ)言VSQL,并給出了相應(yīng)的定義,能夠方便高效地進(jìn)行查詢(xún)Vague信息。
一 Vague集
Vague集作為模糊集的一般化形式,具有更強(qiáng)的表達(dá)模糊信息的能力。下面給出Vague集的定義。
定義1令X是一個(gè)點(diǎn)(對(duì)象)的空間,其中的任一元素用x表示,X中的一個(gè)Vague集V用一個(gè)真隸屬函數(shù)tv和一個(gè)假隸屬函數(shù)fv表示。tv(x)是從支持x的證據(jù)所導(dǎo)出的x的隸屬度的下界,fv(x)則是從反對(duì)x的證據(jù)所導(dǎo)出的x的隸屬度的下界,tv(x)和fv(x)將區(qū)間[0,1]的一個(gè)實(shí)數(shù)與X中的每個(gè)點(diǎn)聯(lián)系起來(lái),且tv(x)+fv(x)≤1,即:
tv:X→[0,1] fv:X→[0,1] [2]
由定義可知,它將x的隸屬度限制在[0,1]的一個(gè)子區(qū)間[tv(x),1-fv(x)]內(nèi)。
Vague集V可以表示為: 。
例如:如果tv(x),1-fv(x)=[0.5,0.8],那么tv(x)=0.5,fv(x)=0.2。這一結(jié)果表明:x屬于Vague集V的程度為0.5,而它不屬于V的程度為0.2。用投票模型解釋為:對(duì)于一個(gè)方案,有10個(gè)專(zhuān)家進(jìn)行投票,有5個(gè)人支持,2個(gè)人反對(duì),有3個(gè)人棄權(quán)。
換句話(huà)說(shuō),我們可以這樣理解,x的精確隸屬度μv(x)或許不知道,但是它應(yīng)是tv(x)≤μv(x)≤1-fv(x),其中tv(x)+fv(x)≤1。
這樣,x的信息的精確性就十分清楚了,因?yàn)殛P(guān)于x的不確定性可以用1-fv(x)-tv(x)來(lái)表征。如果該差值小,表明我們相當(dāng)精確地知道x;如果該差值大,則表明關(guān)于x我們知道很少。如果1-fv(x)=tv(x),則表明我們精確地知道x,此時(shí),Vague集就退化為模糊集。如果1-fv(x)和tv(x)同時(shí)為1或0,這取決于x屬于還是不屬于V,此時(shí)關(guān)于x的信息是精確的,也就是說(shuō),Vague集退化為普通集合。Vague集的幾何解釋?zhuān)?jiàn)右圖。
二 Vague關(guān)系
由于客觀世界的復(fù)雜性,人們對(duì)許多事物的認(rèn)識(shí)具有一定的局限性。因此,數(shù)據(jù)庫(kù)系統(tǒng)管理的模糊數(shù)據(jù)也應(yīng)該體現(xiàn)人們認(rèn)識(shí)上的差異,帶有Vague可信度。
定義2:一個(gè)Vague關(guān)系模式Rv是由(屬性名,Vague可信度)組成的一個(gè)有限集合{(A1,C1),(A2,C2),…,(An,Cn)},簡(jiǎn)記為RV[(A1,C2),(A2,C2),…,(An,Cn)],其中Ai(i=1,2,…,n)表示屬性名,Ci是對(duì)應(yīng)于屬性Ai的Vague可信度名,dom(Ci)=[tv(xi),1-fv(xi)]。
定義3:Vague關(guān)系模式RV[(A1,C1),(A2,C2)…,(An,Cn)]上的Vague關(guān)系RV是(dom(A1),dom(C1)×,(dom(A2),dom(C2)×…×(dom(An),dom(Cn))的一個(gè)Vague子集。
定義4:Vague關(guān)系Rv的元素稱(chēng)為Vague元組,簡(jiǎn)稱(chēng)為元組,可記為:ti=((ai1,ci1),(ai2,ci2),…,(ain,cin),cin+1),其中i=1,2,…,m,m為R的基數(shù),cin+1為元組ti的Vague隸屬度。
表1是一個(gè)Vague關(guān)系的例子。
三 基于Vague集的結(jié)構(gòu)化查詢(xún)語(yǔ)言(VSQL)
SQL(Structured Query Language)結(jié)構(gòu)化查詢(xún)語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
SQL語(yǔ)言包含四個(gè)部分:一是數(shù)據(jù)定義語(yǔ)言(DDL),例如:CREATE、DROP、ALTER等語(yǔ)句;二是數(shù)據(jù)操作語(yǔ)言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語(yǔ)句;三是數(shù)據(jù)查詢(xún)語(yǔ)言(DQL),例如:SELECT語(yǔ)句;四是數(shù)據(jù)控制語(yǔ)言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語(yǔ)句。
借助于Vague隸屬度和Vague閾限,基于Vague集,把DDL和DML擴(kuò)充為VDDL和VDML。
1 Vague集的數(shù)據(jù)定義語(yǔ)言(VDDL)
VDDL是基于Vague集的模糊數(shù)據(jù)定義語(yǔ)言,主要包括以下內(nèi)容。
第一,定義模糊表。
CREATE TABLE <模糊表名>(<列名1><類(lèi)型名> [NOT NULL][,<列名2><類(lèi)型名>[NOT NULL]] …);
其中<類(lèi)型名>可以為傳統(tǒng)的數(shù)據(jù)類(lèi)型或模糊數(shù)據(jù)類(lèi)型。
表1的employee關(guān)系可以定義如下:
CREATE TABLE employee(NAME CHAR(10)NOT NULL,AGE FNUMBER,HEIGHT FNUMBER,CAPABILTY FSCALAR,SALARY FNUMBER,Vague隸屬度 VDEGREE);
第二,修改模糊表結(jié)構(gòu)。
ALTER TABLE <模糊表名> ADD <列名> <類(lèi)型名>;
第三,刪除表。
DROP TABLE <模糊表名>;
上述模糊關(guān)系表定義語(yǔ)言可以根據(jù)SQL標(biāo)準(zhǔn)進(jìn)一步增加語(yǔ)句。
2.Vague集的數(shù)據(jù)操縱語(yǔ)言(VDML)
VDML是指基于Vague集的模糊數(shù)據(jù)操縱語(yǔ)言,主要包括模糊選擇、模糊插入、模糊刪除和模糊更新語(yǔ)句。
第一,模糊選擇語(yǔ)句。
SELECT[ALL|DISTINCT|DISMIN|DISAVG]*| <目錄列表>
FROM<模糊表名列>
[WHERE <模糊條件>[WITH ]]
[GROUP BY <分組列表>][HAVING<模糊分組條件>[WITH 1]]
[ORDER BY<模糊表達(dá)式>[ASC|DESC]…];
設(shè)有兩個(gè)Vague值X=[tx,1-fx]和Y=[tY,1-fY]若tx≥tY,則X≥Y。其中?為Vague閾限,由用戶(hù)指定。SELECT語(yǔ)句選擇滿(mǎn)足模糊條件且元組Vague隸屬度≥?的那些元組,然后將出現(xiàn)在<目錄列表>中的屬性輸出。為了避免重復(fù),VSQL語(yǔ)言擴(kuò)充了四個(gè)關(guān)鍵字。
若帶ALL短語(yǔ),則輸出所有滿(mǎn)足模糊條件的元組。缺省值為ALL。
若帶DISTINCT短語(yǔ),則輸出最高隸屬度的元組。
若帶DISMIN短語(yǔ),則輸出最低隸屬度的元組。
若帶DISAVG短語(yǔ),則輸出的隸屬度為所有重復(fù)元組隸屬度的平均值。
例如:查找所有高個(gè)子的年輕人的姓名。
SELECT NAME
FROM employee
WHERE AGE=Young and HEIGHT=Tall WITH[0.6,1];
結(jié)果為:{[0.8,1]/Bill ,[0.8,0.9]/Jack}。
第二,模糊插入語(yǔ)句。
INSERT INTO <模糊表名>[(<列表>)] VALUES(<模糊表達(dá)式表>)|<子查詢(xún)>;
其中<子查詢(xún)>的目標(biāo)列表的列數(shù)必須與INSERT語(yǔ)句的列表的列數(shù)相同。
例如:插入John的信息。
INSERT INTO employee VALUES(‘John’,Young,170,F(xiàn)air,Middle,[0.7,0.9]);
第三,模糊刪除語(yǔ)句。
DELETE FROM <模糊表名> [WHERE<模糊條件> WITH]
若忽略WHERE子句,則刪除模糊表中的所有元組。
第四,模糊更新語(yǔ)句。
UPDATE <模糊表名>
SET <列名1>=<值表達(dá)式1>[,<列名2>=<值表達(dá)式2>]…
[WHERE <模糊條件> WITH]];
例如:將Smith的年齡修改為Middle,能力修改為Fair。
UPDATE employee
SET AGE=Middle,CAPABILTY=Fair
WHERE NAME=‘Smith’;
經(jīng)典關(guān)系數(shù)據(jù)庫(kù)的查詢(xún)操作是在結(jié)果關(guān)系中保留滿(mǎn)足給定條件的元組,而在基于Vague集的數(shù)據(jù)庫(kù)選擇操作定義中,則是在結(jié)果關(guān)系中保留小于等于Vague閾限的所有元組。
四 結(jié)束語(yǔ)
Vague集的最大特點(diǎn)是能同時(shí)給出支持和反對(duì)的證據(jù),因而能更為全面地表達(dá)模糊信息。基于Vague集的模糊結(jié)構(gòu)化查詢(xún)語(yǔ)言VSQL可以應(yīng)用于人工智能的各個(gè)分支,如機(jī)器學(xué)習(xí)、決策分析、知識(shí)獲取以及模式匹配等方面。
為了查詢(xún)Vague數(shù)據(jù)庫(kù)中的信息,本文提出了一種基于Vague集的模糊數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言VSQL,為進(jìn)一步的模糊數(shù)據(jù)操縱提供了很好的基礎(chǔ);現(xiàn)在SQL3的標(biāo)準(zhǔn)已經(jīng)制定,新的標(biāo)準(zhǔn)中使得數(shù)據(jù)庫(kù)中數(shù)據(jù)類(lèi)型的定義更加靈活,如何在SQL3的基礎(chǔ)上擴(kuò)展基于Vague集的模糊關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言是進(jìn)一步研究的重點(diǎn)。
參考文獻(xiàn)
[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集的廣義模糊關(guān)系數(shù)據(jù)模型[J].計(jì)算機(jī)工程與應(yīng)用,2005.41(11)
[9]趙法信、馬宗民、呂艷輝.基于Vague數(shù)據(jù)庫(kù)的代數(shù)查詢(xún)語(yǔ)言[J].小型微型計(jì)算機(jī)系統(tǒng),2008.29(10):1893~1899
[10]趙法信.基于Vague關(guān)系數(shù)據(jù)模型的除操作研究[J].計(jì)算機(jī)工程,2012(14)
[11]趙法信、馬宗民.基于Vague關(guān)系數(shù)據(jù)模型的聚集操作研究[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(12)
〔責(zé)任編輯:李錦雯〕