数据结构之ISAM文件和VSAM文件

1.ISAM文件

        索引顺序存取方法ISAM 为Indexed Sequential Access Methed的缩写,它是一种专为磁盘存取设计的文件组织方式。由于磁盘是以盘组,柱面和磁道三级地址存取的设备,则可对磁盘上的数据文件建立盘组、柱面和磁道R三级索引。文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放在相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放。例如图1为存放在一个磁盘组上的ISAM文件,每个柱面建立一个磁道索引,每个磁道索引项由两部分组成:基本索引项和溢出索引项,如图2所示,每一部分都包括关键字和指针两项,前者表示该磁道中最末一个记录的关键字(在此为最大关键字),后者指示该磁道中第一个记录的位置,柱面索引的每一个索引项也由关键字和指针两部分组成,前者表示该柱面中最末一个记录的关键字(最大关键字),后者指示该柱面上的磁道索引位置。柱面索引存放在某个柱面上,若柱面索引较大,占多个磁道时,则可建立柱面索引的索引一主索引。

        在ISAM文件上检索记录时,先从主索引出发找到相应的柱面索引,再从柱面索引找到记录所在柱面的磁道索引,最后从磁道索引找到记录所在磁道的第一个记录的位置,由此出发在该磁道上进行顺序查找直至找到为止;反之,若找遍该磁道而不存在此记录,则表明该文件中无此记录。例如,查找关键字为21的记录时的查找路径如图1中的粗实线所示。

图1 ISAM文件结构示例

​        从图1中可看到,每个柱面上还开辟有一个溢出区;并且,磁道索引项中有溢出索引项,这是为插入记录所设置的。由于ISAM文件中记录是按关键字顺序存放的,则在插入记录时需移动记录,并将同一磁道上最末一个记录移至溢出区,同时修改磁道索引项

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值