專利名稱:具智能查詢能力的數(shù)據(jù)庫查詢系統(tǒng)與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)庫查詢系統(tǒng)與方法,尤其涉及一種具智能査詢能力, 可自動產(chǎn)生輸入的査詢對象所對應的查詢組合的數(shù)據(jù)庫査詢系統(tǒng)與方法。
背景技術(shù):
隨著計算機運用普及化,資料數(shù)據(jù)的記錄漸漸由記錄于紙本文件轉(zhuǎn)為記錄 于電子媒介(或文件),各類數(shù)據(jù)可記錄于這些電子媒介(或文件)而匯整為數(shù)據(jù) 庫。數(shù)據(jù)庫里最常使用的功能為査詢數(shù)據(jù),使用者可通過下達査詢指令,例如
以SQL指令査詢,而由數(shù)據(jù)庫擷取相關(guān)聯(lián)的數(shù)據(jù)。舉例來說,將問巻調(diào)査數(shù)據(jù), 包括受測者的性別、年齡、嗜好、收入、以及每周看電影次數(shù)等儲存于數(shù)據(jù)庫 中。使用者若想知道年齡層大于20歲的電影市場,可通過下達簡單的査詢指 令得矢卩,例如Select Movie—Times—Week From Survey——Inf where age>20,
而使用者還可通過較復雜的査詢指令及運算,得知上述年齡層的潛在電影市場 總值,使用者可下達例如Select SUM(ICOME) From Survey—Inf where age>20 以得知年齡層在20歲以上的受測者收入總值,以及下達例如Select SUM(Movie—Times—Week) From Survey—Inf where age>20得知年齡層在20歲 以上的受測者每周觀看電影的總次數(shù),并將査詢道的20歲以上的受測者收入 總值減掉每周觀看電影的總次數(shù)所花費的金額,便可得到上述的潛在電影市場 總值。
然而,欲將數(shù)據(jù)庫的功用發(fā)揮的淋漓盡致,往往取決于下達的査詢指令的 良莠,而査詢指令的良莠取決于使用者對數(shù)據(jù)庫(例如字段意義)的了解,以及 下達的查詢指令的復雜度,例如以一個較復雜的SQL指令擷取數(shù)據(jù)可能較以多 個較簡單的SQL指令擷取數(shù)據(jù)費時,因此較復雜的SQL就可被視為質(zhì)量較差的 査詢指令。由此可見,人為操作因素可能會迫使在搜集與管理數(shù)據(jù)庫的數(shù)據(jù)的 效能大打折扣,因此需要一種可獨立于人為操作的數(shù)據(jù)庫査詢系統(tǒng)與方法,避 免與改善上述的缺失。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于輸入査詢對象后可自動產(chǎn)生對應的查詢 語句,用以在數(shù)據(jù)庫査詢數(shù)據(jù)。
為實現(xiàn)上述目的,本發(fā)明通過系統(tǒng)與方法兩方面達成,本發(fā)明所揭露的系 統(tǒng),包括有 一個智能記憶庫,用以儲存多個査詢對象及其對應的查詢語句-, 一個數(shù)據(jù)庫,用以儲存數(shù)據(jù)供使用者査詢;以及一個分析査詢模塊,用以產(chǎn)生
這些查詢對象對應的對象組合,并依據(jù)一個查詢算法產(chǎn)生對應的査詢語句,以 査詢此數(shù)據(jù)庫從而輸出一個結(jié)果集。其中,上述的分析查詢模塊更計算這些査 詢語句對應的査詢組合分數(shù),并紀錄最小的查詢組合分數(shù)對應的査詢語句于智 能記憶庫,及將由數(shù)據(jù)庫的輸出,匯集成一個結(jié)果集。
本發(fā)明所揭露的具智能査詢能力的數(shù)據(jù)庫査詢方法,包括有下列步驟首
先輸入至少一査詢對象,以査詢對應的至少一査詢語句;之后,若判斷有對應 的查詢語句,則依據(jù)這些查詢語句查詢數(shù)據(jù)庫,以輸出一個結(jié)果集;然后,若 判斷不具有對應的査詢語句,則依據(jù)這些査詢對象產(chǎn)生數(shù)個對象組合,并依據(jù) 一個查詢算法產(chǎn)生這些對象組合對應的査詢語句用以査詢數(shù)據(jù)庫;接著依據(jù)此 數(shù)據(jù)庫的輸出計算這些査詢語句對應的多個査詢組合分數(shù);最后,找出最小的 査詢組合分數(shù),并記錄此査詢組合分數(shù)對應的查詢語句,及輸出此査詢語句對 應的結(jié)果集。
由上述系統(tǒng)與方法可知,本發(fā)明通過產(chǎn)生査詢對象對應的査詢語句,并計 算及記錄這些査詢語句對應的査詢代價較小的一個査詢語句,而在往后以相同 的査詢對象査詢時,得以自動取出對應的査詢語句來査詢數(shù)據(jù),以避免人為操 作數(shù)據(jù)庫時,下達較差效益或錯誤的査詢語句而降低數(shù)據(jù)庫系統(tǒng)的使用效益。
有關(guān)本發(fā)明的詳細特征與實作,茲配合圖示在實施方式中詳細說明如下, 其內(nèi)容足以使本領(lǐng)域的技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容并據(jù)以實施,且根據(jù)本 說明書所揭露的內(nèi)容及圖式,任何本領(lǐng)域技術(shù)人員可輕易地理解本發(fā)明相關(guān)的 目的及優(yōu)點。
圖1為本發(fā)明實施例所提的數(shù)據(jù)庫査詢系統(tǒng)示意圖2為本發(fā)明實施例所提的數(shù)據(jù)庫查詢方法流程圖。
其中,附圖標記 110:智能記憶庫 120:數(shù)據(jù)庫 130:分析査詢模塊 132:査詢演算模塊 134:結(jié)果值比對模塊
具體實施例方式
為讓本發(fā)明的上述及其它目的、特征和優(yōu)點能更顯而易懂,下文特舉出一 實施例,并配合所附圖式,作詳細說明如下。
圖l為本發(fā)明實施例所提的數(shù)據(jù)庫査詢系統(tǒng)示意圖。請參照圖l,本實施
例的數(shù)據(jù)庫査詢系統(tǒng)(以后簡稱系統(tǒng))包括一個智能記憶庫110用來儲存輸入 的查詢對象以及這些査詢對象對應的查詢語句; 一個數(shù)據(jù)庫120,用來儲存數(shù) 據(jù)以供使用者査詢; 一個分析査詢模塊130,用來產(chǎn)生査詢對象對應的對象組 合,以及依據(jù)一個算法來產(chǎn)生對應的查詢語句,并用這些査詢語句在數(shù)據(jù)庫 120査詢出一個結(jié)果集。另外,分析査詢模塊130會依據(jù)每一査詢語句查詢所
需的時間以及回傳的結(jié)果集的成員個數(shù)計算出對應的查詢組合分數(shù)。這些査詢 組合分數(shù)代表使用這些査詢語句査詢數(shù)據(jù)庫120的代價。分析査詢模塊130 會找出這些査詢組合分數(shù)中最小值(在本實施例中,有較小的査詢組合分數(shù)代 表對應的査詢語句可以用較短的時間查詢出較精確的數(shù)據(jù)),并將這個最小的 査詢組合分數(shù)所對應的査詢對象及査詢語句儲存于智能記憶庫當中,并將査詢 到的結(jié)果集輸出予使用者。
接續(xù)上一段落,上述的分析査詢模塊130中還包括一個査詢演算模塊132 以及一個比對模塊134。査詢演算模塊132存放計算査詢對象對應的多種查詢 語句的算法,查詢演算模塊132可通過此算法依據(jù)査詢對象的關(guān)系產(chǎn)生一些對 象組合,以進一步依據(jù)這些對象組合產(chǎn)生對應的查詢語句。當分析査詢模塊 130產(chǎn)生數(shù)個查詢語句,并以這些査詢語句査詢數(shù)據(jù)庫120后得到査詢結(jié)果, 分析査詢模塊130會將這些查詢結(jié)果匯集成一個結(jié)果集。此時,比對模塊134 則會依據(jù)這些結(jié)果集的成員個數(shù)以及產(chǎn)生這些結(jié)果及所需時間產(chǎn)生對應的査 詢組合分數(shù),并更進一步判斷出最小的一個査詢組合分數(shù)及其對應的查詢語
句,用以將這個査詢語句記錄于智能記憶庫iio。當使用者下次輸入相同的査
詢對象時,系統(tǒng)便不需再次產(chǎn)生對應的查詢語句,而可直接由智能記憶庫提取 査詢語句來査詢數(shù)據(jù)。
附帶一提,本系統(tǒng)的智能記憶庫110可以例如是一個硬盤或是一個閃存等
可用以儲存査詢對象與對應的査詢語句的媒介,而査詢語句在本實施例中,例
如是一種結(jié)構(gòu)化查詢語言指令(Structured Query Language, SQL),任何本領(lǐng) 域的技術(shù)人員,當可依本實施例的教示加以修改,在此不限制其范圍。
圖2為本發(fā)明實施例所提的數(shù)據(jù)庫查詢方法流程圖。請參照圖2,本實施 例的數(shù)據(jù)庫査詢方法包括如下步驟首先,輸入至少一個查詢對象(步驟210), 這些査詢對象例如是使用者欲下達的選取對象以及范圍,而不是例如SQL等數(shù) 據(jù)庫査詢指令;此時,系統(tǒng)會判斷是否具有這些查詢對象對應的查詢語句,査 詢語句例如為SQL或其它用以査詢數(shù)據(jù)庫的查詢指令,若判斷具有對應的數(shù)個 查詢語句,則依據(jù)這些査詢語句查詢該數(shù)據(jù)庫,以輸出一結(jié)果集(步驟220); 若判斷不具對^Z的査詢語句,則依據(jù)這些査詢對象產(chǎn)生數(shù)個對象組合,并依據(jù) 一個査詢算法產(chǎn)生這些對象組合對應的査詢語句用以査詢數(shù)據(jù)庫(步驟230); 然后,依據(jù)數(shù)據(jù)庫輸出的數(shù)據(jù)來計算這些査詢語句對應的査詢組合分數(shù)(步驟 240);最后,找出最小的査詢組合分數(shù),并記錄此査詢組合分數(shù)對應的査詢語 句,及輸出査詢語句對應的結(jié)果集(步驟250)。
在本實施例中的査詢算法為依據(jù)輸入至少一個査詢對象與數(shù)據(jù)庫字段的 關(guān)系產(chǎn)生對象組合及其對應的査詢語句,其包括步驟如下首先尋找系統(tǒng)的數(shù) 據(jù)庫是否包含輸入的査詢對象;若判斷完全不包含這些査詢對象,則輸出一個 錯誤信息,例如數(shù)據(jù)庫不包括您欲尋找的數(shù)據(jù),請再次輸入。若判斷包含至
少一個査詢對象,則依據(jù)這些査詢對象在數(shù)據(jù)庫的數(shù)個表格的的關(guān)聯(lián)性產(chǎn)生對
象組合的排列,例如輸入A、 B、 C等三個査詢對象據(jù)關(guān)聯(lián)性的表格個數(shù)各自為 5個表格、1個表格、1個表格,此時對象組合例如為ABC,代表依關(guān)聯(lián)性高低 査詢,先査詢A對象相關(guān)的信息,再査詢B對象,之后再査詢C對象;最后, 依據(jù)這些對象組合產(chǎn)生對應的査詢語句。
承上述,系統(tǒng)分別以產(chǎn)生的各個查詢語句自動查詢數(shù)據(jù)庫,并將由數(shù)據(jù)庫 搜尋到的結(jié)果匯集為各個査詢語句對應的結(jié)果集,結(jié)果集包含的字段例如査詢 對象字段、查詢語句字段、所需時間字段、結(jié)果成員字段等,用以清楚表示使 用者査詢的項目、系統(tǒng)產(chǎn)生的數(shù)個査詢語句、搜尋數(shù)據(jù)庫所需時間、以及由數(shù)
據(jù)庫搜尋到的數(shù)據(jù)。另外,系統(tǒng)更會計算出在步驟240提及的査詢組合分數(shù)。 下達査詢語句的質(zhì)量取決于査詢時間以及找出的數(shù)據(jù)多少, 一般而言,使用者 希望以越短的時間找出精確的數(shù)據(jù),而當下達的査詢語句越精確,所找到的結(jié) 果成員的個數(shù)當然越少。舉例來說,在商品數(shù)據(jù)庫中欲尋找茶類飲品的售價信 息,若單以飲品作為收詢的資料,則找出的結(jié)果成員個數(shù)太過繁多,甚至可能 搜尋到碳酸飲料的售價數(shù)據(jù)。若以茶類飲品、寶特瓶包裝、以及銷售地點作為 査詢項目,則雖然找到信息較精確,然而卻增加搜尋數(shù)據(jù)庫的時間。査詢組合 分數(shù)就是用來代表以一個查詢語句查詢數(shù)據(jù)庫的質(zhì)量,其計算方式為將結(jié)果集 的結(jié)果成員個數(shù)加上査詢數(shù)據(jù)庫所耗費的時間加總。每一個査詢^^句均會有對 應的查詢組合分數(shù),在本實施例中較小的査詢組合分數(shù)對應的査詢語句的質(zhì)量 越高,而較大的查詢組合分數(shù)所對應的査詢語句的質(zhì)量越低。系統(tǒng)的分析查詢 模塊里的比對模塊會選出最低查詢組合分數(shù)所對應的查詢語句作為較佳的査 詢語句,而記錄于智能記憶庫。
綜上所述,本發(fā)明因采用智能記憶庫儲存具較佳査詢質(zhì)量的査詢語句,以 及通過分析查詢模塊自動產(chǎn)生查詢對象對應的數(shù)個査詢語句而輸入數(shù)據(jù)庫査
詢及判斷具較佳査詢質(zhì)量的査詢語句,進而加以儲存,而至少有以下優(yōu)點
(1) 使用者僅需輸入査詢項目即可自動產(chǎn)生査詢語言。
(2) 不需對數(shù)據(jù)庫的表格或字段作深入了解,即可進行操作。
(3) 系統(tǒng)自動產(chǎn)生具較高查詢質(zhì)量的査詢語句,避免使用較差效益的査 詢語句査詢數(shù)據(jù)庫而降低數(shù)據(jù)庫的查詢效益。
當然本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況 下,熟悉本領(lǐng)域的普通技術(shù)人員當可根據(jù)本發(fā)明做出各種相應的改變和變形, 但這些相應的改變和變形都應屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1. 一種具智能查詢能力的數(shù)據(jù)庫查詢系統(tǒng),適用于自動產(chǎn)生輸入的至少一查詢對象所對應的至少一查詢語句用以查詢數(shù)據(jù),其特征在于,該數(shù)據(jù)庫查詢系統(tǒng)包括一智能記憶庫,用以儲存該些查詢對象及其對應的該些查詢語句;一數(shù)據(jù)庫,用以儲存數(shù)據(jù)供使用者查詢;以及一分析查詢模塊,用以產(chǎn)生該些查詢對象對應的該些對象組合,并依據(jù)一查詢算法產(chǎn)生對應的該些查詢語句,以查詢該數(shù)據(jù)庫而輸出一結(jié)果集;該分析查詢模塊還計算該查詢語句對應的一查詢組合分數(shù),并紀錄最小的該查詢組合分數(shù)對應的該查詢語句于該智能記憶庫,及輸出該結(jié)果集。
2. 根據(jù)權(quán)利要求1所述的具智能査詢能力的數(shù)據(jù)庫查詢系統(tǒng),其特征在 于,該分析査詢模塊還包括一查詢演算模塊,用以依據(jù)該査詢對象的關(guān)系產(chǎn)生該對象組合,及產(chǎn)生該 對象組合對應的該查詢語句;以及一比對模塊,用以判斷出具最小該査詢組合分數(shù)對應的該査詢語句。
3. 根據(jù)權(quán)利要求1所述的具智能查詢能力的數(shù)據(jù)庫査詢系統(tǒng),其特征在 于,該智能記憶庫為一硬盤或一閃存。
4. 根據(jù)權(quán)利要求1所述的具智能査詢能力的數(shù)據(jù)庫査詢系統(tǒng),其特征在 于,該査詢語句為一結(jié)構(gòu)化査詢語言指令。
5. —種具智能査詢能力的數(shù)據(jù)庫查詢方法,適用于自動產(chǎn)生輸入的至少一查詢對象所對應的至少一查詢語句以用于在一數(shù)據(jù)庫査詢數(shù)據(jù),其特征在于,該數(shù)據(jù)庫査詢方法包括以下步驟 輸入至少一査詢對象;判斷具有對應的該査詢語句,則依據(jù)該査詢語句査詢該數(shù)據(jù)庫,以輸出一 結(jié)果集;判斷不具有對應的該查詢語句,則依據(jù)該査詢對象產(chǎn)生數(shù)個對象組合,并 依據(jù)一查詢算法產(chǎn)生該對象組合對應的該査詢語句用以査詢該數(shù)據(jù)庫; 依據(jù)該數(shù)據(jù)庫的輸出計算該査詢語句對應的一查詢組合分數(shù);以及 找出最小的該査詢組合分數(shù),并記錄該査詢組合分數(shù)對應的該査詢語句,及輸出該査詢語句對應的該結(jié)果集。
6. 根據(jù)權(quán)利要求1所述的具智能査詢能力的數(shù)據(jù)庫査詢方法,其特征在 于,該査詢算法包括以下步驟尋找該數(shù)據(jù)庫是否包含輸入的該査詢對象; 判斷完全不包含該査詢對象,則輸出一錯誤信息;判斷包含至少一該查詢對象,則依據(jù)該對象在該數(shù)據(jù)庫的數(shù)個表格的關(guān)聯(lián) 性產(chǎn)生該對象組合的排列;以及產(chǎn)生該對象組合對應的該査詢語句。
7. 根據(jù)權(quán)利要求1所述的具智能查詢能力的數(shù)據(jù)庫查詢方法,其特征在 于,該查詢組合分數(shù)為該結(jié)果集的結(jié)果成員的個數(shù)以及査詢時間的加總。
8. 根據(jù)權(quán)利要求1所述的具智能査詢能力的數(shù)據(jù)庫查詢方法,其特征在 于,該結(jié)果集的字段包括一査詢對象字段、 一査詢語句字段、 一所需時間字段、 一結(jié)果成員字段。
全文摘要
本發(fā)明公開了一種具智能查詢能力的數(shù)據(jù)庫查詢系統(tǒng)與方法。本發(fā)明所揭露的系統(tǒng),包括有一個智能記憶庫、一個數(shù)據(jù)庫、以及一個分析查詢模塊。使用者輸入查詢對象后,會先由智能記憶庫尋找有無對應的查詢語句,若有則以此查詢語句查詢數(shù)據(jù)庫,若無則將這些查詢對象交由分析查詢模塊產(chǎn)生數(shù)個查詢語句,并查詢數(shù)據(jù)庫而計算對應的查詢組合分數(shù),以找出查詢代價較小的查詢語句而記錄于智能記憶庫中。之后,若使用者再次以相同的查詢對象查詢時,可自動選出此查詢語句用以查詢數(shù)據(jù),避免使用較差效益的查詢語句查詢數(shù)據(jù)庫而降低數(shù)據(jù)庫的查詢效益。
文檔編號G06F17/30GK101206654SQ20061017079
公開日2008年6月25日 申請日期2006年12月22日 優(yōu)先權(quán)日2006年12月22日
發(fā)明者葉建華, 邱全成 申請人:英業(yè)達股份有限公司