Object-role modeling (ORM) object type is either a value type or an entity type. A value corresponds to an entry in a table and is denoted as a character string or numeric constant (e.g., “Ireland,” 56). A value identifies or refers to itself, so there is no need to specify a reference scheme (identification scheme) for it. An entity is identified by the means of a reference scheme that uses one or more values. A simple reference scheme uses only one value (e.g., the Country with the Country Code “US”). Therefore, the country code “US” is a value, but the actual country (the United States of America) is an entity. Entities and values in an ORM model correspond to real world objects in the application domain, not tables and columns in the logical database model. The Visio tool allows an object type to be declared external. This means that the object type is previously defined (either as an entity type along with its associated reference scheme or as a value type) in another model and is simply being reused, so there is no need to redefine it in the current model. The Visio tool also allows adding new object types and editing them using the Business Rules window, the Fact Editor, or the ORM Source stencil. In ORM, an object type is said to be an independent object type if its instances can exist without playing other roles. Independent object types always map to a key, total table when the logical model is built (i.e., their identifier is used as the primary key of the table and the table contains all their instances).