期間1890-1970では、ビッグデータのすべての処理はパンチカードを介して実行されました。 パンチされたカードは、いわゆる 「記録装置」。その中心的なリンクは、電気機械式の「パンチカードソーター」でした。 パンチカードと関連機器は、国勢調査、経理、在庫、給与などのさまざまなタスクを解決するために使用されました。
人々はパンチカードをどのように使いましたか? 電気機械パンチカードソーターはどのアルゴリズムに従いましたか? 数値データフィールドによるソートはどのように実行されましたか? そして、文字列で? このすべてについて-以下。
- プレコンピューター時代の録音機器の顕著な特徴:それはもともと完全に電気機械式でした。 まだランプ電子機器さえありませんでした。 記録装置の「インテリジェンス」は、ワイヤーブラシ(パンチカードの穴を認識するため)、電気機械式リレー、および機械式ホイール(値を合計するため)で構成されていました。 その技術的な原始性にもかかわらず、「記録装置」はかつてビッグデータの処理に革命をもたらしました。
人々はパンチカードをどのように使いましたか?
- 各パンチカードには、1つのデータレコード(最大80桁の数字または文字)が保存されていました。 各データレコードは、いくつかのフィールドで構成されていました。 パンチカードソーターは、(データフィールドのいずれかに従って)オペレーターに必要な順序でカードを配置し、その後、「タブレーター」と呼ばれるマシンがソートされたパンチカードを読み取り、そこから必要なフィールドを抽出し(再びオペレーターが指定)、レポートを印刷しました。
- 例として、請求書の処理にパンチカードがどのように使用されたかを考えてみましょう。 企業は、支払いのために発行された請求書ごとに個別のパンチカードを用意しました(下図の例を参照)。 サプライヤの番号、支払日、支払額などのデータフィールドは、パンチカードに示されていました。
- 対応する自動データ処理ビジネスプロセスは次のとおりです。 パンチカードソーターは、サプライヤー番号でパンチカードをソートするように指示されます。 並べ替えが完了すると、パンチカードがタブレータに渡され、タブレータは各パンチカードから目的の行を読み取ってレポートを生成します。 タブレータに組み込まれた機械式カウンターは、合計金額を自動的にノックアウトします。
- 給与計算、在庫管理、請求など、他の多くのビジネスプロセスは、同様の方法でコンピューター以前の時間に実行されました。
電気機械パンチカードソーターの動作原理
- ソータは、パンチカードのスタックを受け取り、オペレータが指定したデータフィールドに従ってソートします。 たとえば、特定の部門への従業員の所属。 なんで? オプションとして、以前に部門ごとに従業員をグループ化してから、会社の各部門による販売計画の実施に関するレポートを生成します。
- この問題を解決するために、パンチカードは最初に部門フィールドに基づいてソートされ、次に販売部門を集計するタブレーターに転送され、レポートの各部門の中間結果が印刷されます。
- オペレーターは、ソートする必要があるパンチカードのパックを特別なトレイに入れ、そこからソーターを介して1つずつ実行します。 ソータはパンチカードを読み取り、13個のポケットに分配します。10個のデジタルポケットと2個の「ゾーン」ポケット(文字列値の処理用)。 1つは破棄されたパンチカード用です(並べ替えが実行された値を指定しません)。
- パンチカードソーターで使用されるアルゴリズムは、今日一般的に受け入れられているアルゴリズムとは大きく異なります。 主な違いは、パンチカードが互いに比較しないことです。
ビット単位のソートアルゴリズム
パンチカードソーターはどのように仕事をするのですか? エレガントな「ビット単位のソート」アルゴリズムを実装しています。 一番下の行:パンチカードソーターは、一度に1桁のデータフィールドを処理します。 3桁のフィールドでソートするには、パンチカードのパックをソーターに3回渡す必要があります。 したがって、アルゴリズム:
- オペレーター、ソーターによって指定された数値データフィールドに従ってパンチカードを並べ替えると、最初の実行時に、このフィールドの最下位ビットのみが処理されます。 そして、このカテゴリの価値に応じて、現在のパンチカードをどこにドロップするかを決定します。10個のデジタルポケットのうちのどれ(0から9)。
- 選別機がポケットにパンチカードを配布し終えたら、オペレーターはそれらを取り出し、共通の束に入れます。 順番:ゼロポケットから9番目まで。
- オペレーターは、組み立てられたパンチカードのパックをソーターに入れ、カテゴリごとに手順1と2を順番に繰り返します。
- すべて、今パンチカードがソートされます。
ビット単位のソートアルゴリズムの利点
- ビット単位のソートアルゴリズムは、洗練された高速です。 その計算の複雑さはO(n log n)です。 言い換えると、カードの数が増えると、アルゴリズムの持続時間は指数関数的にではなく線形に増加します。
- ビット単位のソートアルゴリズムは、技術的には単純な電気機械設計として実装できます。
- パンチカードソーターの入力トレイには3600枚以下のカードが置かれていますが、オペレーターが次の2つのアクションをタイムリーに実行すると、はるかに多くのパンチカードをソートできます。(1)トレイに新しいパンチカードのパックをタイムリーにロードします。 (2)タイムリーにデジタルポケットを空にします(オーバーフローしないように)。
文字列データのエンコード方法
- 上記のように、数値は穴のあるパンチカードにエンコードされます。 列の1つの穴。 すでに並べ替えを整理しています。 パンチカードでラインがどのようにエンコードされ、パンチカードソータがそれらをどのように整理するかを理解する必要があります。
- パンチカードソーターでストリングを操作するために、10個のデジタルポケットに加えて、2個の「ゾーン」ポケット(11番目と12番目)があります。 アルファベット文字のエンコードの原則は次のとおりです(下図を参照)。 各文字は、パンチされたカードの2つの穴でエンコードされます。数字の穴(1〜9)と「ゾーン」の穴(0、11、または12)です。
- 注:ゼロを含む文字列は、数値データフィールドを処理するときにデジタル化され、文字列データフィールドを処理するときに「ゾーン」になります。
文字列ソートアルゴリズム
このエンコーディングのおかげで、ソーターは文字列データフィールドをアルファベット順にソートできます。 これを行うには、2回の実行が必要です。 アルゴリズムは次のとおりです。
- 最初の実行では、パンチカードソーターは数値データフィールドをソートするときとほぼ同じ方法でカードを整理します。 違いは、アルファベット順のソートには1〜9の9つのポケットしか含まれていないことです。
- 並べ替えが完了すると、オペレーターはパンチされたカードをデジタルポケットから取り出します。 再び、順序(数値データフィールドによる順序付けの場合):最初のポケットから始まり、9番目で終了します。 オペレーターは、収集されたカードのパックを2回目のソートのために送信します。
- 2回目の実行では、パンチカードソーターは「ゾーン」の行(0、11、および12)のみを読み取り、数字のある行を無視します。
- 結果として、注文されたパンチカードは、ソーターによって3つの「ゾーン」ポケットに分配されます。AからIまでは、12番目のポケットに配置されます。 JからR-11日。 SからZまで-0番目。
- ソートを最初の1文字ではなく、たとえば最初に2つまたは3つ実行する必要がある場合、上記のプロセス(ステップ1〜4)が各文字に対して順次実行されます。 つまり キャラクターごとに、パンチカードソーターを2回実行します。
そのため、コンピューターがまだない場合、企業はパンチカードを使用してビッグデータを処理していました。 パンチカードは取り返しのつかないほど時代遅れであるという事実にもかかわらず、80文字の行を使用してテキストの書式設定を我慢しなければならないときはいつでも、コンピュータテクノロジーの現在の状態に影響を及ぼしています。 たとえば、Far Managerで作業しているときに、似たようなことが観察されます。