The Forum for Discussion about The Third Manifesto and Related Matters

Please or Register to create posts and topics.

On degenerate TTM relation values, and their schemas

RM Pro 5 "relations with no attributes are respectable and interesting" along with RM Pre 9 "A heading H is a set ..." and RM Pre 10 b. "The body of [relation value} r shall be a set ..." makes clear that DUM and DEE are valid relation values; so there could be a valid database schema consisting wholly of relvars whose headings are empty. (The Shop and Alarm database.)

If the database contains relvars with non-empty headings, each attribute must have a type [RM Pre 9 again]. For scalar attribute types, RM Pre 1 says "any given scalar type T shall be accompanied by a specification of an example value of that type."

  • So every scalar type must include at least one value? Must it have more than one value?
  • RM Pre 9 also mentions "the system defined empty type omega ...". Is omega allowed as an attribute type in a relvar definition? Do I need to read the inheritance model?

If DUM and DEE are "respectable" values for base relvars; how about base relvars with an attribute type allowing only one value? How about base relvars with an attribute type that's omega (if allowed)?

  • If omega's allowed as an attribute type, any relvar with that type for one of its attributes could only have one possible value (empty). Then the whole relvar is redundant.
  • If a singleton scalar type is allowed as an attribute type, that attribute would appear to be redundant: for any relvar with a non-empty content, that attribute must be that value. (The power of RM Pro 4 banning NULL.) Whatever information that attribute conveys could be equally conveyed by the relvar's value being empty or not.

Then could I say without loss of generality that there's only one relation schema for which there are as few as two valid instances, namely the empty heading with instances DUM, DEE? For any other relation schema, there must be at least three valid instances.

Presumably it's valid to have a database schema consisting wholly of relvars whose attribute types are RVAs with no attributes(?) -- i.e. exactly two values in the type. This seems much richer than single-value or zero-value types.