順序存取

順序存取

順序存取是一種按記錄的邏輯順序進行讀、寫操作的存取方法。即按照信息在存儲器中的實際位置所決定的順序使用信息。在記錄式檔案中,順序存取反映為按記錄的排列順序來存取。如果當前存取的記錄為R-1,則下次要存取的記錄自動地確定為R。在流式檔案中順序存取反映為當前讀寫指針的變化,即在存取完一段信息之後,讀寫指針自動加上這段信息的長度,以便指出下次存取的位置。

基本介紹

  • 中文名:順序存取
  • 外文名:sequential access
  • 領域:計算機科學
  • 特點:按記錄的邏輯順序進行讀、寫
  • 有關術語:隨機存取
  • 支持檔案:順序檔案
簡介,順序檔案,順序存取設備,

簡介

存取方式是用戶通過對檔案的存取完成對檔案的各種操作。檔案的存取方式是由檔案的性質和用戶使用檔案的情況確定的,一般有順序存取和隨機存取兩種。順序存取是按順序存入或檢出文檔中數據項的存取方法。典型的處理方式是把數據按順序存貯在磁帶上,使用時按事先確定的順序依次提取磁帶上的數據,同時按事先設計好的格式列印出來。這種方法遠比隨機存取更難使用,而且對於有些問題證明是不可行的。使用順序存取的需要對於算法的選擇產生了極大的而且往往是災難性的影響。隨機存取又稱直接存取,即允許用戶根據關鍵字存取檔案的任何一個記錄,或者根據存取命令把讀寫指針轉移到指定位置進行讀寫。

順序檔案

檔案是記錄的集合。檔案中的記錄可以是任意順序的,因此,它可以按照各種不同的順序進行排列。一般地,可歸納為以下兩種情況:
第一種是串結構,各記錄之間的順序與關鍵字無關。通常的辦法是由時間來決定,即按存入時間的先後排列,最先存入的記錄作為第一個記錄,其次存入的為第二個記錄……,依此類推。
第二種情況是順序結構,指檔案中的所有記錄按關鍵字(詞)排列。可以按關鍵字的長短從小到大排序,也可以從大到小排序;或按其英文字母順序排序。對順序結構檔案可有更高的檢索效率,因為在檢索串結構檔案時,每次都必須從頭開始,逐個記錄地查找,直至找到指定的記錄,或查完所有的記錄為止。而對順序結構檔案,則可利用某種有效的查找算法,如折半查找法、插值查找法、跳步查找法等方法來提高檢索效率。其中又有定長的、不定長的順序檔案,只能順序存取。。對於定長記錄的順序檔案,如果已知當前記錄的邏輯地址,便很容易確定下一個記錄的邏輯地址。在讀一個檔案時,可設定一個讀指針 Rptr,令它指向下一個記錄的首地址,每當讀完一個記錄時,便執行
Rptr:=Rptr + L
操作,使之指向下一個記錄的首地址,其中的 L 為記錄長度。類似地,在寫一個檔案時,也應設定一個寫指針 Wptr,使之指向要寫的記錄的首地址。同樣,在每寫完一個記錄時,又須執行以下操作:
Wptr:=Wptr + L
對於變長記錄的順序檔案,在順序讀或寫時的情況相似,但應分別為它們設定讀或寫指針,在每次讀或寫完一個記錄後,須將讀或寫指針加上 L。L 是剛讀或剛寫完的記錄的長度。順序檔案的最佳套用場合是在對諸記錄進行批量存取時,即每次要讀或寫一大批記錄時。此時,對順序檔案的存取效率是所有邏輯檔案中最高的;此外,也只有順序檔案才能存儲在磁帶上,並能有效地工作。
在互動套用的場合,如果用戶(程式)要求查找或修改單個記錄,為此系統便要去逐個地查找諸記錄。這時,順序檔案所表現出來的性能就可能很差,尤其是當檔案較大時,情況更為嚴重。例如,有一個含有 10 4 個記錄的順序檔案,如果對它採用順序查找法去查找一個指定的記錄,則平均需要查找 5×10 3 個記錄;如果是可變長記錄的順序檔案,則為查找一個記錄所需付出的開銷將更大,這就限制了順序檔案的長度。順序檔案的另一個缺點是,如果想增加或刪除一個記錄都比較困難。為了解決這一問題, 可以為順序檔案配置一個運行記錄檔案(Log File),或稱為事務檔案(Transaction File),把試圖增加、刪除或修改的信息記錄於其中,規定每隔一定時間,例如 4 小時,將運行記錄檔案與原來的主檔案加以合併,產生一個按關鍵字排序的新檔案。

順序存取設備

常用的檔案存儲設備有磁碟磁帶、光碟等。存儲設備的特性決定了檔案的存取。為了有效地利用檔案存儲設備和便於對檔案信息進行處理,通常把檔案的存儲空間劃分為若干個大小相等的物理塊。順序存取設備是指只有當前面的物理塊被存取以後,才能存取後面的物理塊。磁帶就是一種典型的順序存取設備,磁帶的兩個相鄰的物理塊之間一般有一個間隙,其目的是為了讓磁帶機存取後面的物理塊時方便地找到下個物理塊的位置。

相關詞條

熱門詞條

聯絡我們