Redesigning the Database to Eliminate the Need for Nulls - Teradata VantageCloud Lake

Lake - Database Reference

Deployment
VantageCloud
Edition
Lake
Product
Teradata VantageCloud Lake
Release Number
Published
February 2025
ft:locale
en-US
ft:lastEdition
2025-11-21
dita:mapPath
ohi1683672393549.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
ohi1683672393549

In the first order predicate calculus, propositions can be true or false. The rows of a relational table correspond to logical propositions that evaluate to TRUE (see How Relational Databases Are Built from Logical Propositions), because false propositions are excluded from the database by means of integrity constraints.

One can build a set of axioms deriving from such a set of true propositions and a set of well-defined inference rules (called a calculus in formal logic). Additional true propositions, formally known as theorems, can be derived from this calculus. These derived propositions correspond to valid relational queries if and only if the following statements about the original propositions are true:
  • The initial set of rows represents only true propositions.
  • All operations on a relation that contains tuples corresponding to these true propositions obey the formal inference rules of bivalent logic.

If either statement is false, the correctness (truth of the derived propositions) of any query made against the data cannot be guaranteed. Because SQL nulls represent data values that cannot be asserted, you cannot know whether rows that contain nulls represent true propositions, so the tables that contain those rows are not true relations in the mathematical sense.

A frequently provided justification for using nulls is that maintaining rows with missing values is often necessary and useful in the real world. Pascal asks why recording "partial nothings" in the database is useful if maintaining "full nothings" is nonsensical. Pascal uses the following extreme example to support his case against nulls.