文件结构

文件概念

  • 文件(File)是性质相同的记录的集合。

  • 记录是文件中存取的基本单位,数据项是文件可使用的最小单位。

  • 能惟一标识一个记录的数据项或数据项的组合称为主关键字(项)

  • 文件结构分类:

    文件的 逻辑结构 主要有:
    	(1)连续结构 (2)多重结构 (3)转置结构 (4)顺序结构
    文件的 物理存储 主要有:
    	(1)顺序结构 (2)链接结构 (3)索引结构
    文件的 目录结构 主要有:
    	(1)一级目录结构 (2)二级目录结构 (3)树形结构 (4)无环图
    

顺序文件

顺序文件 是指:按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。(记录通常是定长记录)

注意

  • 顺序文件组织是唯一可以很容易地存储在磁盘和磁带上的文件组织

分类

(1) 顺序有序文件
 记录按其主关键字有序的顺序文件为顺序有序文件。

(2) 顺序无序文件
 记录未按其主关键字有序排列的顺序文件为顺序有序文件。

查找方法

1. 顺序存取存储器(磁带)上文件存取的查找方法
    (1)顺序查找法: 即顺序扫描文件,按记录的主关键字逐个查找。要检索第i个记录,必须检索前i-1个记录。
        注意:
            ① 这种查找法对于少量的检索是不经济的,但适合于批量检索。
            ② 顺序存取存储器(磁带)上的文件只能用顺序查找法存取
        
2.直接存取存储(磁盘)上文件存取的查找方法
	(1) 顺序查找法:(同上)
	(2) 分块查找法: 
            文件按主关键字的递增序,每100个记录为一块,各块的最后一个记录的主关键字为Kl00,K200,…,K100i,…:
         查找时,将所要查找的记录的主关键字K,依次和各块的最后一个记录的主关键字比较,当K大于K100(i-1)且小于或等于K100i时,则在第i块内进行扫描。(==>分块查找法在查找时 不必扫描整个文件中的记录)
  
	(3) 二分查找法:
     ① 二分查找法只适合对较小的文件或一个文件的索引进行查找。
     ② 当文件很大,在磁盘上占有多个柱面时,二分查找将引起磁头来回移动,增加寻查时间。

优缺点

顺序文件具有连续存取特点。当文件中第i个记录刚被存取过,而下一个要存取的是第i+1个记录,则这种存取将会很快完成。

注意
① 对存放在单一存储设备(如磁带)上的顺序文件连续存取速度快

​ ② 顺序文件多用于磁带(顺序存取存储器)

​ ③顺序文件通常用于批处理应用中

索引文件

 组成:索引文件由主文件和索引表构成。
 	 ①主文件:文件本身。
    ②索引表:在文件本身外建立的一张表,它指明逻辑记录和物理记录之间的一一对应关系。  

注意:通常将索引非顺序文件简称为 索引文件。

索引表组成

索引表: 由若干索引项组成。一般索引项由主关键字和该关键字所在记录的物理地址组成
  注意:
     索引表必须按主关键字有序,而主文件本身则可以按主关键字无序。

稠密索引: 在索引非顺序文件中,必须为每个记录建立一个索引项,这样建立的索引表称为稠密索引。

优缺点

① 索引非顺序文件主文件无序,顺序存取将会频繁地引起磁头移动,适合于随机存取,不适合于顺序存取。
② 索引非顺序文件的索引是稠密索引。索引占用空间大。

索引文件的存储

建立索引文件的过程:

(1) 按输入记录的先后次序建立数据区和索引表。其中索引表中关键字是无序的
(2) 待全部记录输入完毕后对索引表进行排序,排序后的索引表和主文件一起就形成了索引文件。

索引顺序文件

索引顺序文件: 主文件按 主关键字 有序的 文件称索引顺序文件。

稀疏索引:索引顺序文件的索引是稀疏索引(在索引顺序文件中,可对一组记录建立一个索引项。)

优缺点

① 索引顺序文件的主文件是有序的,适合于随机存取、顺序存取。
② 索引顺序文件的索引是稀疏索引 。索引占用空间较少,是最常用的一种文件组织。
③ 最常用的索引顺序文件:ISAM文件和VSAM文件。

散列文件

列文件是利用散列存储方式组织的文件,亦称直接存取文件。即根据文件中关键字的特点,设计一个散列函数和处理冲突的方法,将记录散列到存储设备上。

优缺点

1.  散列文件的优点
   (1) 文件随机存放,记录不需进行排序。
   (2) 插入、删除方便。
   (3) 存取速度快;不需要索引区,节省存储空间。

2. 散列文件的缺点
   (1) 不能进行顺序存取,只能按关键字随机存取
   (2) 询问方式限于简单询问
   (3) 在经过多次插入、删除后,可能造成文件结构不合理,需要重新组织文件。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值