韋美雁,周新林
(1.湖南科技學院電子與信息工程學院,永州 425199;2.祁陽縣馬江中學,永州 426100)
基于數據方差的數據庫模糊查詢技術應用
韋美雁1,周新林2
(1.湖南科技學院電子與信息工程學院,永州425199;2.祁陽縣馬江中學,永州 426100)
在對關系數據庫進行查詢時,經常會有查詢條件中含有自然語言的模糊性的詞語,如“很高,非常優秀,一般”等。一般是利用模糊集理論去計算模糊的查詢條件,即對數據庫查詢進行模糊擴展,在查詢過程中通過計算關系中每個元組相應字段針對模糊條件的匹配度,然后根據閾值來確定結果集。但在實際查詢時,會出現復合條件的模糊查詢,如簡單地用合取式查詢和析取式查詢,有些情況下會查詢不出滿意的結果。例如“在學生關系中查找數學和計算機學得都好的學生”,若數學考試很難,沒有高分,就可能找不出滿足條件的學生。本文通過對查詢字段的數據利用方差標準化,較好地解決了這一問題。
1965年,Zadeh首先提出了模糊集[1]的理論,其主要用于研究現實世界中的一些模糊不清的問題。模糊理論與經典理論相比,更接近人類思維和自然語言系統,因此更適合于模仿人類的思維推理。
1.1模糊集合
定義1設U是論域,稱映射

確定了一個U上的模糊子集A。映射μA稱為A的隸屬函數,μA(x)稱為x對A的隸屬程度,簡稱隸屬度。
模糊子集A由隸屬函數μA唯一確定,故認為二者是等同的。
定義2設A是論域U上的模糊子集,?α∈[0,1],Aα={x∈U|fA(x)≥α}?U稱為A的α截集,稱α為置信水平。
α截集Aα是一個經典集合,由隸屬度不小于α的成員構成,說明在α水平下x屬于模糊子集A,記為x∈Aα,反之x?Aα。
1.2模糊查詢
將模糊查詢條件轉換成模糊SQL語句,其基本的語句組成和標準SQL語句類似,一般形式可表示如下:
SELECT(C1,C2,… ,Cn)FROM(relations)WHERE(fuzzy condition)WITH(α)
其中relations是一個精確或模糊關系;Ci是relations上的屬性;fuzzy condition是模糊條件,可以包含模糊關系運算符(is)、模糊謂詞及連接詞(AND,OR);α∈[0,1]為閾值,其作用是使查詢結果中匹配度大于α的記錄作為結果輸出。
例:給定一個學生成績關系(student)如表1。

表1 關系(student)
下面利用學生成績關系(student)來舉例說明模糊查詢過程。
2.1數據的標準化處理
由于每門課程考試的試題難度存在差異,體現在考試的成績上就也會存在差異。如表1中數學的最高分是80,且普遍成績不高,而物理的最高分是93,基本上都不錯。如果查詢“在學生關系中查找數學和物理學得都好的學生”,按文獻[3]的方法就查無結果。
其實把每門課程的分數整體平移是不會改變這種差異性。因此,我們可以做如下標準化處理。將每門課程分數的均值平移到同一個基點,這個基點取所有課程分數均值的均值(記為)。每門課程分數的方差不同導致每門課程分數的1分對總分的貢獻度是不同的,用方差壓縮的思想可每門課程分數的方差 (記為δj,j=1,…,N)調整到同一水平。這一水平我們選取所有課程分數方差的均值(記為δ0),然后對所有課程分數進行調整。記bij為第j門課程第i個學生的原始分,那么經過這次調整后的分數bij'為:

按公式(1)可將表1中的各門課程的成績標準化,得到表2。

表2 標準化后的關系(student)
2.2簡單模糊查詢
在表1中查找“計算機成績好的學生”,模糊SQL可表示為:

對于關系student上的元組,計算屬性“COMP”關于“good”的匹配度,隸屬函數可表示為:

對于關系 student中的每個元組,計算屬性“COMP”屬性值關于模糊條件對應隸屬函數的匹配值見表3。

表3
最后根據閾值α得到結果集合中匹配度大于等于0.5的有第2,7,8三個元組。
2.3復合條件模糊查詢
在查詢條件中使用AND和OR等連接詞可將多個查詢條件組合成復合查詢條件,如“在學生關系中查找數學和計算機學得都好的學生”,其模糊SQL可表示為:

復合查詢條件中涉及關系中的多個屬性,則需要分別計算每個元組的相應屬性值相對模糊條件的匹配度,進而計算綜合匹配度。當連接詞分別為AND和OR時,綜合匹配度的計算方法為:

其中mi表示元組R的第i個屬性值對于模糊條件隸屬函數的匹配度,“∧”表示取小,“∨”表示取大。
對于關系student上的元組,首先需要分別計算屬性“MATH”和“COMP”關于“good”的隸屬度和,隸屬函數可表示為公式(2)。計算結果見表4。
然后將每個元組相應屬性的隸屬度值利用公式(3)計算每個元組與模糊查詢條件的匹配度,結果見表5。
其中匹配度大于等于閾值的元組是滿足模糊查詢條件的結果集合,有S2和S7。如按照文獻[3]的方法進行查詢,則查不出以上結果。

表4

表5
3結語
通過對數據庫查詢語言進行擴展,可以利用自然語言對關系數據庫進行模糊查詢。但客觀中同一關系中的不同屬性的取值存在差異,使得查詢結果不一定準確。本文通過方差壓縮的思想對原數據進行標準化處理后再進行模糊查詢,經舉例驗證,取得了較好的效果。
[1]Zadeh.L.A..Fuzzy Sets[J].Information and Control,1965,338-353.
[2]謝季堅,劉承平.模糊數學方法及其應用[M].武漢:華中理工大學出版社,2000.
[3]劉曉慧.數據庫模糊查詢技術應用[J].電腦知識與技術,2012,8(2):255-257.
Relational Database;Fuzzy Query;Membership Function;Matching Degree;Variance
Application of Database Fuzzy Query Technology Based on Data Variance
WEI Mei-yan1,ZHOU Xin-lin2
(1.College of Electronics and Information Engineering,Hunan University of Science and Engineering,Yongzhou 425199;2.The County of Qiyang Majiang Middle School,Yongzhou 426100)
湖南省自然科學基金項目(No.12JJ3077)、湖南省教育廳科研課題(No.13C335)
1007-1423(2015)32-0029-04
10.3969/j.issn.1007-1423.2015.32.007
韋美雁(1974-),女,湖南永州人,副教授,碩士,從事領域為數據庫技術及GIS系統研究
2015-10-20
2015-10-30
在模糊查詢條件下,針對同一關系中的不同屬性的取值的差異性造成查詢結果不準確的問題,通過方差壓縮的思想對原數據進行標準化處理后再進行模糊查詢,并進行實例驗證。
關系數據庫;模糊查詢;隸屬函數;匹配度;方差
Studies a question about multiple conditions fuzzy query.The inaccurate query result is caused by the difference about the value of the different attributes of the same relationship.Through the variance of compression of the original data for standardization,fulfills fuzzy query and verifies the examples.