-
索引順序訪問方法
鎖定
索引順序訪問方法(ISAM, Indexed Sequential Access Method),也可以稱之為索引順序存取方法,可以連續地(按照他們進入的順序)或者任意地(根據索引)記錄任何訪問。每個索引定義了一次不同排列的記錄。索引順序訪問文件是一種專為磁盤存取文件設計的文件組織方式,採用靜態索引結構。
[1]
由於磁盤是以盤組、柱面和磁道三級地址存取的設備,則可對磁盤上的數據文件建立盤組、柱面和磁道多級索引。有兩種訪問方法:基本的索引順序訪問方法和隊列式的索引順序訪問方法。
- 中文名
- 索引順序訪問方法
- 外文名
- indexed sequential access method
- 學 科
- 計算機
- 定 義
- 一種磁盤的文件組織方式
- 有關術語
- ISAM文件
- 領 域
- 文件管理
索引順序訪問方法索引文件
索引文件由數據文件組成,它是帶索引的順序文件。索引本身非常小,只佔兩個字段:順序文件的鍵和在磁盤上相應記錄的地址。存取文件中的記錄需按以下步驟:
(1)整個索引文件都載入到內存中(文件很小,只佔用很小的內存空間)。
(2)搜索項目,用高效的算法(如折半查詢法)查找目標鍵。
(3)檢索記錄的地址。
索引文件由索引表和主文件兩部分構成。
索引順序訪問方法文件
ISAM文件的組成
SAM文件由多級主索引、柱面索引、磁道索引和主文件組成。
如圖1所示的文件是存放在同一個磁盤組上的ISAM文件。
其中:
① C表示柱面;
② T表示磁道;
③ CiTi表示i號柱面,j號磁道;
④ Ri表示主關鍵字為i的記錄。
分析:
從圖1中可看出,主索引是柱面索引的索引,這裏只有一級主索引。若文件佔用的柱面索引很大,使得一級主索引也很大時,可採用多級主索引。當然,若柱面索引較小時,則主索引可省略。
通常主索引和柱面索引放在同一個柱面上,主索引放在該柱面最前的一個磁道上,其後的磁道中存放柱面索引。每個存放主文件的柱面都建立有一個磁道索引,放在該柱面的最前面的磁道To上,其後的若干個磁道是存放主文件記錄的基本區,該柱面最後的若干個磁道是溢出區。基本區中的記錄是按主關鍵字大小順序存儲的,溢出區被整個柱面上的基本區中各磁道共享,當基本區中某磁道溢出時,就將該磁道的溢出記錄,按主關鍵字大小鏈成一個鏈表(以下簡稱溢出鏈表)放人溢出區。
各級索引中的索引項結構
磁道索引中的每一個索引項,都由兩個子索引項組成:基本索引和溢出索引項。
索引順序訪問方法訪問方法
基本的索引順序訪問方法 (BISAM)
在ISAM文件上檢索記錄時,從主索引出發,找到相應的柱面索引;從柱面索引找到記錄所在柱面的磁道索引;從磁道索引找到記錄所在磁道的起始地址,由此出發在該磁道上進行順序查找,直到找到為止。若找遍該磁道均不存在此記錄,則表明該文件中無此記錄;若被查找的記錄在溢出區,則可從磁道索引項的溢出索引項中得到溢出鏈表的頭指針,然後對該表進行順序查找。
為了提高檢索效率,通常可讓主索引常駐內存,並將柱面索引放在數據文件所佔空間居中位置的柱面上,這樣,從柱面索引查找到磁道索引時,磁頭移動距離的平均值最小。
隊列順序訪問方法(QSAM)