档案与数据组织

基础

档案由记录组成,记录由栏组成,键栏用来唯一识别每条记录。顺序档按键值依次存放,适合整批处理;随机档按键值直接定址,适合即时回应。比较两种档案的搜寻效率,是选择数据组织方式的关键。

适合:中四资讯及通讯科技 · 单元:资讯处理 · 建议学习路径第 3/6 课

学完呢课,你会识:
  • 档案由记录组成,记录由栏组成,键栏唯一识别每条记录
  • 顺序档按键值依次存放,线性检索平均比较记录数一半,适合整批处理
  • 随机档由键值直接定址,一次存取命中,适合即时回应系统
文体:科技知识说明文有声朗读

文体小知识:科技知识说明文——讲解档案由记录和栏组成的结构,顺序档与随机档的差异,以及线性检索与直接存取的效率比较。

资讯及通讯科技Information & Communication Technology
读呢课前,你应该识: 数据表示方法

§课文原文 Passage

1档案是相关数据的集合,内部由记录组成,每条记录描述一个对象,再由栏组成。例如图书馆的书目档案中,每本书是一条记录,记录内有书名、作者、索书号等栏。各栏之中必须有一个键栏,其值在档案内不会重复,用来唯一识别每条记录,例如索书号;键值重复会令系统无法确定要读写哪条记录。

2顺序档把记录按键值大小依次存放,插入新记录时要保持次序。读取时由档案开头逐条扫描,直到找到目标为止,这种方法称为线性检索。档案越大,搜寻越慢:一千条记录平均要比较五百次,十万条便要五万次。顺序档结构简单、储存成本低,适合定期整批处理的场合,例如每月出粮的薪酬档案。

3随机档的记录存放位置由键值经公式直接算出,系统可以按地址一步到位读写,这种方式称为直接存取。无论档案有一千条还是十万条记录,搜寻通常只需一至数次存取,效率远胜顺序档。随机档适合需要即时回应的系统,例如银行柜员机查询户口结余、戏院即时售票,代价是地址计算和空间管理较复杂。

4两种档案各有适用场景。资料每次都要全体处理、毋须即时回应时,顺序档省事省成本;资料要随时按键查询或修改个别记录时,随机档才够快。实务上系统常两者并用:日常交易先累积在交易档,定期把交易档与储存长期数据的主档合并更新,既保住即时回应,又兼顾整批处理的成本效益。

1重点摘要 Summary

档案由记录组成,记录由栏组成,键栏用来唯一识别每条记录。顺序档按键值依次存放,适合整批处理;随机档按键值直接定址,适合即时回应。比较两种档案的搜寻效率,是选择数据组织方式的关键。

2生字卡 Vocabulary

f
file档案

以一的名字称储存的相关记录集合。

r
record记录

由一组相关栏组成、描述一个对象的数据,例如书目档案中的一本书。

f
field栏

记录中的单一数据项目,例如书名或电话号码。

k
key field键栏

取值在档案内不重复、用来唯一识别每条记录的栏。

p
primary key主关键码

唯一识别每条记录的键值,例如学号或索书号。

s
sequential file顺序档

记录按键值依次存放、读取须由档案开头逐条扫描的档案。

r
random file随机档

记录位置由键值经公式算出、可以直接存取的档案。

l
linear search线性检索

由档案开头逐条比较直至找到目标的搜寻方法,平均比较记录数一半。

d
direct access直接存取

由键值直接算出储存地址、无须扫描其他记录即可读写的方式。

m
master file主档

储存较长期数据的主档案,定期以交易档的记录合并更新。

3逐步讲解 Steps

  1. 第一步:档案、记录与栏档案由记录组成,记录由栏组成,层层结构必须分清。举个例子:学校的学生档案内,每名学生是一条记录,记录分学号、姓名、班别、出生日期等栏;全档数千条记录格式一致。答题时准确使用档案、记录、栏三个层次的术语,是描述数据组织的基本功,资料题往往要求举例说明这三层关系;万一混淆层次,答案便会失准,动笔前宜先列好结构。
  2. 第二步:键栏的作用每个档案必须有键栏,其值不会重复,用来唯一识别记录。举个例子:同校可以有两个陈大文,但学号各不相同;图书馆以索书号作键,电力公司以客户编号作键。若键值重复,系统便无法确定要读写哪条记录,资料会互相覆盖,所以设计档案的第一步就是选定合适而唯一的键栏;选键的原则是唯一而稳定,例如学号不会因改名而改变。
  3. 第三步:顺序档的原理顺序档把记录按键值由小至大依次存放,读取要由档案开头逐条扫描,即线性检索。举个例子:在按学号排序的一千条记录中找某生,运气好第一条就中,运气差要比较一千次,平均五百次。插入新记录还要把后面的记录依次移动;顺序档胜在结构简单、成本低,败在个别搜寻慢;答题计算平均比较次数时,紧记写出除以二的算式。
  4. 第四步:随机档的原理随机档以公式把键值换算成储存地址,系统直接到该地址读写,称为直接存取。举个例子:戏院售票系统以场次编号加座位号计算地址,无论全院有一百还是一千个座位,一次存取就能命中;银行系统按户口号码定位,客户查询结余毋须等待。随机档的代价是地址计算和空间管理较复杂;设计得宜的系统能兼得速度与空间利用率,这是结构设计的功夫。
  5. 第五步:搜寻效率比较比较搜寻效率要看比较次数与档案大小的关系。线性检索的比较次数与记录数成正比,十万条记录平均要五万次;随机档直接存取通常一至数次,几乎不受档案大小影响。举个例子:每月处理一次的薪酬档案用顺序档已足够;以秒回应的提款机必须用随机档,否则客户要排长龙等候;答题时宜先列式计算,再以场景说明数字背后的意义。
  6. 第六步:整批处理与主档更新顺序档最适合整批处理:日常交易先累积在交易档,到月底一次过按键排序,与主档合并更新,生成新主档和报表。举个例子:电力公司整月累积各户用电记录,月结时与客户主档合并计算电费,一次处理数百万条记录,效率反而最高;这种主档加交易档的组合正是顺序档的强项,月结报表同时生成,方便管理层查核。
  7. 第七步:选择组织方式的准则选择时先问三条问题:资料是否需要即时回应?每次处理多少记录?储存和维护成本如何?举个例子:图书馆借还书要即时定位每条书目记录,用随机档;每月统计全港图书借阅排行属整批作业,用顺序档即可。答题时先讲应用场景的需求,再配对档案类型,并以效率和成本说明理由;实务上两者并用,随机档负责日常查询,顺序档负责定期报表。

5例题示范 Example

学校图书馆的书目档案共有四万条记录,按索书号排序,现以顺序档储存。馆方考虑改为随机档。试比较两种方案的搜寻效率,并提出建议。

  1. 顺序档效率:线性检索平均要比较记录数一半,即 40000 ÷ 2 = 20000 次;最坏情况 40000 次。借书高峰期人人查询,柜台势必大排长龙。
  2. 随机档效率:以索书号直接计算储存地址,一次存取即得记录,比较次数几乎不受四万条记录影响,回应以毫秒计。
  3. 成本考虑:顺序档结构简单、维护容易;改用随机档须重新组织四万条记录并处理地址分配,前期成本较高。
  4. 建议:借还书属即时查询,效率优先,应改用随机档;每月的借阅统计报告属整批作业,可保留顺序处理程序。
  5. 答案:顺序档以线性检索搜寻四万条记录,平均 40000 ÷ 2 = 20000 次比较、最坏 40000 次,高峰期难以即时回应;随机档由索书号直接定址,一次存取完成查询,效率远高。虽然改组档案有前期成本,但借还书需要即时回应,建议改用随机档;月度统计属整批处理,保留顺序方式即可。选择的准则是回应要求、处理模式和成本三者的平衡。

6常见错误 Mistakes

✗ 以为顺序档的记录可以随意次序存放。
✓ 顺序档的记录必须按键值依次排列,插入或删除后仍要保持次序。
✗ 认为随机档搜寻快是因为它把记录排序。
✓ 随机档快在由键值直接计算储存地址、一次存取命中,与排序无关。
✗ 认为记录数增加一倍,随机档的存取次数也要增加一倍。
✓ 直接存取通常一次命中,几乎不受档案大小影响;受影响的是线性检索的比较次数。
✗ 认为任何情况下都应该用随机档,因为它比较先进。
✓ 整批处理、毋须即时回应的场合,顺序档结构简单、成本低,反而更合适。
✗ 把栏和记录混为一谈。
✓ 栏是记录内的单一数据项,记录是描述一个对象的一组栏,层次不能乱。

75 题快测 Quick check

Q1档案、记录、栏三者的关系是什么?

Q2顺序档为什么适合整批处理?

Q3在 5000 条记录的顺序档中作线性检索,平均要比较多少次?

Q4随机档如何直接找到记录?

Q5提款机查询结余应采用哪种档案?为什么?

8重点回顾 Recap

  • 档案由记录组成,记录由栏组成,键栏唯一识别每条记录
  • 顺序档按键值依次存放,线性检索平均比较记录数一半,适合整批处理
  • 随机档由键值直接定址,一次存取命中,适合即时回应系统
  • 主档储存长期数据,定期与交易档合并更新
  • 选择组织方式看回应要求、处理模式和成本三者的平衡

同级其他科

同一科其他级别