当前位置: 首页 > news >正文

文件的逻辑结构

无结构文件

由一系列二进制流或者字符流组成,又叫做流式文件:比如txt文件

有结构文件

有一组相似记录组成,又叫做记录式文件。比如数据库表文件

一般来说,每条记录有一个数据项可作为关键字,根据各类记录的长度是否相等,可以分为定长记录和可变长记录两种

由结构文件的逻辑结构

顺序文件

文件中的记录一个接一个顺序排列,记录是定长的或可变长的,各个记录在物理上可以顺序存储和链式存储

链式存储

无论定长/可变长

都无法实现随机存储

顺序存储

可变长记录

无法实现随机存取

定长记录

串结构

记录之间的顺序和关键字无关

无法快速找到某个关键字对应的记录

顺序结构

记录之间的顺序按照关键字顺序排列

可以快速找到某个关键字对应的记录,折半查找

定长记录

可实现随机存取,记录长度为L,则第i个记录存放的相对位置是i*L

如果考试题目中说顺序文件,指的是物理上顺序存储的顺序文件

索引文件

对于可变长记录,要找到第i个记录,必须先顺序查找前i-1个记录,但是很多场景用的是可变长记录

因此我们建立一张索引表以加快文件检索速度,每条记录对应一个索引项

文件中这些记录在物理上可以离散存放

sql就是根据某个数据建立索引的功能

索引顺序文件

索引文件的缺点:每个记录对应一个索引表项,索引表可能会较大,文件每个记录平均只占8B,而每个索引表占32字节,那么索引表会比本身大4倍,效率低下

索引顺序文件就是索引文件和顺序文件的思想结合,索引顺序文件中,同样会为文件建立一张索引表,但不同的是,并非每一个记录对应一个索引表项,而是一组记录对应一个表项

![image-20251003164035331](/Users/tusier/Library/Application Support/typora-user-images/image-20251003164035331.png)

image-20251003112006387

类似这样,A开头放一起,B开头放一起

若一个顺序文件有10000个记录,则根据关键字检测文件只能从头开始顺序查找,平均5000个记录

若采用索引顺序文件可以吧10000个记录分为100组【开根号】每组100个记录,则需要先顺序查找索引表找到分组,找到分组之后,再在分组中顺序查找记录,可见采用索引顺序文件结构后,平均查找次数减少为50+50=100

多级索引顺序文件

依然套娃,给索引表建立索引表

http://www.hskmm.com/?act=detail&tid=23628

相关文章:

  • python 肘部法则,判点聚类分为几类,K-means聚类分析
  • AT_abc315_f [ABC315F] Shortcuts
  • 紫外UV固化太阳光模拟器的原理 - 教程
  • 每日一题
  • P5709 【深基2.习6】Apples Prologue / 苹果和虫子
  • 问题表 - microsoft
  • Leetcode 736. Lisp 语法解析
  • Day10.1
  • SolarWinds Web Help Desk远程代码执行漏洞分析
  • Aria2安装
  • 正则表达式学习
  • 深入解析:[特殊字符]函数指针:C语言的动态灵魂,嵌入式的超能力(202589)
  • 《电路基础》第八章学习笔记
  • 《电路基础》第七章学习笔记
  • LLM大模型:deepseek sparse attention是个啥?
  • Day10
  • 软著申请全流程材料模板,2025年最新模板汇总! - 实践
  • 手把手教你使用 Docker 部署 Nginx 教程
  • CF2129 CF1951 VP 记录
  • PWN-BUUCTF-test_your_nc
  • 详细介绍:计算机视觉:OpenCV+Dlib 人脸检测
  • python 老生常谈的找2个excel相同列的行,把其中一个excel行的对应的值放入到另一个excel中
  • 实用指南:淘宝团购上线:本地生活的“两种解法”
  • 【K8S】Kubernetes 调度器深度解析:原理与源码分析
  • 快速幂算法的基础和扩展
  • 堆叠集成
  • 概率与决策 - 模拟程序让你在选择中取胜
  • 题解:qoj6504 Flowers Land 2
  • Prophet
  • 深入解析:逻辑回归(Logistic Regression)