引言
在計算機應用領域中,由專業(yè)人員實現(xiàn)對數(shù)據(jù)庫查詢的編程技術,我們就以關系數(shù)據(jù)庫進行數(shù)據(jù)處理來舉例說明,大多數(shù)情況下都使用結構化查詢語言SQL(StructuredQueryLanguage)語言,SQL語言是一種在關系數(shù)據(jù)庫中定義和操縱數(shù)據(jù)的標準語言,其最主要、最核心的部分就是查詢功能。當針對某一個數(shù)據(jù)庫執(zhí)行查詢時,系統(tǒng)按照特定的組合、條件表達式或次序進行檢索,依此用來返回我們所要尋找和感興趣的數(shù)據(jù)信息。
1查詢舉例
設有一個SPJ數(shù)據(jù)庫,包括S、P、J、SPJ四個數(shù)據(jù)表,s供應商表由SNO(供應商代碼)、SNAME(供應商姓名)、STATUE(供應商狀態(tài))和CITY(供應商所在城市)組成;P零件表由PNO(零件代碼)、PNAME(零件名)、COLOR(顏色)和WEIGHT(重量)組成;J工程項目表由JNO(工程項目代碼)、JNAME(工程項目名)和CITY(工程項目所在城市)組成;SPJ供應情況表SNO(供應商代碼)、PNO(零件代碼)、JNO(工程項目代碼)和QTY(供應數(shù)量)組成。如果想要找到“沒有使用天津供應商生產(chǎn)的紅色零件的工程號JNO”的數(shù)據(jù)信息,那么,可以使用以下一種SQl語句來實現(xiàn)查詢:
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ. JNO= J .JNO
AND SNO IN
(SELECT SNO
FROM S
WHERE CITY=‘天津’)
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR =‘紅色’));
從上面的例子中可知,若用戶要在線訪問數(shù)據(jù)庫,就必須使用SQL語句在數(shù)據(jù)庫上查詢,那么該系統(tǒng)就要求用戶了解數(shù)據(jù)庫模式的基本知識,而且還要求用戶能夠熟練、靈活的使用SQL語句。但在實際的操作過程中,我們發(fā)現(xiàn)大多數(shù)用戶對關系數(shù)據(jù)庫基本不了解,更談不上熟練地使用結構化查詢語言SQL等知識,所以,該SQL查詢不適合廣大用戶。隨著互聯(lián)網(wǎng)技術的不斷發(fā)展,出現(xiàn)了以關鍵字查詢的數(shù)據(jù)庫技術。盡管數(shù)據(jù)庫關鍵字的查詢研究有很多代表性成果,但其查詢的核心思想都是基于圖和“簡化子樹”的,所有的關鍵字查詢技術的研究都是從數(shù)據(jù)圖中找到最好的查詢結果樹。
2核心思想
2.1關鍵字查詢
一個關鍵字查詢其實就是一個集合K,其查詢結果就是一個給定的數(shù)據(jù)圖G的一個子樹T,那么T就是給定集合K的簡化形式,簡而言之,T包含了K,但不會有T的子樹包含K。
所有的關鍵字查詢技術都是把我們定義好的關系數(shù)據(jù)庫當做一個數(shù)據(jù)圖G,圖G的節(jié)點是以元祖、關鍵字表示的。在我們進行查詢時,不同元祖間的連接是通過外鍵實現(xiàn),所以在它們之間就有一條邊存在。若一條元祖t有關鍵字k,那么t和k間就有連接存在。所以,一個關鍵字查詢的結果其實就是一個圖G的子樹,該子樹是圖G關于關鍵字K的簡化,也就是簡化子樹。簡化子樹的生成主要有兩種方法:“基于數(shù)據(jù)圖的方法”和“基于模式圖的方法”。
2.2基于數(shù)據(jù)圖的方法
數(shù)據(jù)庫關鍵字查詢技術的大多數(shù)研究都是采用了基于數(shù)據(jù)圖的方法來生成簡化子樹。這種方法就是對數(shù)據(jù)圖直接處理,從中枚舉簡化子樹,首先,把數(shù)據(jù)圖看成一個帶權重的數(shù)據(jù)圖,并且假設數(shù)據(jù)圖已經(jīng)被物化;其次,利用數(shù)據(jù)圖中的節(jié)點(元組)和邊(元組之間的主外鍵關聯(lián))的權重,作為關鍵字查詢找到top-k個代價最小的簡化子樹。
2.3基于模式圖的方法
利用數(shù)據(jù)庫模式創(chuàng)建連接表達式,再在DBMS上執(zhí)行連接表達式對應的SQL語句得到結果,具體的步驟為:第一步,枚舉所有可能包含查詢結果的連接表達式,在枚舉連接表達式時會對該表達式的尺寸做一個限制。若表達式尺寸太大,就說明包含的連接數(shù)目很多,那么這兩個元祖之間會產(chǎn)生大的距離。那么,即使這兩個元祖之間存在連接關系,但是實際的意義不是很大;第二步,根據(jù)相應的規(guī)則把第一步得到的連接表達式轉化為SQL的查詢語句,然后在對應的數(shù)據(jù)庫上執(zhí)行,要么SQL語句直接在DBMS上執(zhí)行,要么在中間件上執(zhí)行SQL語句,而中間件位于RDBMS層之上。因為要處理大量的關系代數(shù)表達式,所以許多研究都采用基于中間件的方法。
3結語
越來越多的用戶需要通過互聯(lián)網(wǎng)訪問在線數(shù)據(jù)庫來獲取信息。因此,本文主要針對數(shù)據(jù)庫關鍵字查詢技術做了一個簡單的分析和介紹,主要包括的內容有數(shù)據(jù)庫關鍵字查詢技術的核心思想,緊接著引出了關鍵字查詢的兩類方法,分別是基于數(shù)據(jù)圖的方法和基于模式圖的方法,并對這兩類方法做了介紹,并比較了各自的優(yōu)缺點,解決了傳統(tǒng)意義上的數(shù)據(jù)庫查詢技術所遇到的問題,具有一定的理論和實踐價值。
問題描述C保險公司業(yè)務系統(tǒng)中,團體保險明細查詢速度很慢。查詢時輸入保單號,要返回團體保單包含的所有被保險人的信息。較小的保單,包含1萬個被保險人,返回頁面需要等待7.5分鐘。較大的保單,包含100萬被保險人,返回頁面等待...
關鍵字: 數(shù)據(jù)庫 SQL 代碼 性能優(yōu)化觸發(fā)器(trigger)是SQL server 提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執(zhí)行不是由程序調用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作( i...
關鍵字: 觸發(fā)器 數(shù)據(jù)庫 SQL摘 要 :隨著電子商務的蓬勃發(fā)展,專門提供運輸平臺的寄遞行業(yè)呈現(xiàn)持續(xù)高速發(fā)展的態(tài)勢,一些非法分子通過郵政、快遞渠道寄遞違禁品的案件越來越多。隨著大數(shù)據(jù)時代的來臨,寄遞行業(yè)選用應用軟件系統(tǒng)對數(shù)據(jù)進行專業(yè)管理很有必要。文中設...
關鍵字: 寄遞行業(yè) 大數(shù)據(jù)挖掘 數(shù)據(jù)分析預警 查詢 網(wǎng)絡 數(shù)據(jù)抓取摘要:傳統(tǒng)的實驗室設備維護管理工作模式已經(jīng)大大落后于實驗室現(xiàn)代化科學管理的需求。為了適應實驗室設備的現(xiàn)代化管理需要,進一步提高實驗教學任務和管理效率,應用數(shù)據(jù)庫技術和面向對象程序設計技術,并采用客戶端/服務器結構,設計開...
關鍵字: 實驗室設備管理 信息系統(tǒng) ASP ACCESS 數(shù)據(jù)庫 查詢