9. The article of manufacture of claim 8 wherein the data further comprise data that, when accessed by the machine, cause the machine to perform operations comprising: for each business rule, determining whether the business rule imposes a limit that a role of a fact type has a maximum cardinality of one; and if the business rule imposes such limit, adding the role of a fact type that has a maximum cardinality of one to a third list of single-valued roles.
9. The article of manufacture of claim 8 wherein the data further comprise data that, when accessed by the machine, cause the machine to perform operations comprising: for each business rule, determining whether the business rule imposes a limit that a role of a fact type has a maximum cardinality of one; and if the business rule imposes such limit, adding the role of a fact type that has a maximum cardinality of one to a third list of single-valued roles. 13. The article of manufacture of claim 9 wherein the data causing the machine to perform processing the fact types in the list of fact types comprise data that, when accessed by the machine, cause the machine to perform operations comprising: if a fact type in the list of fact types is not a basis for describing a reference scheme for a type: (1) creating a database table for the fact type, the fact type having one or more roles, each of the roles having a type; (2) for a role of the roles of the fact type, if the type of the role is a lexical type, adding a column of the lexical type to the database table, else, adding an identity-type column to refer to database identity of the type; if the role is in the list of single-valued roles of fact types, creating a uniqueness constraint spanning columns that correspond to the remaining roles of the fact type.