Proposed Schemes for Default Values

C. J. Date and others have proposed alternatives to Nulls in database processing. These schemes use standardized Default Values rather than Nulls to represent missing information. They also propose elimination of 3 Valued Logic in detection of unknown answers. Unknown answers occur when data of interest is missing.

This section will review two major schemes for Default Values proposed by 1) C. J. Date and 2) David McGoveran. No serious Default Value Schemes have appeared in products, but these two are most important proposals. Even so, they are both incomplete and cannot be implemented as defined. The two proposals are reviewed briefly below.

C. J. Date's Proposed Scheme for Default Values

C. J. Date proposed his scheme for Default Values in Relational Database Writings 1989-1991, References (4). Date recently referenced this as the definitive scheme in The Third Manifesto, References (5) and also in Nothing to Do with the Case, References (6).

In Date's scheme, each column domain can have a Default Value defined. The Default Value is a special value, not part of the actual logical domain of the column, but part of the physical domain. For example, the Default Value for birthdate might be zero, not a valid date.

Date also defines operators for handling Default Values - IS_UNK() to detect if a column has a Default Value and UNK() to retrieve the Default Value for a column. An IF_UNK() operator is defined also. These operators are equivalent to those used in Null processing - IS NULL, NULL, IF_NULL(), respectively.

David McGoveran's Proposed Scheme for Default Values

David McGoveran defined his scheme for Default Values in the last installment of his 4 part series in Database Programming & Design - Nothing from Nothing, References (2). His scheme is quite similar to Date's except in the representation of Default Values. In McGoveran's scheme, Default Values are part of the logical domain but marked with a special indicator similar to that used for Nulls.

Do Default Value Schemes Solve the Missing Information Problem?

The purpose of the Default Value Schemes is to deal with missing information, but they return to inadequate methods used in earlier systems (this is the real world Date refers to!) Arbitrary values are defined for each data value domain as the default. These values are used to represent something outside the regular meaning for data values - the fact that there is no data value, it is missing. Default Values are unsystematic choices made in the manner that was used in earlier form processing.

While Date and McGoveran define Default Values as a characteristic of a domain, current RDBMSs do not support true domains. This complicates their schemes by requiring that Default Values be defined for each column in the database. It brings up problems of common Default Values between keys, such as, primary and foreign keys.

In the Default Value Schemes, 3 Valued Logic is not used. 2 Valued Logic is substituted, using 2 logic values - True and False. This produces the biggest problem with Default Values - they have only primitive mechanisms for dealing with unknown answers. Unknown answers are the result of missing information.

The database system is not aware that Default Values represent missing information, so all processing of missing values must be handled by the user of the system. To get proper results, the user must deal with missing information by adding numerous specific tests. Because Default Values are actual values, they can produce seemingly correct results in operations that are actually incorrect, unless very special care is taken in formulating queries.

Return to Contents Page: Should Nulls be considered harmful?     Return to Issues Page

Copyright © 1998 FFE Software, Inc. All Rights Reserved WorldWide