# Is there a set theoretic way to look at SQL?

I have been learning about SQL and at times it feels like set theory. A statement like SELECT * FROM myTable is like a set $\{ x: x \in \text{myTable} \}$.

A table could be defined as any subset of the Cartesian product. We could define a table called zipcodes with a schema city STRING(30), state CHAR(2), zip INTEGER(5) then in set theory we could define the zipcodes stable as: $$zicodes \subseteq \text{cities} \times \text{states} \times \text{zips} \simeq \{a, \dots, Z\}^{30} \times \{a, \dots, Z\} \times \{1, \dots, 10^5\}$$ So any table is a subset of a cartesian product.

My theory has limitations, since you can't store all of $\mathbb{R}$ as a SQL database (e.g. by cantor diagonalization) since $|\mathbb{R}| > |\mathbb{Z}|$ in cardinality.

In any case, do any theories of SQL exist that compare it to set theory?

• The theory is that of a relational model, and it predates SQL. Jan 27, 2016 at 12:52
• Actually, I think that SQL is usually described set-theoretically in terms of Relational Algebra; while the term relational model refers to an abstract data model, namely, the standard table/relations-based database management model (irrespective of the query language, e.g., SQL). Though indeed, both seemed to be developed by the same person, and so are intimately connected. Jan 27, 2016 at 19:00