1. 程式人生 > >第七章 檔案管理(二)——檔案的邏輯結構

第七章 檔案管理(二)——檔案的邏輯結構

分類有幾種:
1.順序檔案(更適合定長)
兩種記錄排列方式
串結構:按記錄形成的時間順序序列排序。記錄順序與關鍵字無關;
順序結構:按關鍵字排序。
檢索方法:
從頭檢索,順序查詢要找的記錄,定長的計算相對快。
順序結構,可用折半查詢、插值查詢、跳步查詢等演算法提高效率
定址過程:
第i條記錄地址(定長) :
讀寫指標 + 記錄長度: ptr + i*L
第i條記錄地址(變長) :
掃描或讀取前面0~i-1條記錄
第i條記錄地址(變長)
變長記錄資料前用1位元組儲存每條記錄長度,順序掃描,但不用把記錄全掃描完
j-1
(Lj +1)
j=0
按關鍵字檢索:
定長:結合折半查詢提高檢索速度
變長:從第1個記錄開始順序掃描,直到掃描到要檢索的關鍵字標識的記錄(例如:資料庫、檔案系統的基於檔名排序的目錄檢索)

2.索引檔案(更適合變長)
為了方便單個記錄的隨機存取,為檔案建立一個索引表,記錄每項記錄在檔案的邏輯地址及記錄長度;該索引表按關鍵字排序,。
索引表內容:索引號、長度、記錄地址指標
檢索效率:索引表本身即是個按記錄鍵排序的定長順序檔案,所以能利用演算法提高索引表檢索速度

折半檢索過程舉例
給出使用者關鍵字
檢索索引表(設有n條記錄,設一個索引表項佔x位元組),則索引表的x*n/2位元組處記錄著n/2號記錄的地址
根據第2步的地址,讀一條記錄,若記錄中關鍵字不匹配,再判斷找第n/4還是第n/2+n/4條記錄

一個索引檔案可以有多個索引表,為方便使用者根據不同記錄屬性檢索記錄,為順序檔案建立多個索引表,每種能成為檢索條件的域都配備一張索引表。
索引檔案的優缺點
適用於變長記錄,可提高檢索速度,實現直接存取
索引表增加了儲存開銷

3.索引順序檔案
既要方便,又要降低開銷
將順序檔案的所有記錄分組,還是建立索引表,但每個表項記錄的是每組第1條記錄的鍵值和地址,組內記錄仍按順序方式檢索和使用。
檢索一條記錄的過程:
先計算記錄是在第幾組,然後再檢索索引確定組在哪裡後,在組內順序查詢。
可利用多級索引,進一步提高檢索效率。
在這裡插入圖片描述

4.直接檔案
給定鍵值(如學號)不需順序檢索直接得到記錄的實體地址
在這裡插入圖片描述