專利名稱:數(shù)據(jù)庫的數(shù)據(jù)檢索方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地說涉及一種數(shù)據(jù)庫的數(shù)據(jù)檢索方 法和裝置。
背景技術(shù):
在數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)搜索時(shí),主要是對數(shù)據(jù)庫進(jìn)行物理讀、邏輯讀和預(yù) 讀幾個(gè)操作,其中,物理讀指的是從磁盤直接讀取,邏輯讀指的是從數(shù)據(jù)緩 存中進(jìn)行讀取,預(yù)讀指的是處理查詢之前預(yù)先從磁盤進(jìn)行讀取的操作。
現(xiàn)有的oracle數(shù)據(jù)庫中,數(shù)據(jù)檢索的執(zhí)行過程如圖1所示,包括以下步
驟
步驟Sll、語法分析。
分析語句的語法是否符合規(guī)范,衡量語句中各表達(dá)式的含義是否準(zhǔn)確。 步驟S12、語義分析。
檢測語句中涉及的所有數(shù)據(jù)庫對象是否存在,且用戶有相應(yīng)的權(quán)限。 步驟S13、視圖轉(zhuǎn)換。
將涉及^L圖的查詢語句轉(zhuǎn)換為相應(yīng)的對基表查詢語句。 步驟S14、表達(dá)式轉(zhuǎn)換。
將復(fù)雜的查詢表達(dá)式轉(zhuǎn)換為較為簡單的等效連接表達(dá)式。
步驟S15、選擇優(yōu)化器。
步驟S16、選擇連接方式和連接順序。
步驟S17、在全表范圍內(nèi)逐字段進(jìn)行檢索,并返回搜索結(jié)果。 可以看出,上述方法采用的搜索方式是全表檢索,這種方式一般需要較 多的邏輯讀次數(shù)和預(yù)讀次數(shù),需要花費(fèi)較長的時(shí)間,從而延長了檢索時(shí)間。
發(fā)明內(nèi)容
4有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)庫的數(shù)據(jù)檢索方法和裝置, 以解決現(xiàn)有技術(shù)由于需要全表檢索而導(dǎo)致檢索時(shí)間過長的問題。 本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的
一種數(shù)據(jù)庫中數(shù)據(jù)記錄的^r索方法,所述數(shù)據(jù)庫中各條數(shù)據(jù)記錄中的預(yù) 設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記錄的物理順序與所述 預(yù)定邏輯順序一致,所述方法包括
將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文件;
依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行檢索,在當(dāng)前關(guān)鍵字段在所述 預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí),停止檢索并返回關(guān)鍵字 段符合所述索引鍵值的數(shù)據(jù)記錄。
優(yōu)選的,上述方法中,預(yù)定關(guān)鍵字段設(shè)置有輔助信息,所述方法還包
括
在返回的數(shù)據(jù)記錄中,根據(jù)所述輔助信息進(jìn)行進(jìn)一步檢索,以確定符合 該輔助信息的數(shù)據(jù)記錄。
優(yōu)選的,上述方法中,所述預(yù)設(shè)關(guān)鍵字段為用戶名稱,或者用戶名稱和 用戶賬號的組合,在所述數(shù)據(jù)庫中具有唯一性。
優(yōu)選的,上述方法中,所述預(yù)定邏輯順序?yàn)殛P(guān)鍵字段首字母在字母表中 的位置順序。
優(yōu)選的,上述方法中,所述索引文件中頭部設(shè)置有參考信息,該參考信 息用于指示索引文件中各關(guān)鍵字段相同首字母的首次出現(xiàn)位置,所述依據(jù)輸 入的索引鍵值在該索引文件中進(jìn)行檢索具體為
確定該索引鍵值的首字母,查詢所述參考信息,確定與該索引鍵值具有 相同首字母的用戶名稱的位置,并以該用戶名稱作為檢索起始地址進(jìn)行檢 索。
本發(fā)明實(shí)施例同時(shí)還提供了一種數(shù)據(jù)庫的數(shù)據(jù)檢索裝置,所述數(shù)據(jù)庫中 各條數(shù)據(jù)記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記 錄的物理順序與所述預(yù)定邏輯順序一致,所述裝置包括
確定單元,用于將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文
件;
5第一;f全索單元,用于依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行^r索,在
當(dāng)前關(guān)鍵字段在所述預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí),停 止檢索并返回關(guān)鍵字段符合所述索引鍵值的數(shù)據(jù)記錄。
優(yōu)選的,上述裝置中,預(yù)定關(guān)鍵字段設(shè)置有輔助信息,所述裝置還包
括
第二;^索單元,用于在返回的數(shù)據(jù)記錄中,根據(jù)所述輔助信息進(jìn)行進(jìn)一 步檢索,以確定符合該輔助信息的數(shù)據(jù)記錄。
優(yōu)選的,上述裝置中,所述預(yù)設(shè)關(guān)鍵字段為用戶名稱,或者用戶名稱和 用戶賬號的組合,在所述數(shù)據(jù)庫中具有唯一性。
優(yōu)選的,上述裝置中,所述預(yù)定邏輯順序?yàn)殛P(guān)鍵字段首字母在字母表中 的位置順序。
優(yōu)選的,上述裝置中,所述索引文件中頭部設(shè)置有參考信息,該參考信 息用于指示索引文件中各關(guān)鍵字段相同首字母的首次出現(xiàn)位置,所述第 一檢
索單元包括
第一處理單元,用于確定該索引4定值的首字母;
第二處理單元,用于查詢所述參考信息,確定與該索引鍵值具有相同首 字母的用戶名稱的位置,并以該用戶名稱作為檢索起始地址進(jìn)行檢索。
通過上述技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例中的數(shù)據(jù)記錄 是按照其中預(yù)定關(guān)鍵字段的邏輯順序存儲(chǔ)的,其物理順序與邏輯順序是一致 的,于是,本發(fā)明實(shí)施例在進(jìn)行數(shù)據(jù)檢索時(shí),只需對一定范圍內(nèi)的數(shù)據(jù)進(jìn)行 檢索即可,位無需進(jìn)行全表檢索,從而節(jié)省了檢索時(shí)間。另外,本發(fā)明實(shí)施 例在上述檢索結(jié)果的基礎(chǔ)上,利用輔助信息進(jìn)行進(jìn)一步檢索,而無需對上述 檢索結(jié)果進(jìn)行人為的比較分析,從而進(jìn)一步加快檢索速度,并方便使用者使 用。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域魯通技術(shù)人員來講, 在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中進(jìn)行數(shù)據(jù)4企索的流程圖; 圖2為本發(fā)明實(shí)施例公開了一種數(shù)據(jù)庫的數(shù)據(jù)檢索方法的流程圖; 圖3為本發(fā)明實(shí)施例公開了一種數(shù)據(jù)庫的數(shù)據(jù)檢索裝置的結(jié)構(gòu)示意圖; 圖4為本發(fā)明實(shí)施例公開了另一種數(shù)據(jù)庫的數(shù)據(jù);險(xiǎn)索裝置的結(jié)構(gòu)示意
圖5為圖3或圖4所示的數(shù)據(jù)檢索裝置的第一檢索單元的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了使本領(lǐng)域技術(shù)人員能夠清楚理解本發(fā)明的技術(shù)方案,下面將結(jié)合本 發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描 述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施 例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前 提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開了 一種數(shù)據(jù)庫的數(shù)據(jù)檢索方法,該方法可以減少物理 讀次數(shù)和邏輯讀次數(shù),從而提高檢索速度,所述數(shù)據(jù)庫中包含若干數(shù)據(jù)表, 各數(shù)據(jù)表中包含若干數(shù)據(jù)記錄,每條數(shù)據(jù)記錄包括若干關(guān)鍵字段,所述各條 數(shù)據(jù)記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記錄的 物理順序與所述預(yù)定邏輯順序一致。本實(shí)施例公開的數(shù)據(jù)檢索方法的基本過 程是根據(jù)輸入的索引鍵值,查找具有與其相應(yīng)的關(guān)鍵字段的數(shù)據(jù)記錄(目 標(biāo)數(shù)據(jù)記錄),并返回,當(dāng)查找的關(guān)鍵字段在預(yù)定邏輯順序中的位置落后于 所述索引《建在所述預(yù)定邏輯順序中的位置時(shí),結(jié)束查找操作,并將查找到的 目標(biāo)數(shù)據(jù)記錄返回,如果沒有目標(biāo)數(shù)據(jù)記錄則返回查找失敗的信息。其具體 流程如圖2所示,在將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文 件之后,包括以下步驟
步驟S201、接收用戶輸入的索引鍵值。
步驟S202、以該索引文件中的首個(gè)關(guān)鍵字段為起始點(diǎn),在該索引文件中 逐字段與所述索引鍵值比較。
依次將索引文件中的關(guān)鍵字段作為當(dāng)前關(guān)鍵字段,與所述索引鍵值進(jìn)行 比較,步驟S203、當(dāng)進(jìn)行比較的關(guān)鍵字段在所述預(yù)定邏輯順序中的位置落后于
所述索引鍵值在所述預(yù)定邏輯順序中的位置時(shí),結(jié)束4企索。
步驟S204、返回檢索結(jié)果,結(jié)束流程。
所述檢索結(jié)果可以為空,也可以是具有符合所述索引鍵值的關(guān)鍵字段的 數(shù)據(jù)記錄。
一般來說,所述預(yù)定關(guān)鍵字段優(yōu)選會(huì)經(jīng)常使用的字段,所述預(yù)定邏輯順 序可以根據(jù)所述關(guān)鍵字段類型而定,下面通過一個(gè)具體實(shí)例進(jìn)行說明
假設(shè)一個(gè)遠(yuǎn)程培訓(xùn)系統(tǒng)的數(shù)據(jù)庫中,設(shè)置有用于存儲(chǔ)培訓(xùn)人員信息的數(shù) 據(jù)表(Userinfo),如表1所示,該數(shù)據(jù)表中包含若干條數(shù)據(jù)記錄,每條數(shù) 據(jù)記錄包括以下幾個(gè)關(guān)鍵字段
用戶賬號(Userid )、用戶名稱(Username )、參加學(xué)習(xí)次數(shù) (Useraccount)、 參力口學(xué)習(xí)時(shí)間(Userduty)、 電i舌(Usertelephone)、 用 戶電子郵箱(Useremail)、用戶所屬分組(Usergroupname)、用戶所屬/> 司名稱(Usercompanyname )。
表1
用戶ID用戶名學(xué)習(xí)次數(shù)學(xué)習(xí)時(shí)間電話E-mail所屬 組所屬 公司
alan阿倫315 (h)131******611alan@*AlSL
chenx陳想210 (h)133承求+承承承521B2
dengx鄧霞315 (h)134******254dengx@*Al
…
wangy王語420 (h)139******422wangy@*A2
zhaobin趙斌15 (h)zhaob@*CITBL
8其中
Usemame列作為索引文件(在其他實(shí)施例中,可以將Username列和 Username列一并作為索引文件),該表1中的各個(gè)數(shù)據(jù)記錄是按照某邏輯順 序(各培訓(xùn)人員的姓名拼音的首字母在字母表中的先后順序)進(jìn)行排列的, 于是,在檢索某培訓(xùn)人員的記錄時(shí),依據(jù)該培訓(xùn)人員的名稱在Usemame列 數(shù)據(jù)中檢索。例如在表l中搜索名稱為"趙斌"的培訓(xùn)人員時(shí),釆用以下
查詢"i吾句如下
Select username, useraccount, userduty, usergroupname, usertelephone, useremail from userinfo where Upper(username) = Upper('趙斌') 可以看出,其中索引鍵值為"趙斌",假設(shè)表1中有20000條數(shù)據(jù)記 錄,總共具有1600000數(shù)據(jù)塊,索引在占據(jù)20000數(shù)據(jù)塊,具有"趙斌"字 段的數(shù)據(jù)記錄在表1中具有唯一性,其在表中的位置為15000,則按照現(xiàn)有 技術(shù)全表掃描的話,總共需掃描1600000數(shù)據(jù)塊,而如果按照本發(fā)明實(shí)施例 公開的方法,則只需在索引文件中進(jìn)行掃描,大大減少了掃描時(shí)間。依據(jù)實(shí) 驗(yàn),現(xiàn)有技術(shù)搜索的時(shí)間約為13229毫秒,而利用本發(fā)明實(shí)施例,則只需 1135毫秒。并且,數(shù)據(jù)庫的數(shù)據(jù)記錄數(shù)量越多,本發(fā)明實(shí)施例的優(yōu)點(diǎn)就越明 顯,假設(shè)數(shù)據(jù)庫中數(shù)據(jù)記錄為1000萬條,查詢?nèi)齻€(gè)月內(nèi)新增的用戶時(shí),現(xiàn) 有技術(shù)花費(fèi)的時(shí)間為53763毫秒(約54秒),而本發(fā)明實(shí)施例則只需花費(fèi) 2423毫秒(約2秒)。另外,在返回的數(shù)據(jù)記錄數(shù)量較多時(shí),如果采用現(xiàn)有 技術(shù),由于其數(shù)據(jù)庫中數(shù)據(jù)記錄的物理順序與邏輯順序不一致,這意味著符 合索引鍵值的關(guān)鍵字段的數(shù)據(jù)記錄在數(shù)據(jù)庫中的位置處于分散狀態(tài),于是在 返回搜索結(jié)果時(shí)需要將各符合條件的數(shù)據(jù)記錄進(jìn)行排序, 一定程度上增加了
搜索時(shí)間;而本發(fā)明實(shí)施例中,由于數(shù)據(jù)記錄的物理順序與其中某關(guān)鍵字段 的邏輯順序一致,意味著將具有相同邏輯特征的數(shù)據(jù)記錄處于集中狀態(tài),這 使得在搜索結(jié)果數(shù)量較多的情況下,將其返回給用戶時(shí),不需要進(jìn)行排序, 從而縮短了搜索時(shí)間。
需要說明的是,由于數(shù)據(jù)記錄是按照usemame字段的首字母在字母表中 的順序進(jìn)行存儲(chǔ)的,則在進(jìn)行數(shù)據(jù)搜索過程中,如果搜索到關(guān)鍵字段的首字 母在字母表中落后于索引鍵值的首字母,則停止搜索。例如,當(dāng)需要搜索培 訓(xùn)人員"陳穎,,的數(shù)據(jù)記錄時(shí),索引鍵值設(shè)置為"陳穎",當(dāng)搜索到關(guān)鍵字
9段的首字母為D(如"鄧霞")時(shí),停止搜索,并可確定該數(shù)據(jù)表中沒有相 應(yīng)的數(shù)據(jù)記錄。這點(diǎn)與現(xiàn)有技術(shù)存在顯著不同,現(xiàn)有技術(shù)需要進(jìn)行全表搜索 后,才能確定是否存在相應(yīng)的數(shù)據(jù)記錄。
另外,還需要說明的是,當(dāng)符合索引鍵值的關(guān)鍵字較多時(shí),意味著返回 的數(shù)據(jù)記錄也較多,這時(shí),如果要在其中確定某一個(gè)數(shù)據(jù)記錄(目標(biāo)數(shù)據(jù)記 錄)時(shí),需要人為地對數(shù)據(jù)記錄進(jìn)行逐條分析,最終確定目標(biāo)數(shù)據(jù)記錄。這 一定程度上給使用者帶來了不便,為了解決此問題,本發(fā)明實(shí)施例公開了另 一種數(shù)據(jù)庫的數(shù)據(jù)檢索方法,該方法在上述方法的基礎(chǔ)上,為作為索引的列
數(shù)據(jù)中的各關(guān)鍵字段設(shè)置輔助信息(下文統(tǒng)稱為輔助關(guān)鍵字),從而在返回 的數(shù)據(jù)記錄數(shù)量較多時(shí),通過所述輔助關(guān)鍵字確定最終目標(biāo)數(shù)據(jù)記錄,為操 作者提供方便。本實(shí)施例適用于無法確定具體名稱的模糊搜索,例如,如果 需要獲取一位姓張的培訓(xùn)人員的數(shù)據(jù)記錄,當(dāng)按照圖2所示流程進(jìn)行搜索
時(shí),有可能返回的數(shù)據(jù)記錄的數(shù)量會(huì)很多,而如果usemame字段設(shè)置了輔助 信息,則可進(jìn)一步根據(jù)該輔助信息縮小搜索范圍,例如當(dāng)需要查找一位姓 "張,,且職位是"處長"的培訓(xùn)人員時(shí),采用4叟索語句Select usemame, useraccount, userduty, usergroupname, usertelephone,useremail from userinfo where Upper(username) like Upper( '%張%' ) and Upper(information) like Upper('%處長%')。即通過對姓名的查找,對所有姓張的培訓(xùn)人員先查找出 來,然后再根據(jù)輔助關(guān)鍵字("處長")在查找結(jié)果中進(jìn)行查找,最終確定 目標(biāo)lt據(jù)記錄。
此外,為了進(jìn)一步提高搜索速度,針對以username列數(shù)據(jù)作為索引文件 的方式,在數(shù)據(jù)庫預(yù)先進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),利用該用戶名稱的首字母進(jìn)行標(biāo) 注,在存儲(chǔ)完畢后,記錄相同首字母的首次出現(xiàn)位置,并刪除上述標(biāo)注,將 記錄下來的字母及出現(xiàn)位置(該位置可以由與數(shù)據(jù)表首地址的偏移量來表 示,該偏移量可由數(shù)據(jù)行來表示)確定為參考信息并設(shè)置于索引文件頭部。 于是,在接收到操作者輸入的索引鍵值時(shí),確定該索引鍵值的首字母,查詢 所述參考信息,確定與該索引4定值具有相同首字母的用戶名稱的位置,并以 該該用戶名稱作為檢索起始地址進(jìn)行檢索,由此,無需從索引文件的首地址 依次檢索,節(jié)省了檢索時(shí)間;另外,當(dāng)所述參考信息中不存在與索引鍵值首
10字母相同的字母時(shí),則可確定索引文件中也不存在符合所述索引鍵值的用戶 名稱,同樣節(jié)省檢索時(shí)間。
本發(fā)明實(shí)施例同時(shí)還提供了 一種數(shù)據(jù)庫的數(shù)據(jù)檢索裝置,所述數(shù)據(jù)庫中 各條數(shù)據(jù)記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記 錄的物理順序與所述預(yù)定邏輯順序一致。所述數(shù)據(jù)檢索裝置的結(jié)構(gòu)如圖3所
示,包括確定單元31和第一檢索單元32,其中
確定單元31,用于將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引 文件。
第 一檢索單元32,用于依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行檢索, 在當(dāng)前關(guān)鍵字段在所述預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí), 停止檢索并返回關(guān)鍵字段符合所述索引鍵值的數(shù)據(jù)記錄。
一般來說,所述預(yù)定關(guān)鍵字段優(yōu)選會(huì)經(jīng)常使用的字段,所述預(yù)定邏輯順 序可以根據(jù)所述關(guān)鍵字段類型而定。例如該預(yù)定關(guān)鍵字段為用戶名稱,則 所述預(yù)定邏輯順序可以是姓名拼音的首字母在字母表中的先后順序。
本發(fā)明實(shí)施例同時(shí)提供的另 一種數(shù)據(jù)檢索裝置中,所述預(yù)定關(guān)鍵字段設(shè) 置有輔助信息,該裝置的結(jié)構(gòu)如圖4所示,包括確定單元41、第一^r索單元 42和第二4全索單元43;其中
確定單元41、第一檢索單元42的功能,與確定單元31和第一檢索單元 32的功能相類似,在此不再贅述。
第二檢索單元43,用于在返回的數(shù)據(jù)記錄中,根據(jù)所述輔助信息進(jìn)行進(jìn) 一步檢索,以確定符合該輔助信息的數(shù)據(jù)記錄。
例如當(dāng)需要查找一位姓"張"且職位是"處長"的培訓(xùn)人員時(shí),先通 過對姓名的查找,對所有姓張的培訓(xùn)人員先查找出來,然后再根據(jù)輔助關(guān)鍵 字("處長")在查找結(jié)果中進(jìn)行查找,最終確定目標(biāo)數(shù)據(jù)記錄。
所述索引文件中頭部設(shè)置有參考信息,該參考信息用于指示索引文件中 各關(guān)鍵字段相同首字母的首次出現(xiàn)位置,針對這種情況,圖5示出了第一檢 索單元32 (42)的一種可能的結(jié)構(gòu),包括第一處理單元51和第二處理單 元52,其中
第一處理單元51,用于確定該索引4定值的首字母。第二處理單元52,用于查詢所述參考信息,確定與該索引4定值具有相同 首字母的用戶名稱的位置,并以該用戶名稱作為檢索起始地址進(jìn)行檢索。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明 的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見 即可。對于裝置而言,由于其與上述方法基本相似,所以描述得比較簡單, 相關(guān)之處參見前文方法部分說明即可。
本領(lǐng)域技術(shù)人員可以理解,結(jié)合本文中所公開的實(shí)施例描述的各示例的 單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為 了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地 描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取 決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)^t術(shù)人員可以對每個(gè)特定的 應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā) 明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、 處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存
儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可 編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知 的任意其它形式的存儲(chǔ)介質(zhì)中。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用 本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易 見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況 下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí) 施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1、一種數(shù)據(jù)庫中數(shù)據(jù)記錄的檢索方法,其特征在于,所述數(shù)據(jù)庫中各條數(shù)據(jù)記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記錄的物理順序與所述預(yù)定邏輯順序一致,所述方法包括將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文件;依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行檢索,在當(dāng)前關(guān)鍵字段在所述預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí),停止檢索并返回關(guān)鍵字段符合所述索引鍵值的數(shù)據(jù)記錄。
2、 如權(quán)利要求1所述的方法,其特征在于,預(yù)定關(guān)鍵字段設(shè)置有輔助 信息,所述方法還包括在返回的數(shù)據(jù)記錄中,根據(jù)所述輔助信息進(jìn)行進(jìn)一步檢索,以確定符合 該輔助信息的lt據(jù)記錄。
3、 如權(quán)利要求l或2所述的方法,其特征在于,所述預(yù)設(shè)關(guān)鍵字段為用 戶名稱,或者用戶名稱和用戶賬號的組合,在所述數(shù)據(jù)庫中具有唯一性。
4、 如權(quán)利要求3所述的方法,其特征在于,所述預(yù)定邏輯順序?yàn)殛P(guān)鍵 字段首字母在字母表中的位置順序。
5、 如權(quán)利要求l或2所述的方法,其特征在于,所述索引文件中頭部設(shè) 置有參考信息,該參考信息用于指示索引文件中各關(guān)鍵字段相同首字母的首 次出現(xiàn)位置,所述依據(jù)輸入的索51鍵值在該索引文件中進(jìn)行4全索具體為確定該索引鍵值的首字母,查詢所述參考信息,確定與該索引鍵值具有 相同首字母的用戶名稱的位置,并以該用戶名稱作為檢索起始地址進(jìn)行檢 索。
6、 一種數(shù)據(jù)庫的數(shù)據(jù)檢索裝置,其特征在于,所述數(shù)據(jù)庫中各條數(shù)據(jù) 記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記錄的物理 順序與所述預(yù)定邏輯順序一致,所述裝置包括確定單元,用于將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文件;第一檢索單元,用于依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行檢索,在 當(dāng)前關(guān)鍵字段在所述預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí),停止^r索并返回關(guān)鍵字段符合所述索引鍵值的數(shù)據(jù)記錄。
7、 如權(quán)利要求6所述的裝置,其特征在于,預(yù)定關(guān)鍵字段設(shè)置有輔助 信息,所述裝置還包括第二檢索單元,用于在返回的數(shù)據(jù)記錄中,根據(jù)所述輔助信息進(jìn)行進(jìn)一 步檢索,以確定符合該輔助信息的數(shù)據(jù)記錄。
8、 如權(quán)利要求6或7所述的裝置,其特征在于,所述預(yù)設(shè)關(guān)鍵字段為用 戶名稱,或者用戶名稱和用戶賬號的組合,在所述數(shù)據(jù)庫中具有唯一性。
9、 如權(quán)利要求8所述的裝置,其特征在于,所述預(yù)定邏輯順序?yàn)殛P(guān)鍵 字段首字母在字母表中的位置順序。
10、 如權(quán)利要求6或7所述的裝置,其特征在于,所述索引文件中頭部 設(shè)置有參考信息,該參考信息用于指示索引文件中各關(guān)鍵字段相同首字母的 首次出現(xiàn)位置,所述第一檢索單元包括第一處理單元,用于確定該索引4建值的首字母;第二處理單元,用于查詢所述參考信息,確定與該索引鍵值具有相同首 字母的用戶名稱的位置,并以該用戶名稱作為檢索起始地址進(jìn)行檢索。
全文摘要
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)庫中數(shù)據(jù)記錄的檢索方法,所述數(shù)據(jù)庫中各條數(shù)據(jù)記錄中的預(yù)設(shè)關(guān)鍵字段之間符合預(yù)定邏輯順序,且所述各條數(shù)據(jù)記錄的物理順序與所述預(yù)定邏輯順序一致,所述方法包括將包含所有數(shù)據(jù)記錄的預(yù)設(shè)關(guān)鍵字段的列確定為索引文件;依據(jù)輸入的索引鍵值在該索引文件中進(jìn)行檢索,在當(dāng)前關(guān)鍵字段在所述預(yù)定邏輯順序中的邏輯位置落后于所述索引鍵值時(shí),停止檢索并返回關(guān)鍵字段符合所述索引鍵值的數(shù)據(jù)記錄。本發(fā)明實(shí)施例同時(shí)還公開了實(shí)現(xiàn)上述方法的裝置。本發(fā)明實(shí)施例能夠加快檢索速度。
文檔編號G06F17/30GK101493824SQ20081022471
公開日2009年7月29日 申請日期2008年12月9日 優(yōu)先權(quán)日2008年12月9日
發(fā)明者浩 張, 朱玉倉, 樸熙俊 申請人:北京中電飛華通信股份有限公司