複製鏈接
請複製以下鏈接發送給好友

索引順序訪問方法

鎖定
索引順序訪問方法(ISAM, Indexed Sequential Access Method),也可以稱之為索引順序存取方法,可以連續地(按照他們進入的順序)或者任意地(根據索引)記錄任何訪問。每個索引定義了一次不同排列的記錄。索引順序訪問文件是一種專為磁盤存取文件設計的文件組織方式,採用靜態索引結構。 [1]  由於磁盤是以盤組、柱面和磁道三級地址存取的設備,則可對磁盤上的數據文件建立盤組、柱面和磁道多級索引。有兩種訪問方法:基本的索引順序訪問方法和隊列式的索引順序訪問方法。
中文名
索引順序訪問方法
外文名
indexed sequential access method
學    科
計算機
定    義
一種磁盤的文件組織方式
有關術語
ISAM文件
領    域
文件管理

索引順序訪問方法索引文件

索引文件由數據文件組成,它是帶索引的順序文件。索引本身非常小,只佔兩個字段:順序文件的鍵和在磁盤上相應記錄的地址。存取文件中的記錄需按以下步驟:
(1)整個索引文件都載入到內存中(文件很小,只佔用很小的內存空間)。
(2)搜索項目,用高效的算法(如折半查詢法)查找目標鍵。
(3)檢索記錄的地址。
(4)按照地址,檢索數據記錄並返回給用户。 [2] 
索引文件由索引表和主文件兩部分構成。
索引表是一張指示邏輯記錄和物理記錄之間對應關係的表。索引表中的每項稱作索引項。索引項是按鍵(或邏輯記錄號)順序排列。若文件本身也是按關鍵字順序排列,則稱為索引順序文件。否則,稱為索引非順序文件

索引順序訪問方法文件

ISAM文件的組成
SAM文件由多級主索引、柱面索引、磁道索引和主文件組成。
圖1 ISAM文件的組成 圖1 ISAM文件的組成
文件的記錄在同一盤組上存放時,應先集中放在一個柱面上,然後再順序存放在相鄰的柱面上。對同一柱面,則應按盤面的次序順序存放。
如圖1所示的文件是存放在同一個磁盤組上的ISAM文件。
其中:
① C表示柱面;
② T表示磁道;
③ CiTi表示i號柱面,j號磁道;
④ Ri表示主關鍵字為i的記錄。
分析:
從圖1中可看出,主索引是柱面索引的索引,這裏只有一級主索引。若文件佔用的柱面索引很大,使得一級主索引也很大時,可採用多級主索引。當然,若柱面索引較小時,則主索引可省略。
通常主索引和柱面索引放在同一個柱面上,主索引放在該柱面最前的一個磁道上,其後的磁道中存放柱面索引。每個存放主文件的柱面都建立有一個磁道索引,放在該柱面的最前面的磁道To上,其後的若干個磁道是存放主文件記錄的基本區,該柱面最後的若干個磁道是溢出區。基本區中的記錄是按主關鍵字大小順序存儲的,溢出區被整個柱面上的基本區中各磁道共享,當基本區中某磁道溢出時,就將該磁道的溢出記錄,按主關鍵字大小鏈成一個鏈表(以下簡稱溢出鏈表)放人溢出區。
各級索引中的索引項結構
各級索引中的索引項結構 各級索引中的索引項結構
磁道索引中的每一個索引項,都由兩個子索引項組成:基本索引和溢出索引項。

索引順序訪問方法訪問方法

基本的索引順序訪問方法 (BISAM)
在ISAM文件上檢索記錄時,從主索引出發,找到相應的柱面索引;從柱面索引找到記錄所在柱面的磁道索引;從磁道索引找到記錄所在磁道的起始地址,由此出發在該磁道上進行順序查找,直到找到為止。若找遍該磁道均不存在此記錄,則表明該文件中無此記錄;若被查找的記錄在溢出區,則可從磁道索引項的溢出索引項中得到溢出鏈表的頭指針,然後對該表進行順序查找。
為了提高檢索效率,通常可讓主索引常駐內存,並將柱面索引放在數據文件所佔空間居中位置的柱面上,這樣,從柱面索引查找到磁道索引時,磁頭移動距離的平均值最小。
隊列順序訪問方法(QSAM)
與 BISAM 類似,QSAM 以記錄進入的順序安排記錄的存放位置,形成一個順序數據集。但與BISAM 不同的是QSAM 由系統組織記錄的成組與分解,也就是説,系統將多個記錄組成塊。為了提高性能,使用隊列順序訪問方法往往在記錄或文件在使用之前,就已經將記錄或文件提前讀入內存。
參考資料
  • 1.    吳海燕,任午令,章志勇.數據結構:浙江大學出版社,2011
  • 2.    劉藝 翟高鋒.計算機科學導論:機械工業出版社,2010