It is hard to remember that practical computers haven’t been around for even a century, yet. Modern computers have been around an even shorter period. Yet somehow people computed tables, kept ledgers, and even wrote books without any help from computers at all. Sometimes they just used brute force but sometimes they used little tricks that we’ve almost forgotten. For example, only a few of us remember how to use slide rules, but they helped send people to the moon. But what did database management look like in, say, 1925? You might think it was nothing but a filing cabinet and someone who knew how to find things in it. But there was actually a better system that had fairly wide use.
How Do You Sort Massive Amounts of Paper Records?
Not that people didn’t have filing cabinets. The problem with those is that you have a single primary key or you have a lot of duplication. Consider report cards for students. If they were in a filing cabinet, you’d probably want the folders to have student’s names. Or perhaps their grade. Or maybe their teacher. With a database table, that’s easy to just create a view based on a query for any of those items. In a filing cabinet, I’d need three copies of the report card — in a day when copies were hard to produce. Sure, you could come up with some scheme, like the class and teacher folders had lists of names, but that’s a hack and not in a good way.
Besides, what happens if someone wants the report cards for all girls in the 8th, 9th, and 10th grades? That’s a lot of manual selecting. Report cards are pretty simple, too. Imagine if you had a really complex data set.
The High-Tech of Cutting a Notch
The answer was in a type of punched card. Not the punched cards we know from vintage computers. These cards had holes punched around the edges. They were often called edge-punched cards or edge-notched cards. We’ve also heard them called “needle cards” for reasons that will soon become apparent. There were several well-known brand names including Cope-Chat, E-Z Sort, Flexisort, and McBee Keysort cards.
Let’s go back to our report card example. If your report card was on an edge-punch card there would be holes all around it with little labels. One might say 1st grade. Another 2nd grade. Another might say “male” next to one that said “female.” Whoever produced the card would use some tool to open up the holes that applied to that card. So if a card was for a girl in Mrs. Miller’s 4th-grade class, you’d open up the female, 4th grade, and Mrs. Miller notches.
Looking for punched holes isn’t really all that useful, though. You might as well just look for text on the card. The value is when you stack the cards.
You can take the stack in any order and put a long needle — like a knitting needle — through, say, the 4th-grade hole. When you lift the needle, all the ones that have an intact hole in that spot will stay on the needle. Any that have the hole open will fall down on your desk.
Manual Logic Operations
Of course, the best queries have multiple parts. If you pick up the cards from your desk and repeat the operation with the “female” notch and the “Mrs. Miller” notch, you’ve done a logical and operation. You could also use multiple needles, but that gets hard to handle eventually. If you repeat the operations on the cards that stayed on the needle you are doing an or operation. If you want to logically invert, you just use the stack in your hand instead of the cards on your desk. Easy.
Of course, the cards are not going to stay sorted that way. In addition, like most things, the cards got more complicated as time went on.
Getting More Creative
Another common enhancement was to cut one corner of each card so that if a card were not lined up correctly in a stack, it would poke out (you can see a small corner at the upper right of the card in the picture). Some cards had two levels of holes so you could do a built-in AND operation.
Zatocoding was a way to solve a particularly difficult problem with the cards. For a school report card, you might have 12 grades and putting 12 holes in the edge of a card isn’t a problem. But suppose you were trying to do library book records (if you are old enough to remember a card catalog — another type of database). There could be hundreds of subjects. You can have a hole for history, electronics, horror, and the hundreds of other topics you might want to index.
Zatocoding came to the rescue on this problem. The key is to pick a pattern of multiple holes for each topic. American history might use 1, 5, and 15. Electronics might be 5, 12, and 16. By putting three needles in at one time, the cards that fall out would be for American history. Because some books could be in multiple categories, it is possible that some other books would fall out, too. For example, a book that fell into electronics {5,12,16} and two other categories {1,9,11} and {4,7,15} would fall out on searches for American history. You’d have to manually reject those.
The selection of how many needles and how the patterns created varied by scheme — Zatocoding was just one method. But the idea was to map a bunch of items onto a smaller number of holes. If you did it right, you’d eliminate or at least minimize the number of items you’d have to reject.
For numbers, you could use punches for 7 4 2 1 0 which would allow you encode any number from 0-9. If you understood binary you could do the job in 4 holes, but the 74210 system was more common. You can even sort numbers with a small number of operations.
There were apparently other similar systems that used punches over the entire surface of the card. There were also peek-a-boo cards that had a similar function. Suppose our library has 5,000 books and we have sheets with numbers 1-5,000 preprinted. On one page we write “American History” and punch out the books that apply. On another page, we write “Electronics” and punch out the books for that one. If we want to see if any books exist on Electronics and American History we simply put the pages together and hold it to the light. Any holes that go all the way through the stack match. Then you have to go find the books by number.
Try It Yourself
Want to try your hand at McBee cards? Or want to prepare for the zombie apocalypse? The video below shows you how to repurpose a spiral punch. We hear you can also take wire cutters to a spiral notebook to liberate punched paper.
[Main Image Source: National Endowment for the Humanities]
Royal McBee was also an early computer company. Read the story of Mel. https://en.wikipedia.org/wiki/The_Story_of_Mel
Everyone knows the story of Mel.
Speak for yourself, I’ve never heard of it.
Mel wrote code for the Royal McBee LGP-30. A drum computer.
Quoting a small portion of the story:
“Real Programmers wrote in machine code.
Not FORTRAN. Not RATFOR. Not, even, assembly language.
Machine Code.
Raw, unadorned, inscrutable hexadecimal numbers.
Directly.”
I have a suspicion that Mel still lives somewhere in California, at the age of 88. Perhaps someone should find and interview him.
You can recognize him at the supermarket.
He’s the guy running his groceries through the self-checkout, with his shopping list on the back of a 5081 card, stuck in to the pocket of his shirt.
:-)
“He died at his desk
Of hunger and thirst.
They laid him to rest,
Face Down, 9 Edge First.”
[…actually, I think that’s from ‘The Last Bug’, but it’s fitting for Mel as well]
That was an interesting experience. I do know the Story of Mel, but had forgotten the title. Hat’s off to someone coding at the level of understanding how the bare metal reacts with essentially zero levels of abstraction between themselves and the hardware.
We old farts used to do this when microprocessors were a new thing.
My wife, to satisfy her language requirement in college (she is not good at languages) managed to get permission to take a programming course using the KIM-1. She wrote assembly language code to blink LEDs and such, then *hand assembled* it into hex values, which she entered into the KIM-1 by keyboard.
At that point, I decided I needed to marry her, and we are still together.
As it happens, I used an LGP-30 too!! Small world. It had a 4000 word magnetic drum memory so, as Mel clearly knew, timing depended on the drum address you used. At GE Space Div, we had a 7094, but the turnaround was measured in days. I could get on the LGP-30, run my program and get the results in about an hour, max.
We also had ACT-1, and our resident guru loved tinkering with it. But it was horribly slow … so slow that she would set it up to run all night. Fond memories.
I had no idea these had existed, but in retrospect it makes sense. Just because people lacked electronic computers doesn’t mean they couldn’t conceptualize and actualize a database. This is fascinating and I’m glad you posted about it.
I recall using these in graduate school to organize papers, then changed to punch cards in FORTRAN using the main frame. Take your cards to a window, come back the next day for a fan fold printout.
I work for a large corporation with 250 locations with a staff of 50-100 at each location. I have suggested they use these cards at each location to manage shift scheduling. No one has taken me up on it. Instead everyone uses spreadsheets, calendars, paper calendars … It is typically botched with multiple corrections during the week and much complaining.
In the department I studied in we had an IBM Selectric as an output from the mainframe. It was a very nice 1970s way of printing papers for publication.
The Dallas Public Library system used these to keep track of books, from the early 60 to at least the early 70s (and maybe later – I moved out of town in 1971).
When I was in elementary in the early 80’s I used a device similar to this. A homemade quiz toy. It was a thin, flat, wooden box, open at the top and about 3/4 of the face side. At the bottom of the remaining 1/4 of the face was three holes in which you could insert a wooden stylus. Laminated cards with multiple choice questions where stacked in the box. You would select your answer by inserting the stylus and if correct, the card could be pulled up out of the top of the box allowing you to proceed to the next question. The wrong answers all had a hole at the bottom of the card to hold it in place when pegged and the correct answer had a slot cut to the edge of the card.
I remember it mostly because I was more fascinated with the mechanism of the device, then the questions it asked.
Back in the early sixties, my local cable company (yep, cable in 1961. 5 channels. Where I lived… no cable? No channels) used a strange looking payment book made with these notched cards. I guess they could tell who had or hadn’t paid their bill for the month with them.
Oh, hell. I remember creating of of these when I was a kid. Can’t remember what info was encoded, though.
They must have had reliability problems sometimes. Once a hole edge splits, the card will no longer be in a category it is supposed to be in, and the only way of refectifying the situation would be to manuallly look through the whole lot.
Just like Microsoft Access – it doesn’t take much to corrupt the database – the punched cards were possible more robust than access
Actually less of a problem than you might think – the cards were heavy-duty thick treated paper and were very durable. But yeah, if one ripped then you’ve got an uncorrected single bit error and that card could be lost. In those days, paper was regarded as much more reliable and trustworthy than a spinning wheel of rust. If you had something on paper, it was safe.
This article is fascinating! Thanks!
I worked in a library in high school (mid 1970s) and we used McBee cards to track books that were checked out. Them and microfilm.
Wow. Zatocoding -> bloom filters
Amazing methods people figured out.
In the early 70’s, my 4th of 5th grade class, I remember a set of cards for identifying minerals: color, hardness, etc. with notched cards. Put the pegs through, and the ones that fall out are candidates for which mineral you’re examining.
Think about this: you’re doing a multi-parameter select in Constant time, not log(n) (if it’s sorted) or n (if it isn’t).
I went the same place on the algorithmic complexity. Really fun stuff to think about in regards to coming up what would be required/lost in trying to implement it on a general purpose computer.
A notched Hypercard stack? Too bad it only runs on Macintosh. ;)
I wonder if we get the word “Tabulate” from something similar.
Tables, they existed before database software. The calculation of tide tables inspired the first computing efforts though.
I actually had and used such a system. In the 70’s and 80’s, I had collected enough conference papers, NASA docs, etc. to fill 2 5-drawer file cabinets. I had the papers sorted by category, but the problem is as you said: So many papers fit into multiple categories, so I had to duplicate the papers to make sure I’d find them.
Then, in the Lafayette Electronics catalog, I found a card sorting kit. These cards had double rows of holes, and came with a sorting box, a hole clipper, and some knitting needles. They worked just beautifully. Instead of sorting the papers into separate folders, I just gave them each a numerical “address,” and stored them in the file cabinets in numerical order.
Then I created a card for each document, and encoded the various categories into the holes.
Did it take awhile to create the system? Yes! But once done, I could locate any doc in about 5 minutes. It was great!
Oddly enough that’s where I first saw these cards too was in the Lafayette catalog.
Looks like with this system you don’t have to keep the cards in order. But of course what they reference has to be kept in order or you’d still never be able to find anything.
Yep, that’s right. I put number stickers on the docs in no particular order, and had file folders like 1-20, 21-40, etc. The file cabinet becomes nothing more than a physically large RAM; each doc has a unique address.
Continuing the analogy, the card system is the equivalent of a searchable database. With a little ingenuity, you can even do and/or searches.
A botanical key to Australian rainforest species was developed using this type of card systen by dr B Hyland from memory. Holes represented characteristics such as leaf type
I wonder if they used some sort of hacksaw to notch a large amount of cards at once? That could be useful when setting up a new database from scratch, working your way category by category. The hacksaw-like tool from the picture seems to be only some sort of locking needle.
Also, to repair fatigued holes that are not supposed to get notched, they could glue small paper eyelets (nowadays you can find adhesive ones but IDK if those were available back then.
Does someone know when the first instance of such a system was documented? the technology could easily have been available since Ancient Greece (with different materials of course). I mean, holes and a stick, right? I guess the hard part would be to punch all these holes by hand, sure, but medieval monks labored on more menial tasks than this.