A-level 计算机科学/WJEC (Eduqas)/组件 2/数据组织和结构
文件是关于特定的人、公司或主题的有组织的数据集合。它由各种字段组成,这些字段保存该数据主题的数据,该主题被称为记录。
在固定长度记录中,每条记录的大小完全相同。在编码时,您需要确定要为字段分配多少个字符,因为这在以后无法更改。这意味着任何额外的空间都将用空格填充,这会浪费存储空间。但优势是您可以确定读取记录的位置,因为您确切地知道每个字段占用了多少空间。
在可变长度记录中,只存储实际输入的数据,它们用于串行文件和顺序文件。没有空格,但您无法直接读取记录。
串行文件使用可变长度记录,其中所有新记录都追加到文件的末尾,它们不以任何方式排序,而是按时间顺序排列。要编码它,您需要在编程语言中使用文件功能,以追加模式传入,以确保要添加的数据被追加到末尾。这是最快的文件组织类型,用于当顺序应按时间顺序排列时,例如移动运营商的所有外发电话记录(用于单个工作日)。
顺序文件使用固定长度记录。顺序文件更容易搜索特定值,因为它们存储的所有内容都以逻辑方式排序,例如,您可以在客户文件中搜索 ID 为 7 的客户。但是,当您要插入新记录时会增加复杂性。首先,当前文件中的数据必须复制到临时文件。这是逐条记录完成的,直到到达需要插入记录的位置。将记录插入正确的位置,然后复制其余记录。旧文件被删除,临时文件成为新文件,记录位于正确的位置。如果您要从顺序文件中删除记录,则在创建临时文件时 simply 不会复制该记录。
索引顺序文件是将数据分成与排序数据相关的逻辑块。数据被分成组,例如字母顺序。块可以是 A-C、D-F、F-I 等等。它们将包含与该数据相关的索引范围,因此对于第一个块,所有以 A、B 和 C 开头的名称都将在该索引范围内找到。使用它的原因是改善搜索时间,因为块消除了查找超过必要记录的需求。但是,插入或删除记录将非常复杂,因为这会修改每个组的索引。如果有大量数据,可以应用相同的概念并使用多级索引来加快搜索记录的速度。
随机访问文件是可以在不搜索记录以查找正确记录的情况下直接跳到确切位置的地方。要查找一些数据,您只需要知道要在文件中查找哪些数据,通常是主键。将使用一种称为哈希算法的算法根据密钥找出数据的准确位置。
或者,可以使用块。块的大小是有限制的,例如一个块可以包含 10 条记录。该算法将带您到块的开头,然后可以顺序搜索该块。
每个哈希算法在效率方面都不同,具体取决于您拥有的数据。它们都包含 4 个主要特征:它们必须是确定性的(给定一个键时,始终产生相同的结果)、均匀的(键均匀分布在可用的块范围内)、确保数据规范化、提供连续性且不可逆。
主文件非常大,访问频率很低。它们以逻辑方式存储,基于主键。但是,它们需要包含所有发生过的事件记录,因此它们会定期更新一批新信息,以确保它们是最新的,并在需要时可以被参考。
事务文件存储公司的日常数据。它们按顺序存储数据,即按时间顺序,用于特定时间段。这可能会产生大量数据,尤其是对于大型公司而言,但它将所有数据保持在较小、易于管理的部分中。一天结束时,数据可以从事务文件复制到主文件。
要更新主文件,首先必须按主键顺序对事务进行排序。这使得主文件可以轻松更新。对于已排序的事务文件中的每个记录,通过将新事务与主文件中已有的内容进行比较来更新主文件。重复此过程后,将生成一个新的主文件,其中包含任何更新的数据、更新失败时的错误报告以及公司内部使用的打印报告(例如,它们可能是发票)。
备份文件的过程是将文件**复制**到另一个位置。例如,将文件从您的 HDD 复制到外部 HDD,并将该 HDD 存储在防火保险箱中,这将是一种不错的备份方法。公司会创建备份策略,规定他们如何进行备份过程。一个好的备份策略将包含以下详细信息:备份将位于何处,备份将存储在什么存储介质上,备份的频率/不频率以及备份将保存多长时间(保留策略)。
将文件**移动**到另一个位置的过程,通常位于归档文件中(.7z/.zip/.rar)。这样做是为了保留重要内容以备不时之需,但访问频率很低。将它们从您的主要存储介质中删除将提高系统的速度。