档案与数据组织
基础档案由记录组成,记录由栏组成,键栏用来唯一识别每条记录。顺序档按键值依次存放,适合整批处理;随机档按键值直接定址,适合即时回应。比较两种档案的搜寻效率,是选择数据组织方式的关键。
- 档案由记录组成,记录由栏组成,键栏唯一识别每条记录
- 顺序档按键值依次存放,线性检索平均比较记录数一半,适合整批处理
- 随机档由键值直接定址,一次存取命中,适合即时回应系统
文体小知识:科技知识说明文——讲解档案由记录和栏组成的结构,顺序档与随机档的差异,以及线性检索与直接存取的效率比较。
§课文原文 Passage
1档案是相关数据的集合,内部由记录组成,每条记录描述一个对象,再由栏组成。例如图书馆的书目档案中,每本书是一条记录,记录内有书名、作者、索书号等栏。各栏之中必须有一个键栏,其值在档案内不会重复,用来唯一识别每条记录,例如索书号;键值重复会令系统无法确定要读写哪条记录。
2顺序档把记录按键值大小依次存放,插入新记录时要保持次序。读取时由档案开头逐条扫描,直到找到目标为止,这种方法称为线性检索。档案越大,搜寻越慢:一千条记录平均要比较五百次,十万条便要五万次。顺序档结构简单、储存成本低,适合定期整批处理的场合,例如每月出粮的薪酬档案。
3随机档的记录存放位置由键值经公式直接算出,系统可以按地址一步到位读写,这种方式称为直接存取。无论档案有一千条还是十万条记录,搜寻通常只需一至数次存取,效率远胜顺序档。随机档适合需要即时回应的系统,例如银行柜员机查询户口结余、戏院即时售票,代价是地址计算和空间管理较复杂。
4两种档案各有适用场景。资料每次都要全体处理、毋须即时回应时,顺序档省事省成本;资料要随时按键查询或修改个别记录时,随机档才够快。实务上系统常两者并用:日常交易先累积在交易档,定期把交易档与储存长期数据的主档合并更新,既保住即时回应,又兼顾整批处理的成本效益。
1重点摘要 Summary
档案由记录组成,记录由栏组成,键栏用来唯一识别每条记录。顺序档按键值依次存放,适合整批处理;随机档按键值直接定址,适合即时回应。比较两种档案的搜寻效率,是选择数据组织方式的关键。
2生字卡 Vocabulary
以一的名字称储存的相关记录集合。
由一组相关栏组成、描述一个对象的数据,例如书目档案中的一本书。
记录中的单一数据项目,例如书名或电话号码。
取值在档案内不重复、用来唯一识别每条记录的栏。
唯一识别每条记录的键值,例如学号或索书号。
记录按键值依次存放、读取须由档案开头逐条扫描的档案。
记录位置由键值经公式算出、可以直接存取的档案。
由档案开头逐条比较直至找到目标的搜寻方法,平均比较记录数一半。
由键值直接算出储存地址、无须扫描其他记录即可读写的方式。
储存较长期数据的主档案,定期以交易档的记录合并更新。
3逐步讲解 Steps
- 第一步:档案、记录与栏档案由记录组成,记录由栏组成,层层结构必须分清。举个例子:学校的学生档案内,每名学生是一条记录,记录分学号、姓名、班别、出生日期等栏;全档数千条记录格式一致。答题时准确使用档案、记录、栏三个层次的术语,是描述数据组织的基本功,资料题往往要求举例说明这三层关系;万一混淆层次,答案便会失准,动笔前宜先列好结构。
- 第二步:键栏的作用每个档案必须有键栏,其值不会重复,用来唯一识别记录。举个例子:同校可以有两个陈大文,但学号各不相同;图书馆以索书号作键,电力公司以客户编号作键。若键值重复,系统便无法确定要读写哪条记录,资料会互相覆盖,所以设计档案的第一步就是选定合适而唯一的键栏;选键的原则是唯一而稳定,例如学号不会因改名而改变。
- 第三步:顺序档的原理顺序档把记录按键值由小至大依次存放,读取要由档案开头逐条扫描,即线性检索。举个例子:在按学号排序的一千条记录中找某生,运气好第一条就中,运气差要比较一千次,平均五百次。插入新记录还要把后面的记录依次移动;顺序档胜在结构简单、成本低,败在个别搜寻慢;答题计算平均比较次数时,紧记写出除以二的算式。
- 第四步:随机档的原理随机档以公式把键值换算成储存地址,系统直接到该地址读写,称为直接存取。举个例子:戏院售票系统以场次编号加座位号计算地址,无论全院有一百还是一千个座位,一次存取就能命中;银行系统按户口号码定位,客户查询结余毋须等待。随机档的代价是地址计算和空间管理较复杂;设计得宜的系统能兼得速度与空间利用率,这是结构设计的功夫。
- 第五步:搜寻效率比较比较搜寻效率要看比较次数与档案大小的关系。线性检索的比较次数与记录数成正比,十万条记录平均要五万次;随机档直接存取通常一至数次,几乎不受档案大小影响。举个例子:每月处理一次的薪酬档案用顺序档已足够;以秒回应的提款机必须用随机档,否则客户要排长龙等候;答题时宜先列式计算,再以场景说明数字背后的意义。
- 第六步:整批处理与主档更新顺序档最适合整批处理:日常交易先累积在交易档,到月底一次过按键排序,与主档合并更新,生成新主档和报表。举个例子:电力公司整月累积各户用电记录,月结时与客户主档合并计算电费,一次处理数百万条记录,效率反而最高;这种主档加交易档的组合正是顺序档的强项,月结报表同时生成,方便管理层查核。
- 第七步:选择组织方式的准则选择时先问三条问题:资料是否需要即时回应?每次处理多少记录?储存和维护成本如何?举个例子:图书馆借还书要即时定位每条书目记录,用随机档;每月统计全港图书借阅排行属整批作业,用顺序档即可。答题时先讲应用场景的需求,再配对档案类型,并以效率和成本说明理由;实务上两者并用,随机档负责日常查询,顺序档负责定期报表。
5例题示范 Example
学校图书馆的书目档案共有四万条记录,按索书号排序,现以顺序档储存。馆方考虑改为随机档。试比较两种方案的搜寻效率,并提出建议。
- 顺序档效率:线性检索平均要比较记录数一半,即 40000 ÷ 2 = 20000 次;最坏情况 40000 次。借书高峰期人人查询,柜台势必大排长龙。
- 随机档效率:以索书号直接计算储存地址,一次存取即得记录,比较次数几乎不受四万条记录影响,回应以毫秒计。
- 成本考虑:顺序档结构简单、维护容易;改用随机档须重新组织四万条记录并处理地址分配,前期成本较高。
- 建议:借还书属即时查询,效率优先,应改用随机档;每月的借阅统计报告属整批作业,可保留顺序处理程序。
- 答案:顺序档以线性检索搜寻四万条记录,平均 40000 ÷ 2 = 20000 次比较、最坏 40000 次,高峰期难以即时回应;随机档由索书号直接定址,一次存取完成查询,效率远高。虽然改组档案有前期成本,但借还书需要即时回应,建议改用随机档;月度统计属整批处理,保留顺序方式即可。选择的准则是回应要求、处理模式和成本三者的平衡。
6常见错误 Mistakes
75 题快测 Quick check
Q1档案、记录、栏三者的关系是什么?
Q2顺序档为什么适合整批处理?
Q3在 5000 条记录的顺序档中作线性检索,平均要比较多少次?
Q4随机档如何直接找到记录?
Q5提款机查询结余应采用哪种档案?为什么?
8重点回顾 Recap
- 档案由记录组成,记录由栏组成,键栏唯一识别每条记录
- 顺序档按键值依次存放,线性检索平均比较记录数一半,适合整批处理
- 随机档由键值直接定址,一次存取命中,适合即时回应系统
- 主档储存长期数据,定期与交易档合并更新
- 选择组织方式看回应要求、处理模式和成本三者的平衡