劉曉慧
摘要:該文介紹了模糊集合理論相關知識及其在關系數(shù)據(jù)庫查詢中的應用,針對SQL語言的SELECT語句進行了模糊擴展。分析了簡單模糊查詢、復合模糊查詢、將模糊查詢轉換為精確查詢的方法并通過實例進行了驗證。
關鍵詞:關系數(shù)據(jù)庫;模糊查詢;隸屬函數(shù);閾值;匹配度
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)02-0255-03
The Application on Database Fuzzy Query Technology
LIU Xiao-hui
(Shenyang Institute of Engineering, Shenyang 110136, China)
Abstract: This article describes the knowledge of fuzzy set theory and its application on relational database queries,Fuzzy extension of the SELECT statement in the SQL language. Analyze the method of simple fuzzy query, composite fuzzy queries, fuzzy queries into precise query and verified by examples.
Key words: relational database; fuzzy query; membership function; threshold; matching degree
模糊集合的理論由美國加州大學著名教授L.A.Zadeh于1965年首先提出,主要用于研究現(xiàn)實世界中一些模糊不清的問題,使之清晰化,這一理論在信息論、自動控制等領域的研究與應用也得到了迅速發(fā)展。而將模糊理論應用于數(shù)據(jù)庫查詢,主要是將模糊查詢條件應用于傳統(tǒng)的以二值邏輯和精確的數(shù)據(jù)工具為基礎的數(shù)據(jù)庫中,得到符合條件的結果,例如“在學生關系中查找計算機成績較高的學生”,這里“較高”就是一個模糊的查詢條件。
1模糊集合理論
1.1模糊集合
所謂在論域U上的一個模糊子集A是指:?u∈U,都有μA(u)∈[0,1]與之相對應,并且稱為u屬于模糊子集A的隸屬度。即由映射:μA(u):U→[0,1] u→μA(u)
確定論域U的一個模糊子集A。
μA(u)=1,表示u完全屬于A;μA(u)=0,表示u完全不屬于A;0<μA(u)<1,表示u隸屬于A的程度。設A為論域U上的模糊集合,?α∈[0,1],Aα={u∈U| fA(u)≥α}?U,稱模糊集合A的α截集,稱α為置信度,即對于普通集合Aα有?u∈U當A(u)≥α時,說明在α水平下u屬于模糊集合A,記為u∈Aα,反之u?Aα。
1.2隸屬函數(shù)
隸屬函數(shù)是對模糊概念的定量描述,正確地確定隸屬函數(shù),是運用模糊集合理論解決實際問題的基礎。隸屬函數(shù)的確定過程允許存在一定的主觀意識,可以根據(jù)實際統(tǒng)計數(shù)據(jù)特征從幾種典型模糊分布曲線中選擇最為貼近的一種作為隸屬函數(shù),經(jīng)過實踐效果的檢驗進行了調(diào)整,即通過“學習”進行修改和完善,以得到更為確實的隸屬函數(shù)形式。典型的模糊分布有階梯型、指數(shù)型、正態(tài)型、線型、冪函數(shù)型、正弦型等。
1.3語言變量
1971年Zadeh提出模糊語義定量理論并定義了“語言變量”的概念,其算子的一般數(shù)學描述為:L=(U,T,E,N)
其中:U是論域,即語言主體的全體;T是語言值的模糊集合;E是構成語言的所有字母和符號序列的集合;N是E對U的模糊關系。對于T中值x的語義是U上的模糊子集M(x),則U中的元素y對M(x)的隸屬度可表示為:μM(x)(y)=μN(x,y)。例如:設論域U=[1, 100]是學生成績集合,T為成績的模糊集合,E={優(yōu)秀,良好,中等,一般,較差}。
1.4語氣算子
在模糊理論中將自然語言中的如“比較”、“非常”、“稍微”等詞看作是一種算子,稱為語氣算子Hλ,從程度上來限制模糊語義,
在不同等級上改變模糊語義的隸屬度,如模糊語義“高”可表示為“非常高”、“比較高”,“有點高”等。語氣算子是一個變換,即:HλA(x)=A(x)λ,當λ>1時稱Hλ為集中化算子,λ<1時稱Hλ為散漫化算子,一般將H4代表“極”,H2代表“很”,H1.25表示“相當”,H0.75代表“比較”,H0.5代表“有點”,H0.25代表“稍微有點”。
1.5模糊化算子
自然語言中常將“大約”、“近乎”、“差不多”等具有模糊意義的詞放在一個精確詞或語言變量之前,表示一個模糊的范圍,如“某學生計算機成績大約80分左右”,稱為F化算子??蓪崿F(xiàn)對精確語義的模糊化和模糊語義的模糊化。其中對于模糊語義的模糊化算子的一般形式可表示為:
對?x∈U ,μF(A)(x)=μE.A(x)=∪[μE(x,y)?μA(y)]
其中A是模糊集合,μA(y)是y對A的隸屬度,E是U上的相似模糊關系,相似函數(shù)μE(x,y)表示為:
2模糊SQL
SQL(Structured Query Language)作為現(xiàn)在大多數(shù)系統(tǒng)都支持的語言,已經(jīng)成為標準的數(shù)據(jù)庫語言。而關系數(shù)據(jù)庫也是使用最為廣泛數(shù)據(jù)庫形式,那么針對關系數(shù)據(jù)庫使用SQL并對其進行模糊擴展也就具有重要意義。對數(shù)據(jù)庫查詢進行模糊擴展,模糊SQL一般形式可以表示為:
SELECT C1,C2,…,Cn FROM T
WHEREfc
WITHα
其中T是一個精確或模糊關系;Ci表示T上的屬性;fc是一個模糊條件,可以包含模糊關系運算符(如“約等于≈”、“遠遠大于>>”等)、模糊謂詞(is)及連接詞(AND、OR);α∈[0,1]稱為閾值,由于查詢條件是模糊的,因此查詢結果也是一個模糊集合,集合中每個結果對于查詢條件fc的滿足程度即匹配度不同,設置閾值α的作用是使查詢結果中匹配度大于α的記錄作為結果輸出。
2.1簡單模糊查詢
例1:存在一個學生關系(student)如表1。
表1關系student
在表1中查找“計算機成績較好的學生”,模糊SQL可表示為:
SELECT姓名,計算機
FROM student
WHERE計算機is good
WITH 0.5
對于關系student上的元組,計算屬性“計算機”關于“good”的匹配度,隸屬函數(shù)可表示為:
計算關系student中每個元組的“計算機”屬性值關于模糊條件對應隸屬函數(shù)的匹配度見表2。
最后根據(jù)閾值α得到結果集合中匹配度大于等于0.5的有第2、3、7、8四個元組。
2.2復合條件模糊查詢
查詢條件中可以使用AND、OR等連接詞交多個查詢條件組合形成復合查詢條件,如在學生關系中“查找英語成績較差但總分
較高的學生”,模糊SQL表示為:
SELECT姓名,英語,總分
FROM student
WHERE英語is fail and總分is good
WITH 0.5
復合查詢條件中涉及關系中的多個屬性,這時就需要分別計算每個元組的相應屬性值針對模糊條件的匹配度,進而計算綜合匹配度,當連接詞分別為AND和OR時綜合匹配度的計算方法為:Mand(R)=∧(m1,m2,?,mn) Mor(R)=∨(m1,m2,?,mn)
其中mi表示元組R的第i個屬性值對于模糊項隸屬函數(shù)的匹配度。
2.3模糊查詢轉換為精確查詢
上述簡單模糊查詢和復合模糊查詢在對關系數(shù)據(jù)庫進行操作時需要對表中所有記錄進行計算,表中記錄多時會影響查詢效率,為減少計算量可以在查詢前將模糊條件轉換為精確條件,將大大提高查詢效率。將模糊條件轉換為精確條件可以使用隸屬函數(shù)及α截集求得模糊條件中屬性值的區(qū)間,那么精確查詢條件也就得到。如例1“計算機成績較好的學生”中的“較好”可根據(jù)隸屬函數(shù)和α求得其對應值區(qū)間為(μgood)0.5=[75,95],則模糊查詢可轉化為:
SELECT姓名,計算機
FROM student
WHERE計算機BETWEEN 75 AND 95
在關系student中查詢結果為2、3、7、8四個元組,同例1結果相同,接下來對四個元組計算匹配度,得到最終結果,結果仍與例1相同,但效率卻比例1要高。
3結束語
在數(shù)據(jù)庫模糊查詢中,將自然語言中模糊概念與數(shù)據(jù)庫中的精確概念建立了聯(lián)系,從而使查詢語言得到了擴展,本文針對這一理論介紹了簡單模糊查詢及復合模糊查詢的處理方法并做了驗證,同時介紹了模糊查詢轉換為精確查詢的方法。以上查詢方法還可以擴展到多表查詢、子查詢等,而關系中的屬性值的隸屬函數(shù)和模糊SQL中的閾值也可根據(jù)實際需要進行調(diào)整。
參考文獻:
[1]陳逸菲.基于模糊理論的關系數(shù)據(jù)庫查詢技術研究[D].南京:南京信息工程大學,2005.
[2]楊綸標,高英儀.模糊數(shù)學原理及應用[M].廣州:華南理工大學出版社,2004.
[3]申玉靜,周愛華.基于模糊數(shù)據(jù)庫的數(shù)據(jù)查詢設計[J].北京:計算機教育,2007(12):126-128.
[4]王昕.AFS理論研究及其在模糊查詢以及數(shù)據(jù)挖掘中的應用[D].大連:大連海事大學,2003.