网站首页
教育杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
医学杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
经济杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
金融杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
管理杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
科技杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
工业杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
SCI杂志
中科院1区 中科院2区 中科院3区 中科院4区
全部期刊
公務(wù)員期刊網(wǎng) 論文中心 正文

內(nèi)存數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)研究

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了內(nèi)存數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)研究范文,希望能給你帶來靈感和參考,敬請閱讀。

內(nèi)存數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)研究

內(nèi)存數(shù)據(jù)庫在數(shù)據(jù)密集型行業(yè)領(lǐng)域的日常工作中起到了十分關(guān)鍵的作用,能夠?qū)崟r、高效地滿足技術(shù)人員對于數(shù)據(jù)的訪問需求。本文分別對內(nèi)存數(shù)據(jù)庫的記錄數(shù)據(jù)組織結(jié)構(gòu)以及內(nèi)存數(shù)據(jù)庫的索引數(shù)據(jù)結(jié)構(gòu)進行了詳細(xì)地說明和分析,進而對內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)進行更好地掌握,來不斷提升內(nèi)存數(shù)據(jù)庫的性能。

1內(nèi)存數(shù)據(jù)庫的記錄數(shù)據(jù)結(jié)構(gòu)

1.1區(qū)段式數(shù)據(jù)結(jié)構(gòu)

從目前的發(fā)展情況來看,大部分內(nèi)存數(shù)據(jù)都是數(shù)據(jù)在關(guān)系表的基礎(chǔ)上所建立的一種關(guān)系數(shù)據(jù)庫,而技術(shù)人員將數(shù)據(jù)存儲到內(nèi)存數(shù)據(jù)庫中時,往往使用的是二維關(guān)系表來進行的,因此,二維關(guān)系表在當(dāng)前的內(nèi)存數(shù)據(jù)庫中也得到了廣泛的應(yīng)用。一方面,利用二維關(guān)系表保存數(shù)據(jù)可以維護數(shù)據(jù)的描述信息。描述信息包含了數(shù)據(jù)的字段名、表名、索引、類型等內(nèi)容,這些信息是用于描述數(shù)據(jù)在關(guān)系表中的信息。另一方面,利用二維關(guān)系表保存數(shù)據(jù)可以維護數(shù)據(jù)的記錄信息。記錄信息指的是數(shù)據(jù)被存儲在關(guān)系表中的每一條記錄內(nèi)容。這類基于關(guān)系表的內(nèi)存數(shù)據(jù)庫通常會采用區(qū)段式的數(shù)據(jù)組織結(jié)構(gòu),來將內(nèi)存數(shù)據(jù)庫的共享內(nèi)存劃分為若干個不同的分區(qū),在每一個分區(qū)中存儲一個內(nèi)存數(shù)據(jù)庫中的關(guān)系;而每一個分區(qū)又要分成若干個長度相等的段,這些段就是內(nèi)存數(shù)據(jù)庫共享內(nèi)存進行動態(tài)分配的一個單位,而內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù),就是存儲在段中的一個記錄塊當(dāng)中。在內(nèi)存數(shù)據(jù)庫中采取區(qū)段式的數(shù)據(jù)組織結(jié)構(gòu),需要對每一項數(shù)據(jù)都標(biāo)志其區(qū)號、斷號以及槽號。這樣一來,就可以快速查詢到數(shù)據(jù)在內(nèi)存數(shù)據(jù)庫中的具體位置,大大提升了數(shù)據(jù)查詢的效率。值得注意的是,數(shù)據(jù)的分區(qū)號必須對應(yīng)其關(guān)系表名;而數(shù)據(jù)的槽號要對數(shù)控在段內(nèi)的偏移和長度進行記錄。

1.2基于對象的數(shù)據(jù)結(jié)構(gòu)

近年來,基于對象的數(shù)據(jù)結(jié)構(gòu)技術(shù)不斷進行發(fā)展,因此在內(nèi)存數(shù)據(jù)庫中也得到了更加廣泛的應(yīng)用,與區(qū)段式的數(shù)據(jù)組織結(jié)構(gòu)成為了內(nèi)存數(shù)據(jù)庫中兩種重要的數(shù)據(jù)結(jié)構(gòu)。在內(nèi)存數(shù)據(jù)庫中使用基于對象的數(shù)據(jù)組織結(jié)構(gòu)時,無論是對數(shù)據(jù)的存儲、記錄,還是對數(shù)據(jù)的索引,都是要通過對象來完成。因此,基于對象的數(shù)據(jù)組織結(jié)構(gòu),是以對象為單位,來將內(nèi)存數(shù)據(jù)庫的共享內(nèi)存進行分配,主要記錄了對象與對象之間,以及索引對象之間的聯(lián)系,整個內(nèi)存數(shù)據(jù)庫的運行都是通過對象自身來維持的。基于此,在內(nèi)存數(shù)據(jù)庫中建立基于對象的數(shù)據(jù)組織結(jié)構(gòu)時,需要利用指針來維持對象之間的聯(lián)系,進而達到對數(shù)據(jù)進行存儲、記錄、處理以及索引等目的。目前,在內(nèi)存數(shù)據(jù)庫中應(yīng)用基于對象的數(shù)據(jù)組織結(jié)構(gòu),主要是通過對象之間的聯(lián)系,來提升對于數(shù)據(jù)管理工作的效率和質(zhì)量。相比較于區(qū)段式的數(shù)據(jù)組織結(jié)構(gòu)來說,基于對象的數(shù)據(jù)組織結(jié)構(gòu)更加簡單,只要為各項數(shù)據(jù)及其記錄建立相應(yīng)的對象,就能夠?qū)崿F(xiàn)對數(shù)據(jù)的管理工作。

1.3影子內(nèi)存式數(shù)據(jù)結(jié)構(gòu)

影子內(nèi)存式數(shù)據(jù)組織結(jié)構(gòu)在內(nèi)存數(shù)據(jù)庫中主要包含了兩個部分,第一個部分就是數(shù)據(jù)在內(nèi)存數(shù)據(jù)庫中的主拷貝;而另外一個部分,就是數(shù)據(jù)在內(nèi)存數(shù)據(jù)庫中的影子拷貝。在內(nèi)存數(shù)據(jù)的日常運行當(dāng)中,每次技術(shù)人員在對數(shù)據(jù)進行查詢時,都會同時產(chǎn)生兩個地址,一個在內(nèi)存數(shù)據(jù)庫的主拷貝當(dāng)中,另一個是在內(nèi)存數(shù)據(jù)庫的影子內(nèi)存當(dāng)中,所產(chǎn)生的雙地址先使對內(nèi)存數(shù)據(jù)庫的影子內(nèi)存進行試探,在試探失敗的情況下再對內(nèi)粗?jǐn)?shù)據(jù)庫的主拷貝進行試探。除此之外,在內(nèi)存數(shù)據(jù)庫中建立影子內(nèi)存式數(shù)據(jù)組織結(jié)構(gòu),在數(shù)據(jù)進行更新時,主要環(huán)節(jié)和流程都是在內(nèi)存數(shù)據(jù)庫的影子內(nèi)存當(dāng)中進行,并在內(nèi)存數(shù)據(jù)庫的活動日志中進行記錄;同時,在數(shù)據(jù)進行提交時,還會在內(nèi)存數(shù)據(jù)庫的影子內(nèi)存中產(chǎn)生一個后映像,并拷貝到內(nèi)存數(shù)據(jù)庫的主拷貝當(dāng)中。首先,影子內(nèi)存式數(shù)據(jù)組織結(jié)構(gòu)將后映像與用戶區(qū)進行了整合,減少了數(shù)據(jù)的日志緩沖區(qū),提升了數(shù)據(jù)管理工作的效率。其次,影子內(nèi)存式數(shù)據(jù)組織結(jié)構(gòu)在內(nèi)存數(shù)據(jù)庫產(chǎn)生故障,或是數(shù)據(jù)錯誤時,只刪除影子內(nèi)存中的數(shù)據(jù)就可以,使數(shù)據(jù)管理工作更加便捷。

2內(nèi)存數(shù)據(jù)庫的索引數(shù)據(jù)結(jié)構(gòu)

2.1磁盤和內(nèi)存

通常情況下,數(shù)據(jù)庫內(nèi)部存儲的索引構(gòu)成同磁盤系統(tǒng)中的索引構(gòu)成存在差異,磁盤中的索引工作是對最小磁盤多次查找及對其內(nèi)部空間的實際占用,內(nèi)存中的索引工作不會對磁盤最小化進行多次查找,工作的重心全部放在內(nèi)存中。因此,內(nèi)存中的索引工作是最小程度占用內(nèi)存并使整體時間減少,這種關(guān)系構(gòu)建在磁盤內(nèi)存的基礎(chǔ)上,在索引時不需要保存精確的數(shù)值,內(nèi)在的存儲能夠為元組指明方向,必要的時候可以對這些指針進行查看以便能夠獲得精確的數(shù)值,這種做法有以下幾種優(yōu)勢:第一,通過單一元組內(nèi)部指針就能夠查找到其和內(nèi)在的精確數(shù)值,在一定程度上能夠減少磁盤索引的實際大小。第二,在對長段字節(jié)索引時可以將長段字節(jié)進行壓縮,使搜索變得容易。第三,當(dāng)需要更新磁盤中的索引時,可移動的指針價值會低于移動屬性數(shù)值。第四,獨立元組指針可以對內(nèi)部任意字段展開訪問,索引中使用特別的方式多屬性要求將會變少。

2.2哈希索引

這種索引方式會對哈希函數(shù)進行定義,使用系統(tǒng)中數(shù)據(jù)搜索將其傳送到哈希函數(shù)相匹配的哈希數(shù)值進行計算,將索引項目同匹配的哈希數(shù)值在某種程度上建立聯(lián)系。因為儲存不同的哈希數(shù)值對應(yīng)的索引數(shù)據(jù)地址通常是線性變化的,因此使用這種方式能夠更加迅速的找出不同哈希數(shù)值的第一個地址,通過哈希索引方式完成數(shù)據(jù)的準(zhǔn)確查找往往只用常數(shù)復(fù)雜的時間。對不同的數(shù)據(jù)進行索引通常會獲得相同的答案,因此需要對不同的哈希值設(shè)置動態(tài)數(shù)據(jù)表,用來存儲對應(yīng)的哈希數(shù)據(jù)搜索記錄。想要設(shè)置一條索引時,在其中運用哈希函數(shù)就可以輕易得到對應(yīng)的數(shù)值,通過獲取的數(shù)值快速找到哈希值數(shù)據(jù)庫中的第一個地址,將地址信息傳送到數(shù)據(jù)鏈中。如果想要通過這種方式尋找特定的信息時,可以對索引中存在的數(shù)值使用哈希函數(shù)獲得哈希數(shù)值,通過這個數(shù)值找到對應(yīng)的第一個地址,在數(shù)據(jù)鏈中找到想要獲得的真正地址數(shù)據(jù)。日常中對哈希索引進行建立和維護并不困難,但選擇正確的哈希函數(shù)卻十分困難,當(dāng)哈希函數(shù)中的哈希數(shù)值過小,很可能會使數(shù)據(jù)鏈變長,最終導(dǎo)致數(shù)據(jù)鏈循環(huán)時間過久,工作效率降低。

2.3T樹索引

人們在過去使用的大多數(shù)磁盤中的數(shù)據(jù)庫都是運用B樹這種索引方式,使用B樹這種索引方式對數(shù)據(jù)進行查找能夠在一定程度上使磁盤實際查找次數(shù)得到減少,提升磁盤內(nèi)部的I/0效率。在內(nèi)部存儲數(shù)據(jù)中使用B樹方式,會使數(shù)據(jù)庫中實際的覆蓋比例降低。現(xiàn)階段,內(nèi)部存儲數(shù)據(jù)中使用較多的索引是將B樹同AVL樹兩種相融合最終形成的T形樹。這種T形樹定點中有數(shù)據(jù)、指針兩種區(qū)域,其中數(shù)據(jù)區(qū)域又包括大量的目標(biāo),即按照一定順序組合不同的重要數(shù)值,指針區(qū)域包括一個父定點指向和兩個子定點指向,定點有著邊界數(shù)值(GLB)和邊界數(shù)值(LUB)。從內(nèi)部定點角度說,GLB數(shù)值是進行相關(guān)操作時上一定點中的最大數(shù)據(jù),LUB數(shù)值是進行相關(guān)操作時下一定點中的最小數(shù)據(jù)。T形樹是一種樹形結(jié)構(gòu),具備優(yōu)秀的二叉索引屬性,在其內(nèi)部獨立定點中存在不同的數(shù)據(jù),同時具備著不錯的保存修改功能。T樹定點還具有兩種屬性:最小和最大兩種充滿度,充滿度含義為定點中所有信息值的數(shù)量。T樹在不同定點中存儲資料,避免出現(xiàn)大量資料在定點中保存導(dǎo)致數(shù)據(jù)范圍覆蓋比例小的狀況。定點中數(shù)據(jù)保存方式使樹形結(jié)構(gòu)查詢數(shù)據(jù)總量變小,因為T樹型是AVL樹型的優(yōu)化,具備后者的平衡優(yōu)勢,提升實際索引功效。在使用T樹這種方式搜索時,主要索引操作有:中序遍歷、平衡、旋轉(zhuǎn)及定點維護。哈希索引在查找數(shù)值時速度相對較快,T樹這種索引方式具備樹形索引本身的二叉優(yōu)勢,且內(nèi)部設(shè)計擁有良好的存儲屬性,這兩種索引方式如今應(yīng)用均較為頻繁。

2.4數(shù)組索引

用戶想要在短暫時間內(nèi)查詢到需要的數(shù)據(jù),索引是數(shù)據(jù)查詢中的必備條件。內(nèi)部存儲數(shù)據(jù)中的索引不能夠保存精確的數(shù)據(jù),存儲時將信息向元組指引,如果有需求可以通過這些指引獲得數(shù)值。將數(shù)組用作一種索引結(jié)構(gòu)優(yōu)勢為占用相對較小的內(nèi)部空間,內(nèi)部構(gòu)成并不復(fù)雜,能夠在短暫時間完成搜索。這種方式同樣有一些缺點,在數(shù)據(jù)變換時移動的方式為O(n),在不間斷移動的環(huán)境中效果相對較低,如果查詢的背景為相對靜止,這種方式為最優(yōu)的選擇。數(shù)據(jù)索引過程中使用B樹結(jié)構(gòu),受其自身屬性影響在搜索時會接觸少量的定點。大多數(shù)系統(tǒng)運行中將B樹優(yōu)化為B+樹,這種方式能夠?qū)⑷繑?shù)據(jù)存儲在內(nèi)部樹枝節(jié)點位置,但從內(nèi)部存儲數(shù)據(jù)角度思考,B樹結(jié)構(gòu)優(yōu)勢大于B+樹結(jié)構(gòu),這是因為內(nèi)部存儲時將數(shù)據(jù)分散保存會造成空間的浪費。B樹中內(nèi)部存儲的利用效果較好,因此在內(nèi)部存儲數(shù)據(jù)時多數(shù)使用這種方式。哈希結(jié)構(gòu)連接多用于數(shù)據(jù)內(nèi)部存儲平穩(wěn)環(huán)境中,它是一種相對靜止的結(jié)構(gòu)工作速度較快,但這種優(yōu)勢也對其工作帶來一定局限,這種結(jié)構(gòu)只可以在靜態(tài)環(huán)境中使用,如果背景轉(zhuǎn)換為動態(tài)它將不會運行,在補充哈希數(shù)據(jù)表格時需要嚴(yán)格參考其設(shè)定的大小,如果預(yù)計的數(shù)值過小運行的效果將會大幅度下降,如果數(shù)值過大將會浪費大量的運行空間。能夠擴展的哈希索引使用哈希動態(tài)表格,因此并不能知道設(shè)定的大小,一個哈希定點能夠存儲不同的數(shù)據(jù),如果容量已滿將會自動形成兩個定點。

結(jié)論:

綜上所述,記錄數(shù)據(jù)組織結(jié)構(gòu)和索引數(shù)據(jù)結(jié)構(gòu)是內(nèi)存數(shù)據(jù)庫中重要的組成部分,在實際應(yīng)用的過程中,技術(shù)人員必須要根據(jù)實際情況來對內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)進行調(diào)整和完善;同時,技術(shù)人員在使用內(nèi)存數(shù)據(jù)庫的同時,還要配以磁盤數(shù)據(jù)庫作為備份數(shù)據(jù)庫,進而更好地防止數(shù)據(jù)出現(xiàn)丟失、泄露等嚴(yán)重問題。

作者:陳露娟 令狐東楊 單位:貴州輕工職業(yè)技術(shù)學(xué)院

免责声明

本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

AI写作,高效原创

在线指导,快速准确,满意为止

立即体验
文秘服务 AI帮写作 润色服务 论文发表