**The Relational Model**

*When we try to pick out anything by itself*,

*we find it hitched to everything else in the universe.*

—John Muir: *My First Summer in the Sierra* (1911)

I believe quite strongly that if you think about the issue at the appropriate level of abstraction, you’re inexorably led to the position that *databases must be relational*. Let me immediately try to justify this very strong claim!^{1} My argument goes like this:

First of all, we saw in Chapter 5 that a database, despite the name, isn’t really just a collection of data; rather, it’s a collection of “true facts,” or (rather more respectably, since “facts” are supposed to be true by definition)

*true propositions*—for example, the proposition “Joe’s salary is 50K.”Propositions like “Joe’s salary is 50K” are easily encoded as

*ordered pairs*—e.g., the ordered pair (Joe,50K), in the case at hand (where, let’s say, “Joe” is a value of type NAME and “50K” is a value of type MONEY).But we don’t want to record just any old propositions; rather, we want to record all of those propositions that happen to be true instantiations of certain

*predicates*. In the case of “Joe’s salary is 50K,” for example, the pertinent predicate is “*N*’s salary is*M*,” where*N*is a value of type NAME and*M*is a value of type MONEY.In other words, we want to record the

*extension*of the predicate “*N*’s salary is*M*,” which we can do in the form of a set of ordered pairs.But a set of ordered pairs is, precisely, a binary relation, in the mathematical ...

Start Free Trial

No credit card required