韋美雁,周新林
(1.湖南科技學(xué)院電子與信息工程學(xué)院,永州 425199;2.祁陽縣馬江中學(xué),永州 426100)
基于數(shù)據(jù)方差的數(shù)據(jù)庫模糊查詢技術(shù)應(yīng)用
韋美雁1,周新林2
(1.湖南科技學(xué)院電子與信息工程學(xué)院,永州425199;2.祁陽縣馬江中學(xué),永州 426100)
在對關(guān)系數(shù)據(jù)庫進行查詢時,經(jīng)常會有查詢條件中含有自然語言的模糊性的詞語,如“很高,非常優(yōu)秀,一般”等。一般是利用模糊集理論去計算模糊的查詢條件,即對數(shù)據(jù)庫查詢進行模糊擴展,在查詢過程中通過計算關(guān)系中每個元組相應(yīng)字段針對模糊條件的匹配度,然后根據(jù)閾值來確定結(jié)果集。但在實際查詢時,會出現(xiàn)復(fù)合條件的模糊查詢,如簡單地用合取式查詢和析取式查詢,有些情況下會查詢不出滿意的結(jié)果。例如“在學(xué)生關(guān)系中查找數(shù)學(xué)和計算機學(xué)得都好的學(xué)生”,若數(shù)學(xué)考試很難,沒有高分,就可能找不出滿足條件的學(xué)生。本文通過對查詢字段的數(shù)據(jù)利用方差標準化,較好地解決了這一問題。
1965年,Zadeh首先提出了模糊集[1]的理論,其主要用于研究現(xiàn)實世界中的一些模糊不清的問題。模糊理論與經(jīng)典理論相比,更接近人類思維和自然語言系統(tǒng),因此更適合于模仿人類的思維推理。
1.1模糊集合
定義1設(shè)U是論域,稱映射
確定了一個U上的模糊子集A。映射μA稱為A的隸屬函數(shù),μA(x)稱為x對A的隸屬程度,簡稱隸屬度。
模糊子集A由隸屬函數(shù)μA唯一確定,故認為二者是等同的。
定義2設(shè)A是論域U上的模糊子集,?α∈[0,1],Aα={x∈U|fA(x)≥α}?U稱為A的α截集,稱α為置信水平。
α截集Aα是一個經(jīng)典集合,由隸屬度不小于α的成員構(gòu)成,說明在α水平下x屬于模糊子集A,記為x∈Aα,反之x?Aα。
1.2模糊查詢
將模糊查詢條件轉(zhuǎn)換成模糊SQL語句,其基本的語句組成和標準SQL語句類似,一般形式可表示如下:
SELECT(C1,C2,… ,Cn)FROM(relations)WHERE(fuzzy condition)WITH(α)
其中relations是一個精確或模糊關(guān)系;Ci是relations上的屬性;fuzzy condition是模糊條件,可以包含模糊關(guān)系運算符(is)、模糊謂詞及連接詞(AND,OR);α∈[0,1]為閾值,其作用是使查詢結(jié)果中匹配度大于α的記錄作為結(jié)果輸出。
例:給定一個學(xué)生成績關(guān)系(student)如表1。
表1 關(guān)系(student)
下面利用學(xué)生成績關(guān)系(student)來舉例說明模糊查詢過程。
2.1數(shù)據(jù)的標準化處理
由于每門課程考試的試題難度存在差異,體現(xiàn)在考試的成績上就也會存在差異。如表1中數(shù)學(xué)的最高分是80,且普遍成績不高,而物理的最高分是93,基本上都不錯。如果查詢“在學(xué)生關(guān)系中查找數(shù)學(xué)和物理學(xué)得都好的學(xué)生”,按文獻[3]的方法就查無結(jié)果。
其實把每門課程的分數(shù)整體平移是不會改變這種差異性。因此,我們可以做如下標準化處理。將每門課程分數(shù)的均值平移到同一個基點,這個基點取所有課程分數(shù)均值的均值(記為)。每門課程分數(shù)的方差不同導(dǎo)致每門課程分數(shù)的1分對總分的貢獻度是不同的,用方差壓縮的思想可每門課程分數(shù)的方差 (記為δj,j=1,…,N)調(diào)整到同一水平。這一水平我們選取所有課程分數(shù)方差的均值(記為δ0),然后對所有課程分數(shù)進行調(diào)整。記bij為第j門課程第i個學(xué)生的原始分,那么經(jīng)過這次調(diào)整后的分數(shù)bij'為:
按公式(1)可將表1中的各門課程的成績標準化,得到表2。
表2 標準化后的關(guān)系(student)
2.2簡單模糊查詢
在表1中查找“計算機成績好的學(xué)生”,模糊SQL可表示為:
對于關(guān)系student上的元組,計算屬性“COMP”關(guān)于“good”的匹配度,隸屬函數(shù)可表示為:
對于關(guān)系 student中的每個元組,計算屬性“COMP”屬性值關(guān)于模糊條件對應(yīng)隸屬函數(shù)的匹配值見表3。
表3
最后根據(jù)閾值α得到結(jié)果集合中匹配度大于等于0.5的有第2,7,8三個元組。
2.3復(fù)合條件模糊查詢
在查詢條件中使用AND和OR等連接詞可將多個查詢條件組合成復(fù)合查詢條件,如“在學(xué)生關(guān)系中查找數(shù)學(xué)和計算機學(xué)得都好的學(xué)生”,其模糊SQL可表示為:
復(fù)合查詢條件中涉及關(guān)系中的多個屬性,則需要分別計算每個元組的相應(yīng)屬性值相對模糊條件的匹配度,進而計算綜合匹配度。當(dāng)連接詞分別為AND和OR時,綜合匹配度的計算方法為:
其中mi表示元組R的第i個屬性值對于模糊條件隸屬函數(shù)的匹配度,“∧”表示取小,“∨”表示取大。
對于關(guān)系student上的元組,首先需要分別計算屬性“MATH”和“COMP”關(guān)于“good”的隸屬度和,隸屬函數(shù)可表示為公式(2)。計算結(jié)果見表4。
然后將每個元組相應(yīng)屬性的隸屬度值利用公式(3)計算每個元組與模糊查詢條件的匹配度,結(jié)果見表5。
其中匹配度大于等于閾值的元組是滿足模糊查詢條件的結(jié)果集合,有S2和S7。如按照文獻[3]的方法進行查詢,則查不出以上結(jié)果。
表4
表5
3結(jié)語
通過對數(shù)據(jù)庫查詢語言進行擴展,可以利用自然語言對關(guān)系數(shù)據(jù)庫進行模糊查詢。但客觀中同一關(guān)系中的不同屬性的取值存在差異,使得查詢結(jié)果不一定準確。本文通過方差壓縮的思想對原數(shù)據(jù)進行標準化處理后再進行模糊查詢,經(jīng)舉例驗證,取得了較好的效果。
[1]Zadeh.L.A..Fuzzy Sets[J].Information and Control,1965,338-353.
[2]謝季堅,劉承平.模糊數(shù)學(xué)方法及其應(yīng)用[M].武漢:華中理工大學(xué)出版社,2000.
[3]劉曉慧.數(shù)據(jù)庫模糊查詢技術(shù)應(yīng)用[J].電腦知識與技術(shù),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)
湖南省自然科學(xué)基金項目(No.12JJ3077)、湖南省教育廳科研課題(No.13C335)
1007-1423(2015)32-0029-04
10.3969/j.issn.1007-1423.2015.32.007
韋美雁(1974-),女,湖南永州人,副教授,碩士,從事領(lǐng)域為數(shù)據(jù)庫技術(shù)及GIS系統(tǒng)研究
2015-10-20
2015-10-30
在模糊查詢條件下,針對同一關(guān)系中的不同屬性的取值的差異性造成查詢結(jié)果不準確的問題,通過方差壓縮的思想對原數(shù)據(jù)進行標準化處理后再進行模糊查詢,并進行實例驗證。
關(guān)系數(shù)據(jù)庫;模糊查詢;隸屬函數(shù);匹配度;方差
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.