使用打孔卡的教育计划(或1890年至1970年如何处理“大数据”的故事)

在1890-1970年期间,所有大数据处理都是通过打孔卡进行的。 反过来,打孔卡是使用所谓的 “记录设备”,其中心链接是机电式“打孔卡分类器”。 打孔卡和相关设备用于解决各种各样的任务:普查,会计,库存,工资等。


人们如何使用打孔卡? 机电打孔卡分类器遵循什么算法? 如何按数字数据字段进行排序? 和弦上? 关于这一切-下面。



  • 预计算机时代记录设备的显着特征:它最初是完全机电的。 甚至还没有电子灯。 记录设备的“智能”是由钢丝刷(用于识别打孔卡中的孔),机电继电器和机械轮(用于汇总值)构建的。 尽管它具有技术上的原始性,但“记录设备”一次彻底革新了大数据的处理。

人们如何使用打孔卡?


  • 每个打孔卡都存储一个数据记录(最多80个数字或字符)。 每个数据记录由几个字段组成。 打孔卡分类器按照操作员所需的顺序排列卡(根据数据字段之一),然后称为“制表器”的机器读取分类的打孔卡,从它们中提取必要的字段(同样由操作员指定),并打印报告。
  • 例如,考虑如何使用打孔卡处理发票。 对于每张要付款的发票,公司都有一张单独的打孔卡(请参见下图中的示例)。 打孔卡上显示了诸如供应商的编号,付款日期,付款金额等数据字段。
  • 相应的自动化数据处理业务流程如下。 指示打孔卡分类器按供应商编号对打孔卡进行分类。 排序完成后,打孔卡将传递到制表器,该制表器通过从每个打孔卡中读取所需的行来生成报告。 制表器中内置的机械计数器会自动剔除总计金额。
  • 许多其他业务流程(例如工资,库存和开票)也以类似的方式在计算机前时代进行。

机电打卡机的工作原理


  • 排序器将一堆打孔卡并根据操作员指定的数据字段对它们进行排序。 例如,通过员工隶属特定部门。 怎么了 作为一种选择,这样可以事先将员工按部门分组,然后生成有关公司每个部门的销售计划执行情况的报告。
  • 为解决此问题,打孔卡首先根据“部门”字段进行排序,然后转移到制表符,该制表符汇总“销售”字段,并在报告中打印每个部门的中期结果。
  • 操作员将需要分类的打孔卡包放在一个特殊的托盘中,然后通过分拣机逐一驱动它们。 分类器读取打孔卡并将其分配到13个口袋中:十个数字口袋,两个“区域”口袋(用于处理字符串值); 一张用于丢弃的打孔卡(未指定用于执行分类的值)。
  • 打孔卡分类器使用的算法与当今普遍接受的算法有很大不同。 关键区别在于打孔卡不能相互比较。

按位排序算法


打孔卡分类器又如何完成其​​工作? 它实现了一种优雅的“按位排序”算法。 最重要的是:打孔卡分类器一次处理一位数据字段。 要通过三位数字段进行分类,一包打孔卡必须经过分类器三次。 所以算法:


  1. 根据操作员指定的数字数据字段对打孔卡进行分类,分类器在第一次运行时仅处理该字段的最低有效位。 然后根据该类别的值,他决定将当前打孔卡放到哪里:10个数字口袋中的哪个(从零到第九)。
  2. 在分拣员将打孔卡分配到口袋中后,操作员将其取出并放入公用的捆束中。 顺序:从零腔开始,到第九个结束。
  3. 操作员将已组装的打孔卡包装放入分拣机,并针对每个类别依次重复步骤1和2。
  4. 一切,现在打孔卡已排序。


按位排序算法的优点


  • 按位排序算法既流畅又快速。 它的计算复杂度为O(n log n)。 换句话说,随着卡数量的增加,算法的持续时间呈线性增长,而不是呈指数增长。
  • 按位排序算法可以从技术上实现为简单的机电设计。
  • 尽管在打孔卡分类器的输入托盘中放置的卡不超过3600张,但如果操作员及时执行以下两项操作,则可以对大量打孔卡进行分类:(1)及时在托盘中装入新的打孔卡包; (2)及时清空数字口袋(以免溢出)。

字符串数据如何编码


  • 如上所述,数值在带有孔的打孔卡上编码。 列中有一个孔。 我们已经对它们进行了排序。 现在剩下的工作是了解如何在打孔卡上编码字符串以及打孔卡分类器如何组织它们。
  • 要在打孔卡分类器中使用琴弦,除了10个数字口袋外,还有两个“分区”口袋(第11和12个)。 编码字母字符的原理如下(请参见下图)。 每个字母在打孔卡上编码有两个孔:数字上的孔(从1到9)和“区域”上的孔(0、11或12)。
  • 请注意:处理数字数据字段时,数字为零的字符串;处理字符串数据字段时,为“ zonal”。

字符串排序算法


由于这种编码,分类器可以按字母顺序对字符串数据字段进行排序。 为此,他需要进行两次跑步。 算法如下:


  1. 在第一次运行时,打孔纸牌分拣器以与对数字数据字段进行分拣时几乎相同的方式组织纸牌。 区别在于,按字母顺序排序仅涉及9个口袋:从第1个到第9个。
  2. 完成分类后,操作员将从数字口袋中取出打孔的卡片。 同样,按顺序(如按数字数据字段排序的情况):从第一个口袋开始到第九个结尾。 操作员将收集到的卡包发送出去,以进行第二次分类。
  3. 在第二轮中,打孔卡分类器仅读取“区域”(0、11和12)的行,而忽略带数字的行。
  4. 结果,分拣机将有序打孔卡分配到三个“区域”口袋中:从A到I放置在第12个口袋中; 从J到R-在11日; 从S到Z-在第0个。
  5. 如果排序不需要按一个第一字符进行,而是例如按两个或三个第一进行,则对每个字符依次进行上述处理(步骤一至四)。 即 对于每个符号,完成了两个贯穿打孔卡分类器的过程。


因此,当还没有计算机时,企业使用打孔卡处理大数据。 尽管打孔卡已经过时,但我们仍然会遇到它们对计算机技术当前状态的影响-每当我们不得不忍受80个字符行的文本格式时。 例如,在与Far Manager合作时,会观察到类似的情况。

Source: https://habr.com/ru/post/zh-CN426499/


All Articles