Throughout my working life as a web programmer I have always had access to cheap or free databases. Databases are specialized software for creating, storing, managing, and analyzing data. Data is just stuff, or rather, structured stuff: The cells of a spreadsheet, the structure of a Word document, computer programs themselves—all data.

If you have a million customers you can’t just have a million files all over the place. You need to put them somewhere. Enter the database. The database is the unsung infrastructure of the world, the shared memory of every corporation, and the foundation of every major web site. And they are everywhere. Nearly every host-your-own-web-site package comes with access to a database called MySQL; just about every cell phone has SQLite3, a tiny, pocket-sized database, built in.

See that term, SQL? That’s the lingua franca of what’s called the relational database world. It stands for “Structured Query Language.” IBM makes DB2; Oracle has the Oracle Database, currently at version 12c. Then there’s Microsoft SQL Server, MySQL (open sourced and freely available, but owned by Oracle), PostgreSQL, and SQLite. These are just the more famous of the databases that “speak” SQL; what this means in practice is that were one to sit down before a command prompt of any of them and write “SELECT * FROM tracks WHERE musician = ‘Katy Perry’;” all the tracks by Katy Perry would be listed on the screen, assuming that a large database of tracks already exists where each track was associated with a musician’s full name.

Most online catalogues work along these lines—there are tables of, say, screwdrivers, and tables of customers, and there is another table that lists which customer bought which screwdrivers (they might purchase more than one); furthermore there are tables of shipping rates by screwdriver weight; tables of postal tariffs; tables of administrators who have the privileges necessary to update the screwdriver table (who might be separate from those who have the privileges necessary to update the postal tables).

All of these tables relate to one another; “screwdriver #123 was purchased by customer #456” is a fact. Where all this gets particularly interesting is wherever, by traversing the relations between tables (this is done, like anything, by commands issued in SQL), you can discover new things: Where in America do people use more Phillips than flat-head screwdrivers? Where do they buy the most screwdrivers? These are the merits of the “relational” database. Predictable, logical, capable of processing thousands of transactions with provable integrity, so that not one penny is lost: SQL is the perfect servant of capitalism. Who could need anything more?