毛金玲
摘要:本文深入研究了關(guān)系數(shù)據(jù)庫的關(guān)鍵字檢索的檢索機制和
關(guān)鍵技術(shù),包括構(gòu)建全文索引、構(gòu)建數(shù)據(jù)庫模式圖、查詢語言及查詢結(jié)果生成等等。通過分析相關(guān)檢索系統(tǒng)的實現(xiàn)策略,給出了面向關(guān)系數(shù)據(jù)庫的關(guān)鍵字查詢的形式化描述,設(shè)計了支持關(guān)鍵字檢索的系統(tǒng)架構(gòu)和核心構(gòu)成組件,主要包括數(shù)據(jù)庫索引、關(guān)鍵字檢索和結(jié)果生成。
關(guān)鍵詞:關(guān)系數(shù)據(jù)庫 ?關(guān)鍵詞查詢 ?數(shù)據(jù)庫索引
1 系統(tǒng)總體設(shè)計
人們在求解一個復雜問題時,通常采用的是逐步分解、分而治之的方法。也就是把一個大問題分解成若干個比較容易求解的小問題,然后分別求解。設(shè)計一個復雜的系統(tǒng)時,往往也是把整個系統(tǒng)劃分為若干個功能較為單一的功能模塊,然后分別予以設(shè)計、實現(xiàn),這就是模塊化設(shè)計。本系統(tǒng)也采用這種模塊化設(shè)計方式。
■
圖1 ?面向關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)框圖
2 數(shù)據(jù)庫設(shè)計
本系統(tǒng)為面向關(guān)系數(shù)據(jù)庫的關(guān)鍵字查詢系統(tǒng),在實驗中本文選取了IMDB 數(shù)據(jù)集,為了進行實驗,將數(shù)據(jù)集整理為以下七個表數(shù)據(jù)結(jié)構(gòu)。
實驗數(shù)據(jù)集(電影信息數(shù)據(jù)庫):
create table Actor( ? ? //演員表
actorname varchar(50) Primary Key ; ? //演員姓名key
sex varchar(2); ? ? //性別
mvname varchar(50); ? ?//出演電影或電視劇名
mvyear varchar(10); ? ?//電影上映時間
mvactorname varchar(10); ? //電影中人物姓名
position varchar(20); ? ?//電影中人物排名
made varchar(10); ? //TV 或是Video
setname varchar(50); ? ? //出演電視劇集名
episode varchar(10); ? //出演電視劇集
date varchar(10); ? ? //電視劇播出日期
classification varchar(30); ?//(achieve football)
)
creat table Consume( ? ?//設(shè)計師
consumename varchar(20) Primary Key; ? ? //設(shè)計師姓名key
mvname varchar(20); ? ? //電影名或電視劇名
mvyear varchar(10); ? ? //上映日期
setname varchar(20); ? ?//電視劇集名
episode varchar(10); ? //電視劇集
productiondate varchar(10); ?//電視劇播放日期
classification varchar(30); ? ? //(as M...)
made varchar(10); ? ?///(V/TV/uncredited)
)
creat table Director( ? //導演信息
directorname varchar(20) Primary Key; ? //導演姓名key
mvname varchar(20); ? ? ?//電影或電視劇名
mvyear varchar(10); ? ? ? //上映日期
setname varchar(20); ? ?//電視劇集名
episode varchar(20); ? ?//電視劇集
made varchar(10); ? ?//(V/TV/VG)
explantaion varchar(30); ? ? ?//(as M...)
)
creat table Business( ? ? //投資
mvname varchar(20) Primary Key; ? ? ?//電影名key
productiondate varchar(20); ?//拍攝日期
company varchar(50); ? ? ?//出品公司
studiodate varchar(50); ? ? //上映日期
masterpiece varchar(1000);///OW
budget varchar(20); ? ? ?//預算
ad varchar(50); ? ? ///AD
general_revenue varchar(20); ? //收入
wg varchar(50); ?//WG
)
creat table Editor( ? ?//編輯
editorname varchar(20) ?Primary Key; ? ? //編輯名
mvname varchar(20); ? ? ? //電影或電視劇名key
mvyear varchar(10); ? ? ?//上映日期
made varchar(10); ? //(V/TV/video)
setname varchar(20); ? //電視劇集名key
episode varchar(20); ? //電視劇集key
explantaion varchar(30); ? //(as M...)
)
creat table Color { ?//顏色信息
mvname varchar(20); ? ?//電影或電視劇名key
mvyear varchar(10); ? ? //上映日期
setname varchar(20); ? //電視劇集名key
episode varchar(20); ?//電視劇集key
color varchar(20); ? //顏色分類color或black and white
explantaion varchar(10); //顏色分類之后的()中有(HD)等,(HD)是高清
Primary Key(mvname,setname,episode);
}
creat table Keyword( ? ? //關(guān)鍵詞
mvname varchar(20); ? ?//電影或電視劇名key
mvyear varchar(10); ? ?//上映日期
setname varchar(20); ? ?//電視劇集名key
episode varchar(10); ? ?//電視劇集key
keyword varchar(50); ? ?//關(guān)鍵詞
Primary Key(mvname,setname,episode);
)
3 數(shù)據(jù)庫索引設(shè)計
由于關(guān)系型數(shù)據(jù)庫對于文本屬性上全文索引的支持,所以在文本屬性可以直接利用數(shù)據(jù)庫中的全文索引。對于給定的關(guān)鍵字k,全文索引能檢索出查詢關(guān)鍵字所在位置。
對于數(shù)據(jù)庫中的表屬性,構(gòu)建索引的方式比較簡單,依賴于DBMS的IR索引。對于數(shù)據(jù)庫中具有文本屬性的列,在該列上建立全文索引。在進行關(guān)鍵字查詢時,對于給定的關(guān)鍵字,通過數(shù)據(jù)庫的全文索引,會返回包含該關(guān)鍵字的元組集合。
在進行關(guān)鍵字查詢的時候,對于用戶給定查詢關(guān)鍵字,系統(tǒng)首先要對給定的關(guān)鍵字進行定位,確定關(guān)鍵字所匹配的信息是模式項還是數(shù)值項。
例如,關(guān)鍵字{“Color”“Director”}的索引結(jié)構(gòu)如表1所示。
表1 ?關(guān)鍵字{“Color”“Director”}的索引結(jié)構(gòu)
■
4 關(guān)鍵字檢索設(shè)計
在搜索引擎行業(yè),所謂關(guān)鍵字,就是用戶在使用搜索引擎時輸入的、能夠最大程度概括用戶所要查找的信息內(nèi)容的字或者詞,是信息的概括化和集中化。關(guān)鍵字檢索作為一種易于使用的檢索方式,為大量普通用戶所喜愛。本文從關(guān)鍵字個數(shù)角度介紹現(xiàn)有的關(guān)鍵字檢索技術(shù)中最常見的單關(guān)鍵字查詢和多關(guān)鍵字查詢這兩種關(guān)鍵字檢索形式。
5 結(jié)果生成設(shè)計
在本文中,將查詢結(jié)果定義為元組連接樹。
元組連接樹(Joined Tuple Tree)是給定一個數(shù)據(jù)庫模式圖GS,一個元組連接樹T是一棵元組樹。其中,T中的每一條邊(ti,tj)(ti∈Ri,tj∈Rj)滿足以下兩個要求:
①(Ri,Rj)∈RS,
②ti∞tj∈Ri∞Rj。
同時這些元組連接樹滿足以下條件:
①完整性:用戶提交的所有關(guān)鍵字均出現(xiàn)在元組連接樹上;
②最小性:從元組連接樹中移除任何元組后的元組連接樹都不具有完整性。
6 結(jié)束語
通過分析相關(guān)檢索系統(tǒng)的實現(xiàn)策略,設(shè)計了支持關(guān)鍵字檢索的系統(tǒng)架構(gòu)和核心構(gòu)成組件,主要包括數(shù)據(jù)庫索引、數(shù)據(jù)庫模式圖、關(guān)鍵字檢索和結(jié)果生成。
參考文獻:
[1]吳清怡,馬良荔,孫煜飛.基于數(shù)據(jù)關(guān)系表的XML查詢算法[J].遼寧工程技術(shù)大學學報(自然科學版),2013(01).
[2]林子雨,楊冬青,王騰蛟,張東站.基于關(guān)系數(shù)據(jù)庫的關(guān)鍵詞查詢[J].軟件學報,2010(10).
[3]張穎,李昕.一種關(guān)系數(shù)據(jù)庫上的關(guān)鍵詞查詢排序方法[J].遼寧工業(yè)大學學報(自然科學版),2013(05).