檔案存取法

檔案存取法

檔案的基本作用是存儲信息。當使用檔案時,必須將檔案的信息讀入計算機記憶體中。檔案存取法,也可以稱之為檔案的存取方法,是指讀寫檔案存儲器上的一個物理塊的方法。通常由三種檔案存取方法:順序存取法、直接存取法和按鍵存取法 (索引存取法)。檔案存取法與檔案的物理結構有關。

簡介

檔案是指由創建者所定義的、具有檔案名稱的一組相關元素的集合,可分為有結構檔案和無結構檔案兩種。 檔案的基本作用是存儲信息。檔案存取法即讀寫檔案存儲器上的一個物理塊的方法。主要與檔案的物理結構有關,檔案物理結構即檔案在外存物理存儲介質上的結構,它可分為順序結構(連續檔案)、連結結構(連結檔案)和索引結構(索引檔案)三種。

存取方法

順序存取

順序存取是按照檔案的邏輯地址順序存取。

固定長記錄的順序存取是十分簡單的。讀操作總是讀出上一次讀出的檔案的下一個記錄,同時,自動讓檔案記錄讀指針推進,以指向下一次要讀出的記錄位置。如果檔案是可讀可寫的。再設定一個檔案記錄指針,它總指向下一次要寫入記錄的存放位置,執行寫操作時,將一個記錄寫到檔案 末端。允許對這種檔案進行前跳或後退N(整數)個記錄的操作。順序存取主要用於磁帶檔案,但也適用於磁碟上的順序檔案。

可變長記錄的順序檔案,每個記錄的長度信息存放於記錄前面一個單元中,它的存取操作分兩步進行。讀出時,根據讀指針值先讀出存放記錄長度的單元 。然後,得到當前記錄長後再把當前記錄一起寫到指針指向的記錄位置,同時,調整寫指針值 。

由於順序檔案是順序存取的,可採用成組和分解操作來加速檔案的輸入輸出。

直接存取(隨機存取法)

很多套用場合要求以任意次序直接讀寫某個記錄。例如,航空訂票系統,把特定航班的所有信息用航班號作標識,存放在某物理塊中,用戶預訂某航班時,需要直接將該航班的信息取出。直接存取方法便適合於這類套用,它通常用於磁碟檔案。

為了實現直接存取,一個檔案可以看作由順序編號的物理塊組成的,這些塊常常劃成等長,作為定位和存取的一個最小單位,如一塊為1024位元組、4096位元組,視系統和套用而定。於是用戶可以請求讀塊22、然後,寫塊48,再讀塊9等等。直接存取檔案對讀或寫塊的次序沒有限制。用戶提供給作業系統的是相對塊號,它是相對於檔案開始位置的一個位移量,而絕對塊號則由系統換算得到。

索引存取

第三種類型的存取是基於索引檔案的索引存取方法。由於檔案中的記錄不按它在檔案中的位置,而按它的記錄鍵來編址,所以,用戶提供給作業系統記錄鍵後就可查找到所需記錄。通常記錄按記錄鍵的某種順序存放,例如,按代表健的字母先後次序來排序。對於這種檔案,除可採用按鍵存取外,也可以採用順序存取或直接存取的方法。信息塊的地址都可以通過查找記錄鍵而換算出。實際的系統中,大都採用多級索引,以加速記錄查找過程。

檔案的物理結構

連續檔案

定義:將一個檔案中邏輯上連續的信息存放到存儲介質的依次相鄰的塊上便形成順序結構,這類檔案叫連續檔案,又稱順序檔案。

優點:簡單; 支持順序存取和隨機存取;順序存取速度快;所需的磁碟尋道次數和尋道時間最少。

缺點:建立檔案前需要能預先確定檔案長度,以便分配存儲空間;修改、插入和增生檔案記錄有困難;對直接存儲器作連續分配,會造成少量空閒塊的浪費。

連結檔案

定義:一個檔案的信息存放在若干不連續的物理塊中,各塊之間通過指針連線,前一個物理塊指向下一個物理塊。

優點:提高了磁碟空間利用率,不存在外部碎片問題。有利於檔案插入和刪除。有利於檔案動態擴充。

缺點:存取速度慢,不適於隨機存取。可靠性問題,如指針出錯。更多的尋道次數和尋道時間。連結指針占用一定的空間。

索引檔案

定義:一個檔案的信息存放在若干不連續物理塊中,系統為每個檔案建立一個專用數據結構----索引表,表中每一欄目指出檔案信息所在的邏輯塊號和與之對應的物理塊號。索引表的物理地址則由檔案說明信息項給出。

索引項的組織:

稠密索引:每個邏輯紀錄設定一個索引項。

稀疏索引:一組邏輯紀錄設定一個索引項。

優點:保持了連結結構的優點,又解決了其缺點:即能順序存取,又能隨機存取。滿足了檔案動態增長、插入刪除的要求。也能充分利用外存空間。

缺點:較多的尋道次數和尋道時間。索引表本身帶來了系統開銷 如:內外存空間,存取時間。

相關詞條

熱門詞條

聯絡我們