順序磁碟檔案

順序磁碟檔案

順序檔案是記錄按其在檔案中的邏輯順序依次進入存儲介質而建立的,即順序檔案中物理記錄的順序和邏輯記錄的順序是一致的。 順序磁碟檔案即存儲在磁碟中檔案的邏輯順序和物理順序是一致的。其特點是存取檔案是順序的,不能直接存取。

簡介

檔案是記錄的集合。檔案中的記錄可以是任意順序的,因此,它可以按照各種不同的順序進行排列。一般地可以歸納為以下兩種情況:

第一種情況是串結構,各記錄之間的順序與關鍵字無關。通常的辦法是由時間來決定,即按存入時間的先後排列,最先存入的記錄作為第一個記錄,其次存入的為第二個記錄……,以此類推。

第二種情況是順序結構,指檔案中的所有記錄按關鍵字(詞)排列。可以按關鍵字的長短從小到大排序,也可以從大到小排序;或按其英文字母排序。

順序磁碟檔案即檔案在磁碟中的物理結構和順序結構是一致的,磁碟順序檔案適合批量存取。增加或刪除一個檔案十分困難。常見查找方法有順序查找、索引順序存取方法。

檔案結構

通常, 檔案是由一系列的記錄組成的。檔案系統設計的關鍵要素,是指將這些記錄構成一個檔案的方法,以及將一個檔案存儲到外存上的方法。事實上,對於任何一個檔案,都存在著以下兩種形式的結構:

(1) 檔案的邏輯結構(File Logical Structure)。這是從用戶觀點出發所觀察到的檔案組織形式, 是用戶可以直接處理的數據及其結構, 它獨立於檔案的物理特性, 又稱為檔案組織(FileOrganization)。

(2) 檔案的物理結構,又稱為檔案的存儲結構,是指檔案在外存上的存儲組織形式。這不僅與存儲介質的存儲性能有關,而且與所採用的外存分配方式有關。無論是檔案的邏輯結構,還是其物理結構,都會影響對檔案的檢索速度。

優缺點

順序檔案的最佳套用場合,是在對諸記錄進行批量存取時,即每次要讀或寫一大批記錄。此時,對順序檔案的存取效率是所有邏輯檔案中最高的;此外,也只有順序檔案才能存儲在磁帶上,並能有效地工作。

在互動套用的場合,如果用戶(程式)要求查找或修改單個記錄,為此系統便要去逐個地查找諸記錄。這時,順序檔案所表現出來的性能就可能很差,尤其是當檔案較大時,情況更為嚴重。例如,有一個含有104個記錄的順序檔案,如果對它採用順序查找法去查找一個指定的記錄,則平均需要查找5×103個記錄;如果是可變長記錄的順序檔案,則為查找一個記錄所需付出的開銷將更大,這就限制了順序檔案的長度。

順序檔案的另一個缺點是,如果想增加或刪除一個記錄,都比較困難。為了解決這一問題,可以為順序檔案配置一個運行記錄檔案(Log File)或稱為事務檔案(Transaction File),把試圖增加、刪除或修改的信息記錄於其中,規定每隔一定時間,例如4小時,將運行記錄檔案與原來的主檔案加以合併,產生一個按關鍵字排序的新檔案。

方法

順序查找

順序查找是在一個已知無(或有序)序佇列中找出與給定關鍵字相同的數的具體位置。原理是讓關鍵字與佇列中的數從最後一個開始逐個比較,直到找出與給定關鍵字相同的數為止,它的缺點是效率低下。

索引順序存取方法

SAM為Indexed Sequential Access Methed(索引順序存取方法)的縮寫,它是一種專為磁碟存取檔案設計的檔案組織方式,採用靜態索引結構。由於磁碟是以盤組、柱面和磁軌三級地址存取的設備,則可對磁碟上的數據檔案建立盤組、柱面和磁軌多級索引。

在ISAM檔案上檢索記錄時,從主索引出發,找到相應的柱面索引;從柱面索引找到記錄所在柱面的磁軌索引;從磁軌索引找到記錄所在磁軌的起始地址,由此出發在該磁軌上進行順序查找,直到找到為止。若找遍該磁軌均不存在此記錄,則表明該檔案中無此記錄;若被查找的記錄在溢出區,則可從磁軌索引項的溢出索引項中得到溢出鍊表的頭指針,然後對該表進行順序查找。

相關詞條

熱門詞條

聯絡我們