20 資料結構高階二十檔案相關概念

2021-08-08 17:07:41 字數 1756 閱讀 7344

20. 資料結構高階二十檔案相關概念

「生活是欺騙不了的,乙個人要生活得光明磊落。

-- 馮雪峰」

最後在資料結構高階這塊,我們來看些檔案相關的概念。

檔案是性質相同的記錄的集合。檔案的資料量通常很大,它被放置在外存上。

順序檔案是指按記錄進入檔案的先後順序存放、其邏輯順序跟物理順序一致的檔案。若順序檔案中的記錄按其主關鍵字有序,則稱此順序檔案為順序有序檔案;否則稱為順序無序檔案。為了提高檢索效率,常常將順序檔案組織成有序檔案。

順序檔案的結構特點:

記錄在檔案中的排列順序是由記錄進入儲存介質的次序決定的, 即檔案物理結構中記錄的排列順序和檔案的邏輯結構中記錄的排列順序一致。

用索引的方法組織檔案時,通常是在檔案本身(稱為主檔案)之外,另外建立一張表,它指明邏輯記錄和物理記錄之間的一一對應關係,這張表就叫做索引表,它和主檔案一起構成的檔案稱作索引檔案。

索引表中的每一項稱作索引項,一般索引項都是由主關鍵字和該關鍵字所在記錄的實體地址組成的。顯然,索引表必須按主關鍵字有序,而主檔案本身則可以按主關鍵字有序或無序,前者稱為索引順序檔案,後者稱為索引非順序檔案。  

對於索引非順序檔案,由於主檔案中記錄是無序的,則必須為每個記錄建立乙個索引項,這樣建立的索引表稱為稠密索引。對於索引順序檔案,由於主檔案中記錄按關鍵字有序,則可對一組記錄建立乙個索引項,例如,讓檔案中每個頁塊對應乙個索引項,這種索引表稱之為稀疏索引。    

索引檔案在儲存器上分為兩個區:索引區和資料區,前者存放索引表,後者存放主檔案。在建立檔案過程中,按輸入記錄的先後次序建立資料區和索引表,這樣的索引表其關鍵字是無字的,待全部記錄輸入完畢後再對索引表進行排序,排序後的索引表和主檔案一起就形成了索引檔案。

isam(index sequential access method)(索引順序訪問方法)是一種專為磁碟訪問設計的檔案組織方法。

vsam是虛擬儲存訪問方法(virtual storage access method)的英文縮寫。vsam檔案是一種採用虛擬儲存訪問方法的檔案。vsam檔案的儲存單位是控制區間和控制區域,這是一些邏輯儲存單位,與柱面、磁軌等實際儲存單位並沒有必然的聯絡。使用者在訪問vsam檔案的記錄時,不需要考慮該記錄的當前位置是在記憶體還是在外存,也不需要考虎何時執行對外存進行讀/寫的命令。可見,這種檔案較isam檔案更方便使用者使用。

雜湊檔案也稱為雜湊檔案,是利用雜湊儲存方式組織的檔案,亦稱為直接訪問檔案。它類似於雜湊表,即根據檔案中關鍵字的特點,設計乙個雜湊函式和處理衝突的方法,將記錄雜湊到儲存裝置上。

與雜湊表不同的是,對於檔案來說,磁碟上的檔案記錄通常是成組存放的,若干個記錄組成乙個儲存單位,在雜湊檔案中,這個儲存單位叫做桶。假如乙個桶能存放m個記錄,則當桶中已有m個同義詞的記錄時,存放第m+1個同義詞會發生「溢位」。處理溢位雖可採用雜湊表中處理衝突的各種方法,但對雜湊檔案而言,主要採用鏈位址法。

前面介紹的檔案都是只含乙個主關鍵字的檔案。為了提高查詢效率,還需要對被查詢的次關鍵字建立相應的索引,這種包含有多個次關鍵字索引的檔案稱為多關鍵字檔案。次關鍵字索引本身可以是順序表,也可以是樹表。

多重表檔案是將索引方法和鏈結方法相結合的一種組織方式,它對每個需要查詢的次關鍵字建立乙個索引,同時將具有相同次關鍵字的記錄鏈結成乙個鍊錶,並將此鍊錶的頭指標、鍊錶長度及次關鍵字,作為索引表的乙個索引項。通常多重表檔案的主檔案是乙個順序檔案。

倒排檔案和多重表檔案的區別在於具有相同次關鍵字的記錄不進行鏈結,而是在相應的次關鍵字索引表的該索引項中直接列出這些記錄的實體地址或記錄號。這樣的索引表稱為倒排表。由主檔案和倒排表共同組成倒排檔案。

資料結構總概

第一遍看資料結構的時候知道裡邊有樹,圖,線性結構,鏈式結構等,但之間的聯絡其實並不是很清楚 這是第一遍的導圖。看完第二遍才能把這整本書給串起來。首先,資料結構指的是計算機組織資料儲存資料的方式。所以這本書就是介紹怎麼來對計算機裡的資料進行組織和儲存。資料結構的邏輯結構分為 集合 線性結構 樹形結構 ...

高階資料結構

struct treenode treenode是經典的二叉樹節點,在資料的序列化和反序列按照層遍歷來處理的。以上二叉樹會被序列化為 1 root節點1,是第一層 2,3 然後第二層是2,3 4,第三層分別是2節點的兩個孩子節點空,用 來表示,然後3節點的左孩子為4,右孩子節點為 5 第四層4節點的...

高階資料結構

與普通佇列的區別 1.保證每次取出的元素時佇列中優先順序最高的 2.優先級別可自定義 場景 從雜亂無序的資料中按照一定的順序 或者優先順序 篩選資料 本質 1.二叉堆的結構,堆在英文裡叫binary heep 2.利用乙個陣列結構來實現完全二叉樹 特性 1.陣列裡的第乙個元素array 0 擁有最高...