Should you read about "Database Theory?"
Hello! I am traveling and also sick and also this post is scheduled to come out on Christmas Day so it's going to be a little shorter and chiller than usual. Happy holidays.
I don't think anyone I've ever pointed to Foundations of Databases (often called "The Alice Book") has found what they expected to in it. I would also say the vast majority were...disappointed. Or at least disinterested. I suppose that is fair if you were expecting to hear about like, optimizing access patterns, or something, but instead found this:
In fact, I think it's probably more likely you did an awooga and your eyes popped out of your head at that if the title "Foundations of Databases" didn't appeal to you.
"Database theory" is probably better understood as like, "the intersection of databases and math" than it is as "the study of databases," and I don't think there's a simple way to relate it to some specific subfield of math, it's concerned with a couple of areas that I don't think most math people would lump together, including but not limited to:
- logic,
- complexity theory, and
- information theory.
I used to tell people it was basically logic that was mostly concerned with finite relations, but I think that's reductive because there's a lot of stuff about query languages and join bounds that certainly fall under database theory that are not really reasonably described as "logic."
So, is this book, or its yet-incomplete successor worth your time? My take is:
- if you are going to try to convince yourself that this is going to make you more effective in any way whatsoever, probably not.
- If you already have an affinity towards queries and databases and stuff you are excited by the thought of writing shit like, "let $\mathcal{Q}$ be a query," then hell yeah brother. This stuff is great.
As a noted enjoyer of casually doing math recreationally I personally (no doubt aided by an extant level of comfort with databases and logic) found this to be a good level of like, here is some fun stuff to think about and prove (or not, if the muse does not grab you).
Not to mention, the book itself looks great on a bookshelf:
Not to say this book is perfect. It shows its age quite a lot, it's almost thirty years old (it was published in 1995) and is missing quite a bit of stuff you might expect to see (worst-case optimal join stuff being perhaps the best modern example of a topic that didn't exist when this book was written). Hopefully Database Theory will be a worthy successor and will take over as the new default, but as-is that book is not done and so I am forced to recommend Alice.