專利名稱:數(shù)據(jù)庫(kù)及其單向快速搜尋方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種數(shù)據(jù)庫(kù)及其單向快速搜尋方法,尤指一種利用一平均分割數(shù)據(jù)庫(kù)為若干個(gè)區(qū)段所獲得的區(qū)段首表列來(lái)單向快速搜尋的方法。
背景技術(shù):
早期,儲(chǔ)存大量記錄的數(shù)據(jù)庫(kù)通常以靜態(tài)串行(sequentialrepresentation)為其結(jié)構(gòu),例如陣列(Array)、堆疊(Stacks)或佇列(Queues)等方式。此種靜態(tài)串行的數(shù)據(jù)庫(kù)結(jié)構(gòu)具有存取個(gè)別請(qǐng)求數(shù)據(jù)速度較快的優(yōu)點(diǎn)。但其缺點(diǎn)為插入或刪除數(shù)據(jù)的動(dòng)作則須搬移該數(shù)據(jù)庫(kù)中大量的數(shù)據(jù)。就一數(shù)據(jù)庫(kù)而言,如須經(jīng)常性地對(duì)其中插入或刪除數(shù)據(jù),則該數(shù)據(jù)庫(kù)便不適合使用靜態(tài)串行的結(jié)構(gòu)。因此,動(dòng)態(tài)串行(Linked List)的數(shù)據(jù)庫(kù)結(jié)構(gòu)便是為當(dāng)今主流且廣為采取的結(jié)構(gòu)模型。當(dāng)欲于其中插入或刪除數(shù)據(jù)時(shí),此類數(shù)據(jù)庫(kù)結(jié)構(gòu)僅須改變相關(guān)的鏈接(Linking)即可,無(wú)須搬移數(shù)據(jù)的位置。因此,近來(lái)發(fā)展的許多數(shù)據(jù)庫(kù)結(jié)構(gòu)中,動(dòng)態(tài)串行確為演算式利用數(shù)據(jù)庫(kù)結(jié)構(gòu)的首選。具體而言,構(gòu)成單向搜尋(one-way search)數(shù)據(jù)庫(kù)的單向鏈接串行(singly linked lists)比雙向鏈接串行(DoublyLinked Lists)或樹(shù)狀結(jié)構(gòu)(Trees)用的多。
雖然單向鏈接串行較雙向鏈接串行或樹(shù)狀結(jié)構(gòu)的數(shù)據(jù)庫(kù)須要較多的執(zhí)行(例如修改或搜尋多筆數(shù)據(jù))時(shí)間,但對(duì)一電子電路或一大型數(shù)據(jù)庫(kù)而言,具有僅須較少記憶空間的優(yōu)點(diǎn),例如從遠(yuǎn)程操控臺(tái)存取數(shù)據(jù)的智能平臺(tái)管理接口(IPMI)數(shù)據(jù)庫(kù)。實(shí)際上,并無(wú)法擷取數(shù)據(jù)庫(kù)內(nèi)所有的記錄及其數(shù)據(jù)部分到遠(yuǎn)程操控臺(tái)后,再對(duì)該些記錄及數(shù)據(jù)進(jìn)行搜尋,而僅能擷取少量部分的記錄,儲(chǔ)存于遠(yuǎn)程操控臺(tái)的記憶裝置內(nèi),以進(jìn)行數(shù)據(jù)的搜尋,當(dāng)使用者有其它請(qǐng)求時(shí),再擷取其它的記錄。然而于此單向鏈接串行的數(shù)據(jù)庫(kù)中的搜尋方法尚有一個(gè)缺點(diǎn),即當(dāng)沿?cái)?shù)據(jù)庫(kù)的搜尋方向,現(xiàn)在請(qǐng)求記錄的位址先于最后搜尋記錄的位址時(shí),便必須自數(shù)據(jù)庫(kù)的起始處開(kāi)始方能沿搜尋方向找到現(xiàn)在請(qǐng)求的記錄。如前述的網(wǎng)絡(luò)(IPMI)數(shù)據(jù)庫(kù)或其它相似情況下,搜尋單向鏈接串行數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)便較搜尋雙向鏈接串行數(shù)據(jù)庫(kù)內(nèi)的記錄要花費(fèi)較長(zhǎng)的時(shí)間。
發(fā)明內(nèi)容
因此,確有發(fā)展一單向快速搜尋方法及其數(shù)據(jù)庫(kù)的必要,以提供一種在單向鏈接串行數(shù)據(jù)庫(kù)內(nèi)搜尋的更有效率方法。
為解決現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種數(shù)據(jù)庫(kù)及其單向快速搜尋方法。
為完成前述目的,本發(fā)明提供一種使用于一數(shù)據(jù)庫(kù)的單向快速搜尋方法,該數(shù)據(jù)庫(kù)其包括若干個(gè)記錄,每一記錄包括至少一記錄識(shí)別對(duì)應(yīng)至一位址、一次記錄識(shí)別對(duì)應(yīng)至一次記錄的一次位址、以及一數(shù)據(jù)部份,其中該數(shù)據(jù)庫(kù)被分割為若干個(gè)區(qū)段,指定該些區(qū)段的第一個(gè)記錄為一區(qū)段首,并儲(chǔ)存該些區(qū)段首的記錄識(shí)別于一第一表列,且儲(chǔ)存部分的該些記錄識(shí)別于一第二表列,其中,儲(chǔ)存于該第二表列中的該些記錄識(shí)別的位址是先前于一最后搜尋記錄的記錄識(shí)別位址。
而本發(fā)明的單向快速搜尋方法包括下列步驟a.接收一數(shù)據(jù)部份請(qǐng)求;b.確認(rèn)現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址包括數(shù)據(jù)部份,是否先于最后搜尋記錄的記錄識(shí)別位址,如是,則于第二表列中單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;c.確認(rèn)于第二表列中是否找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,如是,通過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份;以及d.于第二表列中,儲(chǔ)存具有若干個(gè)對(duì)應(yīng)位址的部分的該些記錄識(shí)別,該些對(duì)應(yīng)位址先于找到的記錄識(shí)別位址。
于步驟c中,如于第二表列中未找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,則更進(jìn)一步包括下列步驟c1.自第一表列的該些記錄識(shí)別中,選擇一區(qū)段首,所選擇的區(qū)段首的位址是最接近并小于現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址;c2.自所選擇的區(qū)段首開(kāi)始,單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及c3.透過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
而依據(jù)本發(fā)明能快速單向搜尋的數(shù)據(jù)庫(kù)包括若干個(gè)記錄以及一第一表列。每一記錄包括至少一記錄識(shí)別對(duì)應(yīng)至一位址、一次記錄識(shí)別對(duì)應(yīng)至一次記錄的一次位址、以及一數(shù)據(jù)部份,其中該數(shù)據(jù)庫(kù)被分割為若干個(gè)區(qū)段,并指定該些區(qū)段的第一個(gè)記錄為一區(qū)段首,該第一表列是用以儲(chǔ)存該些區(qū)段首的記錄識(shí)別。
該數(shù)據(jù)庫(kù)更包括一第二表列。該第二表列是用以儲(chǔ)存若干個(gè)記錄識(shí)別,儲(chǔ)存于第二表列的紀(jì)錄識(shí)別的數(shù)據(jù)部份具有較高的請(qǐng)求頻率。或者,該第二表列也可用以儲(chǔ)存若干個(gè)記錄識(shí)別,儲(chǔ)存于第二表列的紀(jì)錄識(shí)別位址先前于一最后搜尋記錄的記錄識(shí)別位址。即如前述,于接收數(shù)據(jù)請(qǐng)求前初始化該數(shù)據(jù)庫(kù)時(shí),便會(huì)先行取得該數(shù)據(jù)庫(kù)中所有位址的一總數(shù)。并且依據(jù)該總數(shù),將該數(shù)據(jù)庫(kù)平均分割為該些區(qū)段。
與現(xiàn)有技術(shù)相比,本發(fā)明的單向快速搜尋方法,提供的第一表列儲(chǔ)存該些區(qū)段的該些記錄識(shí)別,即便現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址先于最后搜尋記錄的記錄識(shí)別位址,也無(wú)須自該數(shù)據(jù)庫(kù)的起始處,才能開(kāi)始搜尋、找到該現(xiàn)在請(qǐng)求記錄。本發(fā)明的搜尋方法,是選擇一區(qū)段首,該區(qū)段首的記錄識(shí)別位址最接近并小于該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址,并自其開(kāi)始搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,所以本發(fā)明的方法能于單向鏈接串行結(jié)構(gòu)的數(shù)據(jù)庫(kù)內(nèi)更有效率地搜尋。
圖1是依據(jù)本發(fā)明能快速單向搜尋的數(shù)據(jù)庫(kù)的結(jié)構(gòu)圖。
圖2是依據(jù)本發(fā)明的第一表列及第二表列的詳細(xì)內(nèi)容。
圖3是依據(jù)本發(fā)明數(shù)據(jù)庫(kù)的結(jié)構(gòu)圖示,用以詳細(xì)說(shuō)明當(dāng)現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址先于該最后搜尋記錄的記錄識(shí)別位址,且未在第二表列中的情形。
圖4是依據(jù)本發(fā)明第一實(shí)施例,單向快速搜尋方法的流程圖。
圖5是依據(jù)本發(fā)明第二實(shí)施例,單向快速搜尋方法的流程圖。
具體實(shí)施例方式
請(qǐng)參考圖1,一并參考圖2及圖3。圖1是依據(jù)本發(fā)明能快速單向搜尋的數(shù)據(jù)庫(kù)的結(jié)構(gòu)圖。圖2是依據(jù)本發(fā)明的第一表列及第二表列的詳細(xì)內(nèi)容。圖3是依據(jù)本發(fā)明數(shù)據(jù)庫(kù)的結(jié)構(gòu)圖示,用以詳細(xì)說(shuō)明當(dāng)現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址先于最后搜尋記錄的記錄識(shí)別位址,且未在第二表列中的情形。
依據(jù)本發(fā)明此實(shí)施例的數(shù)據(jù)庫(kù)結(jié)構(gòu),包括100個(gè)記錄、第一表列以及第二表列。記錄102包括一記錄識(shí)別(首記錄識(shí)別)對(duì)應(yīng)至位址0、一記錄104的次記錄識(shí)別對(duì)應(yīng)至位址1、以及其數(shù)據(jù)部份。記錄104包括一記錄識(shí)別對(duì)應(yīng)至位址1、一記錄106的次記錄識(shí)別對(duì)應(yīng)至位址2、以及其數(shù)據(jù)部份。記錄106包括一記錄識(shí)別對(duì)應(yīng)至位址2、一記錄108的次記錄識(shí)別對(duì)應(yīng)至位址3、以及其數(shù)據(jù)部份,依此該數(shù)據(jù)庫(kù)的單向鏈接串行持續(xù)延展。最后,記錄110包括一記錄識(shí)別對(duì)應(yīng)至位址99、一末記錄識(shí)別表示該數(shù)據(jù)庫(kù)的結(jié)尾、以及其數(shù)據(jù)部份。
于初始化數(shù)據(jù)庫(kù)時(shí),依據(jù)該數(shù)據(jù)庫(kù)中所有位址的一總數(shù),將數(shù)據(jù)庫(kù)平均分割為若干個(gè)區(qū)段以取得第一表列。每一區(qū)段的第一個(gè)記錄被指定為一區(qū)段首,第一表列便用以儲(chǔ)存該些區(qū)段首的記錄識(shí)別。并且,第二表列則用以儲(chǔ)存若干個(gè)選自該數(shù)據(jù)庫(kù)的記錄識(shí)別。請(qǐng)參考圖2中所顯示的第一表列,該數(shù)據(jù)庫(kù)中位址的總數(shù)即如前述為100,而第一表列中位址的總數(shù)為5。因此,平均分割該數(shù)據(jù)庫(kù)后,該些區(qū)段首的記錄識(shí)別,記錄識(shí)別(0)、記錄識(shí)別(20)、記錄識(shí)別(40)、記錄識(shí)別(60)、記錄識(shí)別(80)以及該些記錄識(shí)別對(duì)應(yīng)的位址0、20、40、60、80被儲(chǔ)存于第一表列中。并且,可預(yù)設(shè)儲(chǔ)存該數(shù)據(jù)庫(kù)的記錄識(shí)別位址為0、1、2、3的記錄識(shí)別于第二表列。之后,每次接收數(shù)據(jù)請(qǐng)求、搜尋、找到該記錄識(shí)別、傳送該數(shù)據(jù)部份后,如圖3所示,均以具有位址先于該找到的記錄識(shí)別位址的該些記錄識(shí)別,更新第二表列。其情形為現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址40是先于該最后搜尋記錄的記錄識(shí)別位址60,因最后搜尋記錄的記錄識(shí)別位址為60,因此第二表列中是儲(chǔ)存先于位址60,位址為56、57、58、59該等連續(xù)且最靠近位址60的記錄識(shí)別。當(dāng)該數(shù)據(jù)庫(kù)接收記錄識(shí)別位址為40的現(xiàn)在請(qǐng)求記錄后,因其位址先于最后搜尋記錄的記錄識(shí)別位址60,便于位址為20的記錄識(shí)別(20)的區(qū)段首開(kāi)始搜尋、找到位址為40的該記錄識(shí)別、傳送該數(shù)據(jù)部份后,會(huì)再以位址為36、37、38、39連續(xù)且最靠近位址40的記錄識(shí)別更新該第二表列。
值得注意的是,于本實(shí)施例第一表列以及第二表列中儲(chǔ)存的記錄識(shí)別數(shù)雖然分別為5以及4,但其儲(chǔ)存數(shù)是依據(jù)該數(shù)據(jù)庫(kù)的內(nèi)存容量而預(yù)先決定,并非以本發(fā)明的實(shí)施例為限。并且,于第二表列中儲(chǔ)存的記錄識(shí)別也可以是數(shù)據(jù)部份具有較高請(qǐng)求頻率的記錄識(shí)別,本發(fā)明會(huì)于每次找到欲搜尋的記錄識(shí)別后,統(tǒng)計(jì)請(qǐng)求頻率較高的數(shù)據(jù)部份的記錄識(shí)別,并據(jù)此更新該第二表列。
請(qǐng)參考圖4,是依據(jù)本發(fā)明第一實(shí)施例,單向快速搜尋方法的流程圖。利用第一表列及第二表列,能于如圖1所示單向鍵結(jié)串行的數(shù)據(jù)庫(kù)中,具體實(shí)施該單向快速搜尋方法。在此第一實(shí)施例中,該方法包括下列步驟a.接收一數(shù)據(jù)部份請(qǐng)求;b.確認(rèn)現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址包括請(qǐng)求數(shù)據(jù)部份,是否先于最后搜尋記錄的記錄識(shí)別位址;如否,則進(jìn)行步驟b1.自該數(shù)據(jù)庫(kù)的最后搜尋記錄的記錄識(shí)別位址開(kāi)始,單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;
b2.透過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
如是,則進(jìn)行步驟b+.于該第二表列中單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;c.確認(rèn)于第二表列中是否找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,如是,則進(jìn)行步驟c+.透過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份;如否,則進(jìn)行步驟c1.自該第一表列的該些記錄識(shí)別中,選擇一區(qū)段首,所選擇的區(qū)段首的位址是最接近并小于該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址;c2.自該所選擇的區(qū)段首開(kāi)始,單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及c3.通過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
于步驟c+、c3或b2傳送該數(shù)據(jù)部份后,本實(shí)施例的方法便進(jìn)行步驟d.于該第二表列中,儲(chǔ)存若干個(gè)記錄識(shí)別,其位址先于找到的記錄識(shí)別位址,并等待再次的數(shù)據(jù)部份請(qǐng)求。
第一實(shí)施例的單向快速搜尋方法于初始化該數(shù)據(jù)庫(kù)時(shí),更包括一步驟,其中取得該數(shù)據(jù)庫(kù)中所有位址的一總數(shù)后,將該數(shù)據(jù)庫(kù)平均分割為若干個(gè)區(qū)段,以取得前述第一表列。再者,本實(shí)施例的方法于初始化該數(shù)據(jù)庫(kù)后,更包括一步驟,其中于第二表列中,儲(chǔ)存該數(shù)據(jù)庫(kù)若干個(gè)具有起始位址的記錄識(shí)別。
請(qǐng)參考圖5,是依據(jù)本發(fā)明第二實(shí)施例,單向快速搜尋方法的流程圖。于此實(shí)施例中,第二表列是用以儲(chǔ)存若干個(gè)記錄識(shí)別,該些記錄識(shí)別的數(shù)據(jù)部份具有較高的請(qǐng)求頻率。于本實(shí)施例中,該方法包括下列步驟a.接收一數(shù)據(jù)部份請(qǐng)求;b.于第二表列中單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;c.確認(rèn)于第二表列中是否找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;如是,則進(jìn)行步驟c+.透過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份;
如否,則進(jìn)行步驟c1.自該第一表列的該些記錄識(shí)別中,選擇一區(qū)段首,所選擇區(qū)段首的位址是最接近并小于現(xiàn)在請(qǐng)求記錄的記錄識(shí)別的該位址;c2.自所選擇的該區(qū)段首開(kāi)始,單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及c3.透過(guò)找到的記錄識(shí)別,傳送現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
于步驟c+或c3傳送該數(shù)據(jù)部份后,本實(shí)施例的方法便進(jìn)行步驟d.依據(jù)找到的記錄識(shí)別,統(tǒng)計(jì)請(qǐng)求頻率較高的數(shù)據(jù)部份,并據(jù)此更新該第二表列。
由于本發(fā)明的單向快速搜尋方法,提供的第一表列儲(chǔ)存該些區(qū)段的該些記錄識(shí)別,即便現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址先于最后搜尋記錄的記錄識(shí)別位址,也無(wú)須自該數(shù)據(jù)庫(kù)的起始處,才能開(kāi)始搜尋、找到該現(xiàn)在請(qǐng)求記錄。本發(fā)明的搜尋方法,是選擇選擇一區(qū)段首,該區(qū)段首的記錄識(shí)別位址最接近并小于該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址,并自其開(kāi)始搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別。
本發(fā)明的單向快速搜尋方法,更進(jìn)一步提供一第二表列,儲(chǔ)存該些記錄識(shí)別,其對(duì)應(yīng)位址是先前于最后搜尋記錄的記錄識(shí)別位址。如現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址儲(chǔ)存于該第二表列中,本發(fā)明的搜尋方法便能快速找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
總而言之,本發(fā)明的單向快速搜尋方法能于單向鏈接串行結(jié)構(gòu)的數(shù)據(jù)庫(kù)內(nèi)更有效率地搜尋。
權(quán)利要求
1.一種單向搜尋的數(shù)據(jù)庫(kù),其特征在于其包括若干個(gè)記錄以及一第一表列,每一記錄包括至少一記錄識(shí)別對(duì)應(yīng)至一位址、一次記錄識(shí)別對(duì)應(yīng)至一次記錄的一次位址、以及一數(shù)據(jù)部份,其中該數(shù)據(jù)庫(kù)被分割為若干個(gè)區(qū)段,指定該些區(qū)段的第一個(gè)記錄為一區(qū)段首;第一表列儲(chǔ)存該些區(qū)段首的該些記錄識(shí)別。
2.如權(quán)利要求1所述的數(shù)據(jù)庫(kù),其特征在于更包括一第二表列,儲(chǔ)存部分的該些記錄識(shí)別,儲(chǔ)存于該第二表列的該些紀(jì)錄識(shí)別的該些數(shù)據(jù)部份具有較高的請(qǐng)求頻率。
3.如權(quán)利要求1所述的數(shù)據(jù)庫(kù),其特征在于更包括一第二表列,儲(chǔ)存部分的該些記錄識(shí)別,儲(chǔ)存于該第二表列的該些紀(jì)錄識(shí)別的位址先前于一最后搜尋記錄的記錄識(shí)別位址。
4.如權(quán)利要求1所述的數(shù)據(jù)庫(kù),其特征在于于接收該數(shù)據(jù)部份請(qǐng)求前,先取得該數(shù)據(jù)庫(kù)中所有位址的一總數(shù)。
5.如權(quán)利要求4所述的數(shù)據(jù)庫(kù),其特征在于依據(jù)該數(shù)據(jù)庫(kù)中所有位址的該總數(shù),將該數(shù)據(jù)庫(kù)平均分割為該些區(qū)段。
6.一種單向快速搜尋方法,用于一具有若干個(gè)記錄的數(shù)據(jù)庫(kù),每一記錄包括至少一記錄識(shí)別對(duì)應(yīng)至一位址、一次記錄識(shí)別對(duì)應(yīng)至一次記錄的一次位址、以及一數(shù)據(jù)部份,其中該數(shù)據(jù)庫(kù)被分割為若干個(gè)區(qū)段,指定該些區(qū)段的第一個(gè)記錄為一區(qū)段首,并儲(chǔ)存該些區(qū)段首的該些記錄識(shí)別于一第一表列中,且儲(chǔ)存部分的該些記錄識(shí)別于一第二表列中,其中,儲(chǔ)存于該第二表列中的該些記錄識(shí)別的位址先前于一最后搜尋記錄的一記錄識(shí)別位址,該方法包括下列步驟a.接收一數(shù)據(jù)部份請(qǐng)求;b.確認(rèn)一現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址包括該數(shù)據(jù)部份,是否先于該最后搜尋記錄的記錄識(shí)別位址,如是,則于該第二表列中單向搜尋該現(xiàn)在請(qǐng)求記錄的一記錄識(shí)別;c.確認(rèn)于該第二表列中是否找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,如是,通過(guò)找到的該記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的該數(shù)據(jù)部份;以及d.于該第二表列中,儲(chǔ)存若干個(gè)具有對(duì)應(yīng)位址的部分的該些記錄識(shí)別,該些對(duì)應(yīng)位址先于找到的該記錄識(shí)別位址。
7.如權(quán)利要求6所述的搜尋方法,其特征在于在步驟d中,該些對(duì)應(yīng)位址為連續(xù)且最接近找到的該記錄識(shí)別位址。
8.如權(quán)利要求6所述的搜尋方法,其特征在于在步驟c中,如否,則更進(jìn)一步包括下列步驟c1.自該第一表列的該些記錄識(shí)別中,選擇一區(qū)段首,所選擇的該區(qū)段首的一位址是最接近并小于該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址;c2.自該數(shù)據(jù)庫(kù)所選擇的該區(qū)段首開(kāi)始,單向搜尋該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及c3.通過(guò)找到的該記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
9.如權(quán)利要求6所述的搜尋方法,其特征在于在步驟b中,如否,則更進(jìn)一步包括下列步驟b1.自該數(shù)據(jù)庫(kù)的該最后搜尋記錄的記錄識(shí)別位址開(kāi)始,單向搜尋該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及b2.通過(guò)找到的該記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
10.如權(quán)利要求6所述的搜尋方法,其特征在于于步驟a前,更包括一步驟,其中取得該數(shù)據(jù)庫(kù)中所有位址的一總數(shù),以將該數(shù)據(jù)庫(kù)平均分割為該些區(qū)段。
11.如權(quán)利要求6所述的搜尋方法,其特征在于于步驟a前,更包括一步驟,其中于該第二表列中,儲(chǔ)存該數(shù)據(jù)庫(kù)的若干個(gè)具有起始位址的該些記錄識(shí)別。
12.一種單向快速搜尋方法,用于一具有若干個(gè)記錄的數(shù)據(jù)庫(kù),每一記錄包括至少一記錄識(shí)別對(duì)應(yīng)至一位址、一次記錄識(shí)別對(duì)應(yīng)至一次記錄的一次位址、以及一數(shù)據(jù)部份,其中該數(shù)據(jù)庫(kù)被分割為若干個(gè)區(qū)段,指定該些區(qū)段的第一個(gè)記錄為一區(qū)段首,并儲(chǔ)存該些區(qū)段首的該些記錄識(shí)別于一第一表列中,且儲(chǔ)存部分的該些記錄識(shí)別于一第二表列中,儲(chǔ)存于該第二表列中的該些記錄識(shí)別的該些數(shù)據(jù)部份具有較高的請(qǐng)求頻率,該方法包括下列步驟a.接收一數(shù)據(jù)部份請(qǐng)求;b.于該第二表列中單向搜尋該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;c.確認(rèn)于該第二表列中是否找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,如是,通過(guò)找到的該記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份;以及d.依據(jù)該找到的該記錄識(shí)別,統(tǒng)計(jì)請(qǐng)求頻率較高的該些資料部份,并據(jù)此更新該第二表列。
13.如權(quán)利要求12所述的搜尋方法,其特征在于于步驟c,如否,則更進(jìn)一步包括下列步驟c1.自該第一表列的該些記錄識(shí)別中,選擇一區(qū)段首,所選擇區(qū)段首的位址最接近并小于該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址;c2.自該數(shù)據(jù)庫(kù)所選擇的該區(qū)段首開(kāi)始,單向搜尋該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,直到找到該現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;以及c3.通過(guò)找到的該記錄識(shí)別,傳送該現(xiàn)在請(qǐng)求記錄的數(shù)據(jù)部份。
14.如權(quán)利要求12所述的搜尋方法,其特征在于于步驟a前,更包括一步驟,其中取得該數(shù)據(jù)庫(kù)中所有位址的一總數(shù),以將該數(shù)據(jù)庫(kù)平均分割為該些區(qū)段。
15.如權(quán)利要求12所述的搜尋方法,其特征在于于步驟a前,更包括一步驟,其中于該第二表列中,儲(chǔ)存該數(shù)據(jù)庫(kù)的具有若干個(gè)起始位址的該些記錄識(shí)別。
全文摘要
本發(fā)明揭露一種數(shù)據(jù)庫(kù)及其單向快速搜尋方法。第一表列中儲(chǔ)存分割數(shù)據(jù)庫(kù)所獲得各區(qū)段首的記錄的記錄識(shí)別,第二表列中儲(chǔ)存若干個(gè)具有連續(xù)位址的記錄識(shí)別,其位址先前于最后搜尋記錄的位址。本發(fā)明方法的步驟為接收數(shù)據(jù)部分請(qǐng)求;確認(rèn)現(xiàn)在請(qǐng)求記錄的記錄識(shí)別位址,是否先于最后搜尋記錄的記錄識(shí)別位址,如是,在第二表列中搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別;確認(rèn)于第二表列中是否找到現(xiàn)在請(qǐng)求記錄的記錄識(shí)別,如否,則自位址最接近并小于現(xiàn)在請(qǐng)求記錄的記錄識(shí)別的區(qū)段首開(kāi)始,單向搜尋現(xiàn)在請(qǐng)求記錄的記錄識(shí)別。
文檔編號(hào)G06F17/30GK101086740SQ20071010986
公開(kāi)日2007年12月12日 申請(qǐng)日期2007年6月1日 優(yōu)先權(quán)日2006年6月8日
發(fā)明者徐偉峰 申請(qǐng)人:宏正自動(dòng)科技股份有限公司