魏冬梅
摘要:傳統(tǒng)的查詢方法往往不能處理關(guān)系數(shù)據(jù)庫中大量模糊或不確定的信息。該文結(jié)合模糊理論和SQL查詢語句,提出一種數(shù)據(jù)查詢方法,并應(yīng)用于職工管理數(shù)據(jù)庫中,實(shí)現(xiàn)了對職工管理數(shù)據(jù)庫中具有模糊性和不確定的信息進(jìn)行查詢。
關(guān)鍵詞:模糊理論;模糊查詢;隸屬函數(shù);SQL
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)23-5552-04
Application of Data Query based on Fuzzy Theory
WEI Dong-mei
(School of Mathematic and Computer, Xihua University, Chengdu 610039, China)
Abstract:The traditional query in relation database is often unable to process amount of fuzzy and uncertain information. In this paper a method combined fuzzy theory and SQL is provided. We applied it to realize a query instance of fuzzy and uncertain infromation based on Staff management database.
Keywords: fuzzy theory; fuzzy query; membership function; SQL
在關(guān)系數(shù)據(jù)庫中,通常使用SELECT語句來實(shí)現(xiàn)查詢,基本結(jié)構(gòu)為:
SELECT <字段列表> FROM <表列表> WHERE <條件子句>
通過在條件子句部分增加比較運(yùn)算符(Between, Like, In等)條件,或與邏輯運(yùn)算符(Not, And, Or等)疊加來構(gòu)造更為復(fù)雜的查詢條件。然而,由于人們主要是使用自然語言,這種傳統(tǒng)的方法仍然不能直接處理模糊不確定的信息。比如:在職工管理數(shù)據(jù)庫中,要查詢“有點(diǎn)年輕,工資很高”的數(shù)據(jù),就不能直接實(shí)現(xiàn)。
為達(dá)到這種目的,獲取模糊查詢的結(jié)果,通常有兩種基本方法:一種是建立模糊數(shù)據(jù)庫模型,通過添加包含模糊屬性字段,修改其數(shù)據(jù)庫結(jié)構(gòu);第二種方法是基于模糊邏輯,依然建立精確的關(guān)系數(shù)據(jù)庫,通過構(gòu)造隸屬函數(shù)或?qū)QL語句進(jìn)行模糊化擴(kuò)展,將查詢條件通過模糊計(jì)算,轉(zhuǎn)化為一個模糊范圍,再進(jìn)行精確的SQL查詢。該文采用第二種方法,對職工管理數(shù)據(jù)庫含有模糊性的元素進(jìn)行定義,并通過Visual Foxpro 6.0將模糊查詢轉(zhuǎn)化成等價的SQL查詢語句,實(shí)現(xiàn)模糊查詢實(shí)例。
“增刪改”是數(shù)據(jù)庫的基本操作,為完成這些操作,需要在數(shù)據(jù)庫中查詢相應(yīng)記錄,并快速定位。當(dāng)前的關(guān)系數(shù)據(jù)庫基本查詢,對于諸如“性別”這類精確字段(性別只能為“男”或“女”),是非常容易實(shí)現(xiàn)的。若要查詢“年輕、工資高”這類信息,由于具有模糊性,是不能正確定位的。該文以模糊數(shù)學(xué)和模糊集為理論基礎(chǔ),依據(jù)合理自定義隸屬函數(shù)的方法,提出一種在結(jié)合模糊理論的SQL查詢方法,并在Microsoft Visual Foxpro6.0平臺實(shí)現(xiàn)查詢實(shí)例,處理流程如圖1所示。
圖1處理流程1.1模糊語言和模糊集
模糊語言L是包含4個參數(shù)的元組,可表示為:L={U,T,E,N},其中,令U是一個論域,T是模糊單詞、模糊術(shù)語的集合,E表示術(shù)語的字母和符號等聯(lián)結(jié)構(gòu)成的集合。N是T定義在U上的模糊關(guān)系,即:E→[0,1],且T≤U。
性別(“男”,“女”)是精確詞語,但年齡(年輕,中年,老年)或工資(低,中,高)都屬于模糊詞語。在所提供的數(shù)據(jù)庫中,字段(年齡,工資)具有模糊性。將這兩個模糊集定義如下:
SELECT職工號,姓名,部門,年齡,工資FROM人事信息,年齡隸屬,工資隸屬WHERE;
人事信息.職工號=年齡隸屬.職工號AND人事信息.職工號=工資隸屬.職工號;
AND年輕>=0.5+z AND高>=0.5+z ORDER BY人事信息.職工號DESC INTO TABLE DBF2本系統(tǒng)在Microsoft Visual Foxpro 6.0下實(shí)現(xiàn),“模糊查詢”模塊界面如圖6和圖7所示:
隨著智能數(shù)據(jù)庫的發(fā)展,模糊查詢和模糊化數(shù)據(jù)的處理及在計(jì)算機(jī)中的應(yīng)用必將會有更良好的推廣和發(fā)展空間。該文主要通過模糊理論和Microsoft Visual Foxpro6.0,結(jié)合SQL查詢語句實(shí)現(xiàn)了人員數(shù)據(jù)庫中模糊查詢的功能,提出一種基于關(guān)系數(shù)據(jù)庫的模糊查詢方法,有一定的借鑒作用。但文中所涉及的隸屬函數(shù),是自己設(shè)定的,有一定的主觀性,在適當(dāng)?shù)那闆r下,可以根據(jù)實(shí)際需要設(shè)置調(diào)整和適當(dāng)?shù)臄U(kuò)展。