數據存儲結構:數據是怎麼在內存裏儲存的,就是在內存中的排列方式
數據存取方式:用怎樣的方式讀出數據和保存數據
樓主這裏其實並非數據存儲方式,而是數據的存取方式
若是對存儲方式不敢興趣的話,能夠不看,只看存取方式
[存取方式]
存取方式是指用戶在使用數據時按何種次序存取數據。主要有順序訪問、隨機訪問、索引訪問等
**順序訪問是按從前到後的順序對數據進行讀寫操做。這種存取方式最爲簡單。有的存儲設備如磁帶只能支持順序訪問。
**隨機訪問,也稱爲直接訪問,能夠按任意的次序對數據進行讀寫操做。有的存儲設備如磁盤能支持隨機訪問(固然也能支持順序訪問)。
**索引訪問,也稱按鍵訪問,這種方式對數據中的記錄按某個數據項(一般稱爲鍵)的值來排列,從而能夠根據鍵值來快速存取。如索引表很長,則能夠將索引表再加以索引,以造成具備層次結構的多級索引。若是將記錄塊的物理位置做爲鍵值,那麼能夠將隨機訪問做爲索引訪問的特例。
**散列存儲就是根據結點的關鍵字直接計算出該結點的存儲地址。散列的惟一目的就是下降重複。
[存儲結構]
數據的存儲結構一般分爲線性和非線性存儲結構,而非線性存儲結構主要有樹形和圖形存儲結構。
**線性存儲結構
**樹形存儲結構
**圖形存儲結構
線性存儲結構:包括順序,連接,索引,散列四種
順序存儲結構
順序存儲結構是把邏輯上相鄰的結點存儲在物理上相鄰的存儲單元裏,結點之間的關係由存儲單元的鄰接關係來體現。其優勢是佔用最少的存儲空間,缺點是因爲只能使用相鄰的一整塊存儲單元,所以可能產生較多的碎片現象。例如,一年四季的順序存儲結構如圖:
連接存儲結構
連接存儲結構是將結點所佔的存儲單元分爲兩部分,一部分存放結點自己的信息,即數據項。另外一部分存放該結點的後續結點所對應的存儲單元的地址,即爲指針項。優勢是不會出現碎片現象,充分利用全部的存儲單元,缺點是每一個結點佔用較多的存儲空間。例如,一年四季的連接存儲結構如圖:
索引存儲結構
索引存儲結構是用結點的索引號來肯定結點存儲地址,其優勢是檢索速度快,缺點是增長了附加的索引表,會佔用較多的存儲空間。
散列存儲結構
散列存儲結構是根據結點的值肯定它的存儲地址,優勢是檢索、增長和刪除結點的操做速度快,缺點是採用很差的散列函數時可能出現結點單元的碰撞,而須要附加時間和空間開銷。
===================================
數據元素之間的關係有兩種不一樣的表示方法:順序映象和非順序映象,並由此獲得兩種不一樣的存儲結構:順序存儲結構和鏈式存儲結構。
順序存儲方法:它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元裏,結點間的邏輯關係由存儲單元的鄰接關係來體現,由此獲得的存儲表示稱爲順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,一般藉助於程序設計語言中的數組來實現。
連接存儲方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關係是由附加的指針字段表示的。由此獲得的存儲表示稱爲鏈式存儲結構,鏈式存儲結構一般藉助於程序設計語言中的指針類型來實現。
順序存儲和連接存儲是數據的兩種最基本的存儲結構。
在順序存儲中,每一個存侗含有所存元素自己的信息,元素之間的邏輯關係是經過數組下標位置簡單計算出來彭線性表的順序存儲中,若一個元素存儲在對應數組中的下標位置爲i,則它的前驅元著數組中的下標位置爲i一1,它的後繼元素在對應數組中的下標位置爲i+1。在連接存個存儲結點不只含有所存元素自己的信息,並且含有元素之間邏輯關係的信息。
其中data表示值域,用來存儲.一個元素。 Pl,p2,…,Pill(1n≥1)均爲指針域,每一個韋值爲其對應的後繼元素或前驅元素所在結點(之後簡稱爲後繼結點或前驅結點)的存經過結點的指針域 (又稱爲鏈域)能夠訪問到對應的後繼結點或前驅結點,該後繼結一《結點稱爲指針域(鏈域)所指向(連接)的結點。若一一個結點中的某個指針域不須要指f 點,則令它的值爲空,用常量N-LILL表示,NIJ】上在iostream.h中被定義爲數值0。
數據的連接存儲表示又被稱爲連接表。當連接表中的每一個結點只含有一個指針稱爲單鏈表。
在數據的順序存儲中,因爲每一個元素的存儲位置均可以經過簡單計算獲得,因此刁元素的時間都相同;而在數據的連接存儲中,因爲每一個元素的存儲位置是保存在它的{或後繼結點中的,因此只有當訪問到其前驅結點或後繼結點後纔可以按指針訪問到自訪問任一元素的時間與該元素結點在連接存儲中的位置有關。
========================================
多級索引是將多個不一樣或相同的索引方法組合使用,對單級索引空間或者空間範圍進行多級劃分,解決超大型數據量的GIS系統檢索、分析、顯示的效率問題。多級索引因爲其多級的結構特性,每每能夠很好地利用計算機硬件資源的並行工做特性,如多CPU,磁盤陣列等,來提升檢索的效率。多級索引方法不少,不一樣的單級索引組合即可以構成不一樣的多級索引方法。可是因爲每種索引的特性不一樣,因此如何將多種索引融合成一體構成一種高效的多級索引也是空間索引的一個研究方向。
原理:
索引分割單元格網索引是一種簡單高效的多級索引方法,其基本原理相似於四叉樹,將空間範圍進行多級劃分,每一級劃分的空間均採用單元網格索引,構成一個多級網格空間,以適應不一樣範圍的高效查詢;與四叉樹不一樣的是每一次空間劃分均爲物理分割,一旦該級的網格肯定,則需創建相應的物理表格存儲該級的索引信息。
空間範圍的每一級劃分原理就是經過規則劃分(矩形或正方形)將索引區域劃分爲不重疊的許多子空間(矩形或正方形),對於該索引區域創建一個範圍索引表,記錄每一個子空間的範圍、劃分的級別和子空間索引表名稱;對每一個子空間單元再按照以上規則進行再次劃分;對於最後一級的子空間,則爲每一個子空間單元創建一個子空間索引表,存儲落在這個子空間以內的空間要素標識、外包絡矩形;而且對於最後一級的子空間,若是包含的空間要素個數太多,可直接將該子空間物理分割成多個。
經過該方式索引,在進行空間檢索時,能夠直接訪問空間區域覆蓋的和與空間區域相交的子空間的索引表,而後對空間索引表進行進一步求精判斷,以檢索出符合要求的空間實體。因爲進行了物理分割,那麼單個空間索引表維持恆定且較少的記錄數,並且空間索引表的字段域也只有幾個,數據量大大減小,所以檢索效率也就會比單級網格索引要高。ios