En el período 1890-1970, todo el procesamiento de grandes datos se realizó a través de tarjetas perforadas. Las tarjetas perforadas, a su vez, se procesaron utilizando el llamado "Equipo de grabación", cuyo enlace central era el "clasificador de tarjetas perforadas" electromecánico. Se utilizaron tarjetas perforadas y equipos relacionados para resolver una amplia variedad de tareas: censo, contabilidad, inventario, nómina, etc.
¿Cómo trabajaba la gente con las tarjetas perforadas? ¿Qué algoritmo siguió el clasificador electromecánico de tarjetas perforadas? ¿Cómo se realizó la clasificación por campos de datos numéricos? ¿Y en la cuerda? Sobre todo esto, a continuación.

- Una característica sorprendente del equipo de grabación de tiempos anteriores a la computadora: originalmente era completamente electromecánico. Ni siquiera había lámparas electrónicas en él todavía. La "inteligencia" del equipo de grabación se construyó con cepillos de alambre (para reconocer agujeros en tarjetas perforadas), un relé electromecánico y ruedas mecánicas (para sumar los valores). A pesar de su primitividad tecnológica, el "equipo de grabación" revolucionó al mismo tiempo el procesamiento de big data.
¿Cómo trabajaba la gente con las tarjetas perforadas?
- Cada tarjeta perforada almacenaba un registro de datos (hasta 80 dígitos o caracteres). Cada registro de datos constaba de varios campos. El clasificador de tarjetas perforadas ordenó las tarjetas en el orden necesario para el operador (de acuerdo con uno de los campos de datos), después de lo cual la máquina, llamada "tabulador", leyó las tarjetas perforadas clasificadas, extrajo los campos necesarios de ellas (nuevamente, especificado por el operador) e imprimió el informe.
- Como ejemplo, considere cómo se usaron las tarjetas perforadas para procesar las facturas. Las empresas tenían una tarjeta perforada separada para cada factura emitida para el pago (ver el ejemplo en la figura a continuación). En la tarjeta perforada se indicaron campos de datos como el número del proveedor, la fecha de pago, el monto del pago, etc.

- El proceso comercial de procesamiento de datos automatizado correspondiente es el siguiente. El clasificador de tarjetas perforadas tiene instrucciones de ordenar las tarjetas perforadas por número de proveedor. Una vez completada la clasificación, las tarjetas perforadas se pasan al tabulador, que genera un informe al leer la línea deseada de cada tarjeta perforada. Un contador mecánico integrado en el tabulador elimina automáticamente la cantidad total.
- Muchos otros procesos comerciales, como la nómina, el inventario y la facturación, se llevaron a cabo en tiempos previos a la computadora de manera similar.
El principio de funcionamiento del clasificador electromecánico de tarjetas perforadas
- El clasificador toma una pila de tarjetas perforadas y las ordena de acuerdo con el campo de datos especificado por el operador. Por ejemplo, por la afiliación de empleados a un departamento en particular. Por qué Como opción, de modo que, habiendo agrupado previamente a los empleados por departamentos, genere un informe sobre la implementación del plan de ventas por cada uno de los departamentos de la empresa.
- Para resolver este problema, las tarjetas perforadas se ordenan primero en función del campo "departamento", y luego se transfieren al tabulador, que resume el campo "ventas", imprimiendo los resultados provisionales para cada departamento en el informe.
- El operador coloca el paquete de tarjetas perforadas que deben clasificarse en una bandeja especial, desde la cual son conducidas una por una a través del clasificador. El clasificador lee las tarjetas perforadas y las distribuye en 13 bolsillos: diez digitales, dos de "zona" (para procesar valores de cadena); y uno para tarjetas perforadas descartadas (que no especifican un valor por el cual se realizó la clasificación).

- El algoritmo utilizado por el clasificador de tarjetas perforadas es muy diferente de los algoritmos generalmente aceptados en la actualidad. La diferencia clave es que las tarjetas perforadas no se comparan entre sí.
Algoritmo de clasificación bit a bit
¿Cómo, entonces, un clasificador de tarjetas perforadas logra hacer su trabajo? Implementa un elegante algoritmo de "clasificación por bits". El resultado final: el clasificador de tarjetas perforadas procesa un dígito del campo de datos a la vez; Para ordenar por un campo de tres dígitos, un paquete de tarjetas perforadas debe pasar tres veces por el clasificador. Entonces el algoritmo:
- Al clasificar las tarjetas perforadas de acuerdo con un campo de datos numéricos especificado por el operador, el clasificador, durante la primera ejecución, procesa solo el bit menos significativo de este campo. Y de acuerdo con el valor de esta categoría, decide dónde colocar la tarjeta perforada actual: cuál de los 10 bolsillos digitales (de cero a noveno).
- Una vez que el clasificador ha terminado de distribuir las tarjetas perforadas en los bolsillos, el operador las saca y las coloca en un paquete común. En orden: comenzando desde el bolsillo cero y terminando con el noveno.
- El operador coloca el paquete de tarjetas perforadas en el clasificador y repite los pasos 1 y 2 secuencialmente para cada categoría.
- Todo, ahora se clasifican las tarjetas perforadas.
Ventajas del algoritmo de clasificación bit a bit
- El algoritmo de clasificación bit a bit es elegante y rápido. Su complejidad computacional es O (n log n). En otras palabras, con un aumento en el número de tarjetas, la duración del algoritmo aumenta linealmente y no exponencialmente.
- El algoritmo de clasificación bit a bit puede implementarse técnicamente como un diseño electromecánico simple.
- A pesar del hecho de que no se colocan más de 3600 tarjetas en la bandeja de entrada de un clasificador de tarjetas perforadas, puede clasificar una cantidad mucho mayor de tarjetas perforadas si el operador realiza las dos acciones siguientes de manera oportuna: (1) cargue nuevos paquetes de tarjetas perforadas en una bandeja de manera oportuna; (2) vacíe los bolsillos digitales de manera oportuna (para que no se desborden).
Cómo se codifican los datos de cadena
- Como se señaló anteriormente, los valores numéricos están codificados en la tarjeta perforada con agujeros. Un agujero en la columna. Ya hemos resuelto su clasificación. Ahora queda por comprender cómo se codifican las cadenas en la tarjeta perforada y cómo las organiza el clasificador de tarjetas perforadas.
- Para trabajar con cadenas en el clasificador de tarjetas perforadas, hay dos bolsillos “zonales” (11 y 12), además de 10 digitales. El principio de codificar caracteres alfabéticos es el siguiente (ver la figura a continuación). Cada letra está codificada con dos agujeros en la tarjeta perforada: un agujero en el número (del 1 al 9) y un agujero en la "zona" (0, 11 o 12).

- Tenga en cuenta: una cadena con ceros se digitaliza cuando procesa campos de datos numéricos y "zonal" cuando procesa campos de datos de cadena.
Algoritmo de clasificación de cadena de caracteres
Gracias a esta codificación, el clasificador puede ordenar los campos de datos de cadena alfabéticamente. Para hacer esto, necesita dos carreras. El algoritmo es el siguiente:
- En la primera ejecución, el clasificador de tarjetas perforadas organiza las tarjetas de la misma manera que al ordenar campos de datos numéricos. La diferencia es que con la clasificación alfabética, solo están involucrados nueve bolsillos: del 1 al 9.
- Al finalizar la clasificación, el operador retira las tarjetas perforadas de los bolsillos digitales. Nuevamente, en orden (como en el caso de ordenar por un campo de datos numéricos): comenzando desde el primer bolsillo y terminando con el noveno. El operador envía el paquete de tarjetas recogido para ordenar por segunda vez.
- En la segunda ejecución, el clasificador de tarjetas perforadas lee solo las líneas de las "zonas" (0, 11 y 12) e ignora las líneas con números.
- Como resultado, el clasificador distribuye las tarjetas perforadas ordenadas en tres bolsillos “zonales”: de A a I se colocan en el bolsillo 12; de J a R - en el undécimo; de S a Z - en el 0.
- Si necesita ordenar no por un primer carácter, sino por dos o tres primeros caracteres, por ejemplo, entonces el proceso descrito anteriormente (pasos uno a cuatro) se realiza secuencialmente para cada carácter. Es decir para cada símbolo, se realizan dos recorridos por el clasificador de tarjetas perforadas.

Entonces, cuando todavía no había computadoras, las empresas procesaron grandes datos utilizando tarjetas perforadas. A pesar del hecho de que las tarjetas perforadas están irrevocablemente desactualizadas, todavía encontramos su influencia en el estado actual de la tecnología informática, siempre que tengamos que soportar el formato de texto con líneas de 80 caracteres. Algo similar se observa, por ejemplo, cuando se trabaja con Far Manager.