The Closed World Assumption Revisited
Recall that any tuple in a relation body is assumed to conform to the Closed World Assumption of Raymond Reiter (see “The Closed World Assumption” on page 630). With the addition of nulls to the database relational model, the CWA can no longer be assumed to be true. As an example, consider the following Venn diagram.
In contrast with the Venn diagram in the topic “The Closed World Assumption” on page 630, there is overlap between the set of false propositions and the set of true propositions, represented by the darker shading. Better put, there is potential overlap between those sets. For example, suppose the employee table has an emp_age column that permits nulls. The company hires an employee who does not disclose her age in the application form. All other information for the employee is entered.
Because the age for this employee is missing, the tuple that represents her can neither be evaluated as true nor as false, so it falls into the ambiguous intersection of the Venn diagram.
At some point, it is discovered that this employee is 15 years old, which violates a constraint on the emp_age column that requires all employees to be at least 18 years old. The proposition for this employee now evaluates as FALSE, and the tuple that represents her is no longer valid in the database. Nevertheless, that tuple was treated as valid from the time its data was entered until the time the age of the employee was discovered to violate the constraint specified for the emp_age column, and that information was used to produce any number of reports which are, in retrospect, known to be non-valid.
Also see Date (2007) for a review of the Closed World Assumption and its role in designing databases.