文件的逻辑结构(1、顺序文件 2、索引文件 3、索引顺序文件) 您所在的位置:网站首页 文件链接结构的缺点是什么 文件的逻辑结构(1、顺序文件 2、索引文件 3、索引顺序文件)

文件的逻辑结构(1、顺序文件 2、索引文件 3、索引顺序文件)

2024-06-06 00:13| 来源: 网络整理| 查看: 265

文章目录 前言知识总览无结构文件有结构文件有结构文件的逻辑结构1、顺序文件2、索引文件3、索引顺序文件检索效率分析多级索引顺序文件 知识点回顾与重要考点

前言

此篇文章是我在B站学习时所做的笔记,部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考。

提示:以下是本篇文章正文内容,下面案例可供参考

知识总览

在这里插入图片描述 在这里插入图片描述

无结构文件 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows操作系统中的.txt文件。 文件内部的数据其实就是一系列字符流,没有明显的结构特性,因此也不用探讨无结构文件的“逻辑结构”问题。 有结构文件 有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID) 在这里插入图片描述 根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。 在这里插入图片描述 在这里插入图片描述 有结构文件的逻辑结构

在这里插入图片描述

1、顺序文件

顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。 在这里插入图片描述 在这里插入图片描述

注:一般来说,考试题目中所说的“顺序文件”指的是物理上顺序存储的顺序文件。 结论:定长记录的顺序文件,若物理上采用顺序存储,则可实现随机存取;若能再保证记录的顺序结构,则可实现快速检索

2、索引文件

对于可变长记录文件,要找到第i个记录,必须先顺序第查找前i-1个记录,但是很多应用场景中又必须使用可变长记录。如何解决这个问题? 在这里插入图片描述 索引表的各个表项是需要连续存放的,每个索引表的表项都是大小相等的,比如说,索引号、长度、指针这3个字段分别占4个字节,则表项需要占12个字节的长度,因此索引表本身也可以理解成是定长记录的顺序文件。定长记录的顺序文件是可以支持随机访问的,所以可以快速找到第i个记录对应的索引表项存放在什么地方。

3、索引顺序文件

索引顺序文件的索引表其实是一个定长记录的串结构的顺序文件

思考索引文件的缺点:每个记录对应一个索引表项,因此索引表可能会很大。比如:文件的每个记录平均只占8B,而每个索引表项占32个字节,那么索引表都要比文件内容本身大4倍,这样对存储空间的利用率就太低了。 在这里插入图片描述

检索效率分析

在这里插入图片描述

若一个顺序文件有10000个记录,则根据关键字检索文件,只能从头开始顺序查找(这里指的并不是定长记录、顺序结构的顺序文件),平均须查找5000个记录。若采用索引顺序文件结构,可把10000个记录分为√10000= 100组,每组100个记录。则需要先顺序查找索引表找到分组(共100个分组,因此索引表长度为100,平均需要查50次),找到分组后,再在分组中顺序查找记录(每个分组100个记录,因此平均需要查50次)。可见,采用索引顺序文件结构后,平均查找次数减少为50+50= 100次。同理,若文件共有106个记录,则可分为1000个分组,每个分组1000个记录。根据关键字检索一个记录平均需要查找500+500 = 1000次。这个查找次数依然很多,如何解决呢? 多级索引顺序文件

为了进一步提高检索效率,可以为顺序文件建立多级索引表。例如,对于一个含106个记录的文件,可先为该文件建立一张低级索引表,每100个记录为一组,故低级索引表中共有10000个表项(即10000个定长记录),再把这10000个定长记录分组,每组100个,为其建立顶级索引表,故顶级索引表中共有100个表项。 在这里插入图片描述

知识点回顾与重要考点

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有