欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法

文檔序號(hào):6629696閱讀:703來(lái)源:國(guó)知局
一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法,將實(shí)時(shí)數(shù)據(jù)庫(kù)中整型關(guān)鍵字的表的數(shù)據(jù)根據(jù)關(guān)鍵字大小分別存儲(chǔ)在預(yù)先設(shè)定好的兩塊存儲(chǔ)空間中,分別采用非緊密存儲(chǔ)和緊密存儲(chǔ)的方式,對(duì)應(yīng)分別采用直接定位查找和二分查找的算法。具有能夠避免記錄在插入和刪除時(shí)帶來(lái)內(nèi)存移動(dòng),從而提高實(shí)時(shí)庫(kù)整體效率的優(yōu)點(diǎn)。
【專(zhuān)利說(shuō)明】一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及實(shí)時(shí)數(shù)據(jù)庫(kù)技術(shù)應(yīng)用領(lǐng)域。

【背景技術(shù)】
[0002]整數(shù)型關(guān)鍵字是實(shí)時(shí)數(shù)據(jù)庫(kù)常用的關(guān)鍵字類(lèi)型之一,使用整數(shù)型關(guān)鍵字的實(shí)時(shí)數(shù)據(jù)庫(kù)的表只有一個(gè)關(guān)鍵字,該關(guān)鍵字為整數(shù)型。該實(shí)時(shí)數(shù)據(jù)庫(kù)的存儲(chǔ)和查找都依賴(lài)于整數(shù)型關(guān)鍵字,被廣泛的應(yīng)用在實(shí)時(shí)庫(kù)領(lǐng)域中。
[0003]整數(shù)型關(guān)鍵字的表在實(shí)時(shí)庫(kù)中通常以案關(guān)鍵字排序后連續(xù)存儲(chǔ)方式為主,查找算法以二分查找法為主。如圖1所示,為一個(gè)連續(xù)存儲(chǔ)方式的舉例示意圖,在連續(xù)存儲(chǔ)方式中,每條記錄按關(guān)鍵字排序,連續(xù)的存儲(chǔ)在內(nèi)存空間中。
[0004]連續(xù)存儲(chǔ)的問(wèn)題是,記錄和記錄之間按找關(guān)鍵字排序緊密排列,中間沒(méi)有空洞,從中間插入或刪除記錄會(huì)帶來(lái)內(nèi)存移動(dòng),移動(dòng)的內(nèi)存塊越大,效率越低;移動(dòng)的內(nèi)存塊越大,效率越低。二分查找的問(wèn)題是,其查找算法時(shí)間復(fù)雜度為0(log2n),記錄數(shù)越多效率越低。


【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)存在的不足,提供一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法,從中間插入和刪除記錄時(shí)不需要做內(nèi)存移動(dòng),從而提高實(shí)時(shí)庫(kù)插入和刪除記錄的效率。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法可采用如下技術(shù)方案:
[0007]—種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,對(duì)于實(shí)時(shí)數(shù)據(jù)庫(kù)中以整型值作為關(guān)鍵字的表,根據(jù)預(yù)設(shè)值,將記錄數(shù)據(jù)根據(jù)關(guān)鍵字大小分別采用非緊密排列與緊密排列的存儲(chǔ)方法,具體包括:
[0008]1)每張表的存儲(chǔ)空間分為等大小的兩部分,每張表設(shè)定一個(gè)最大記錄個(gè)數(shù),每個(gè)部分的大小為單條記錄個(gè)數(shù)X最大記錄個(gè)數(shù),其中第一塊存儲(chǔ)空間采用非緊密排列,第二塊存儲(chǔ)空間采用緊密排列;
[0009]2)對(duì)于整數(shù)型關(guān)鍵字值小于或等于最大記錄個(gè)數(shù)的記錄,將這部分記錄存儲(chǔ)在第一塊記錄空間中,記錄的位置是整數(shù)型關(guān)鍵字值作為下標(biāo)對(duì)應(yīng)的存儲(chǔ)空間中的位置,如果記錄存在則記錄頭置為1,如果不存在則記錄頭置為0 ;
[0010]3)對(duì)于整數(shù)型關(guān)鍵字大于最大記錄個(gè)數(shù)的記錄,按整數(shù)型關(guān)鍵字排序緊密存儲(chǔ)在第二塊存儲(chǔ)空間中。
[0011]與【背景技術(shù)】相比,本發(fā)明提供的整數(shù)型關(guān)鍵字表實(shí)時(shí)庫(kù)數(shù)據(jù)存儲(chǔ)方式采用預(yù)先為一定量的關(guān)鍵字指定固定的位置,關(guān)鍵字為N的記錄相對(duì)于存儲(chǔ)空間的偏移量就是NX (每條記錄所占大小),如果記錄存在則記錄頭置為1,如果不存在則記錄頭置為0。這樣做能夠避免記錄在插入和刪除時(shí)帶來(lái)內(nèi)存移動(dòng),從而提高實(shí)時(shí)庫(kù)整體效率。
[0012]本發(fā)明針對(duì)上述實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法還提供根據(jù)關(guān)鍵字的查找方法,如下:
[0013]1)對(duì)于所查找記錄整數(shù)型關(guān)鍵字小于或等于最大記錄個(gè)數(shù)的情況下,直接使用記錄整數(shù)型關(guān)鍵字作為查找點(diǎn),將第一塊存儲(chǔ)區(qū)域該點(diǎn)記錄返回;
[0014]2)對(duì)于所查找記錄整數(shù)型關(guān)鍵字大于最大記錄個(gè)數(shù)的情況下,使用二分查找算法從第二塊存儲(chǔ)區(qū)域查詢(xún)到對(duì)應(yīng)的記錄返回。
[0015]3、根據(jù)權(quán)利要求2所述的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于,
[0016]上述存儲(chǔ)方法和查找算法,同樣適用于長(zhǎng)整數(shù)型、短整數(shù)型作為關(guān)鍵字的實(shí)時(shí)庫(kù)表。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明中的該查找方法的時(shí)間復(fù)雜度為0(1),與記錄個(gè)數(shù)無(wú)關(guān),效率高于現(xiàn)有的二分查找算法。對(duì)于溢出區(qū)的數(shù)據(jù)仍然使用二分查找算法,同樣是為了滿(mǎn)足任意關(guān)鍵字都可以存儲(chǔ)的需求。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0018]圖1為現(xiàn)有技術(shù)中整數(shù)型關(guān)鍵字連續(xù)存儲(chǔ)方式一個(gè)舉例的示意圖。
[0019]圖2為本發(fā)明中的整數(shù)型關(guān)鍵字非連續(xù)存儲(chǔ)方式一個(gè)舉例的示意圖。
[0020]圖3為本發(fā)明中的記錄定位查找算法的流程圖。

【具體實(shí)施方式】
[0021]下面結(jié)合附圖和具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
[0022]請(qǐng)參閱圖1及圖2所示,本發(fā)明提供一種非連續(xù)存儲(chǔ)的整數(shù)型關(guān)鍵字表存儲(chǔ)方式。該存儲(chǔ)方式包括以下幾個(gè)部分:
[0023](1)對(duì)表的整數(shù)型關(guān)鍵字設(shè)置一個(gè)范圍,比如Μ ;
[0024](2)建立一個(gè)有Μ條記錄的存儲(chǔ)空間,稱(chēng)為直接定位區(qū)。每條記錄存儲(chǔ)空間有兩部分組成,一部分是記錄頭信息,用來(lái)標(biāo)記該記錄是否存在,一部分用來(lái)存放記錄實(shí)體信息;
[0025](3)假設(shè)一條記錄的關(guān)鍵字為Ν,并且0〈Ν〈 =Μ,如果記錄存在,則直接定位區(qū)中第Ν條記錄的記錄頭記為1,如果該記錄不存在則記為0 ;
[0026](4)在存儲(chǔ)空間直接定位區(qū)之后,建立一個(gè)存放關(guān)鍵字值>Μ的記錄的存儲(chǔ)空間,稱(chēng)為溢出區(qū);
[0027](5)溢出區(qū)中的記錄按關(guān)鍵字排序連續(xù)存儲(chǔ),和現(xiàn)有技術(shù)相同。
[0028]本發(fā)明提供的記錄存儲(chǔ)方式如圖2所示。
[0029]針對(duì)本發(fā)明提出的這種記錄存儲(chǔ)方式,本發(fā)明提出一種按關(guān)鍵字查找記錄的算法,稱(chēng)為直接定位算法,包括以下內(nèi)容:
[0030](1)對(duì)于關(guān)鍵字Ν,如果0〈N〈 = Μ,直接定位區(qū)第Ν條記錄,判斷記錄頭,如果記錄頭為1,則說(shuō)明記錄存在,從直接定位區(qū)第Ν條記錄的記錄實(shí)體區(qū)得到記錄;
[0031](2)對(duì)于關(guān)鍵字Ν,如果0〈N〈 = Μ,直接定位區(qū)第Ν條記錄,判斷記錄頭,如果記錄頭為0,則說(shuō)明關(guān)鍵字為Ν的記錄不存在;
[0032](3)對(duì)于關(guān)鍵字Ν>Μ,仍使用二分查找法在溢出區(qū)中判斷關(guān)鍵字為Ν的記錄是否存在,判斷依據(jù)和現(xiàn)有技術(shù)相同。
[0033]本發(fā)明提供的查找算法如圖3所示。
[0034]本發(fā)明提出的整數(shù)型關(guān)鍵字存儲(chǔ)方法和查找算法,同樣適用于長(zhǎng)整數(shù)型、短整數(shù)型作為關(guān)鍵字的實(shí)時(shí)庫(kù)表;
[0035]本發(fā)明提出的整數(shù)型關(guān)鍵字存儲(chǔ)方法和查找算法同樣適用于取數(shù)字型關(guān)鍵字的一部分作為直接定位存儲(chǔ)依據(jù)的情況,如以關(guān)鍵字除上一個(gè)正整數(shù)取模做直接定位,以整數(shù)型關(guān)鍵字的某幾個(gè)比特的值做直接定位等。
[0036]本發(fā)明涉及的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法是結(jié)合工作在應(yīng)用層的自主開(kāi)發(fā)的實(shí)時(shí)庫(kù)上實(shí)現(xiàn),不依賴(lài)于具體的操作系統(tǒng),適用于各種操作系統(tǒng)。本發(fā)明涉及的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法及其查找算法保證了可移植性,能夠隨著實(shí)時(shí)庫(kù)系統(tǒng)安全、穩(wěn)定地運(yùn)行在 IBM ΑΙΧλ Sun Solaris、Alpha Tru64、HPUX、Linux、Windows 等操作系統(tǒng)平臺(tái)上;系統(tǒng)編程語(yǔ)言釆用ANSI C/C++,并符合IEEE P0SIX.2標(biāo)準(zhǔn)。
【權(quán)利要求】
1.一種實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于,對(duì)于實(shí)時(shí)數(shù)據(jù)庫(kù)中以整型值作為關(guān)鍵字的表,根據(jù)預(yù)設(shè)值,將記錄數(shù)據(jù)根據(jù)關(guān)鍵字大小分別采用非緊密排列與緊密排列的存儲(chǔ)方法,具體包括: 1)每張表的存儲(chǔ)空間分為等大小的兩部分,每張表設(shè)定一個(gè)最大記錄個(gè)數(shù),每個(gè)部分的大小為單條記錄個(gè)數(shù)X最大記錄個(gè)數(shù),其中第一塊存儲(chǔ)空間采用非緊密排列,第二塊存儲(chǔ)空間采用緊密排列; 2)對(duì)于整數(shù)型關(guān)鍵字值小于或等于最大記錄個(gè)數(shù)的記錄,將這部分記錄存儲(chǔ)在第一塊記錄空間中,記錄的位置是整數(shù)型關(guān)鍵字值作為下標(biāo)對(duì)應(yīng)的存儲(chǔ)空間中的位置,如果記錄存在則記錄頭置為I,如果不存在則記錄頭置為O ; 3)對(duì)于整數(shù)型關(guān)鍵字大于最大記錄個(gè)數(shù)的記錄,按整數(shù)型關(guān)鍵字排序緊密存儲(chǔ)在第二塊存儲(chǔ)空間中。
2.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于,還提供根據(jù)關(guān)鍵字的查找方法,如下: 1)對(duì)于所查找記錄整數(shù)型關(guān)鍵字小于或等于最大記錄個(gè)數(shù)的情況下,直接使用記錄整數(shù)型關(guān)鍵字作為查找點(diǎn),將第一塊存儲(chǔ)區(qū)域該點(diǎn)記錄返回; 2)對(duì)于所查找記錄整數(shù)型關(guān)鍵字大于最大記錄個(gè)數(shù)的情況下,使用二分查找算法從第二塊存儲(chǔ)區(qū)域查詢(xún)到對(duì)應(yīng)的記錄返回。
3.根據(jù)權(quán)利要求2所述的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于, 上述存儲(chǔ)方法和查找方法,同樣適用于長(zhǎng)整數(shù)型、短整數(shù)型作為關(guān)鍵字的實(shí)時(shí)庫(kù)表。
4.根據(jù)權(quán)利要求2所述的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于, 上述存儲(chǔ)方法和查找方法同樣適用于取數(shù)字型關(guān)鍵字的一部分作為直接定位存儲(chǔ)依據(jù)的情況,包括以關(guān)鍵字除上一個(gè)正整數(shù)取模做直接定位,以整數(shù)型關(guān)鍵字的某幾個(gè)比特的值做直接定位。
5.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)整數(shù)型關(guān)鍵字存儲(chǔ)方法,其特征在于,所述第一塊存儲(chǔ)空間為直接定位區(qū);第二塊存儲(chǔ)空間為溢出區(qū)。
【文檔編號(hào)】G06F17/30GK104281685SQ201410529914
【公開(kāi)日】2015年1月14日 申請(qǐng)日期:2014年10月9日 優(yōu)先權(quán)日:2014年10月9日
【發(fā)明者】彭暉, 王瑾, 吳慶曦, 靳晶, 魏娜 申請(qǐng)人:國(guó)電南瑞科技股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新昌县| 张家港市| 两当县| 深圳市| 哈尔滨市| 贵德县| 香港| 湘阴县| 玉环县| 基隆市| 威信县| 北安市| 哈巴河县| 怀来县| 普洱| 海林市| 宁都县| 延津县| 昌图县| 图木舒克市| 炉霍县| 广西| 广元市| 青海省| 梁平县| 三河市| 临武县| 北川| 望谟县| 修武县| 宾川县| 巍山| 临汾市| 吴江市| 闽侯县| 淳安县| 兰坪| 临桂县| 磴口县| 新宾| 遵化市|