R30 - modelint/shlaer-mellor-metamodel GitHub Wiki

R30 / Generalization

Identifier is a Super Identifier or Irreducible Identifier


All Identifiers have the following property:

If you supply a value for each of the Identifier's component Identifier Attributes, you can select at most one instance and possibly zero of the defining Class.

An Irreducible Identifier loses this property if any Identifier Attribute is omitted.

A Super Identifier is an Irreducible Identifier with one or more additional Attributes. If any of these additional Attributes are removed, the selection property will still hold.

All functional dependency properties apply to both Super Identifiers and Irreducible Identifiers alike.

Formalization

<subclass>.(Number, Class, Domain) -> Identifier.(Number, Class, Domain)
⚠️ **GitHub.com Fallback** ⚠️