  The relational data model requires a theory of relations in which tuples are
not only many-sorted, but can also have indexes that are not necessarily
numerical. In this paper we develop such a theory and define operations on
relations that are adequate for database use. The operations are similar to
those of Codd's relational algebra, but differ in being based on a
mathematically adequate theory of relations. The semantics of predicate
calculus, being oriented toward the concept of satisfiability, is not suitable
for relational databases. We develop an alternative semantics that assigns
relations as meaning to formulas with free variables. This semantics makes the
classical predicate calculus suitable as a query language for relational
databases.
