A Value Type in object-role modeling represent a domain of values, rather than an entity or relationship. Value types are used to represent data that does not have a separate existence outside of the object that is related to values of that Value Type.
Value types represent data types, such as integers or strings, dates or times. Value types can also be used to represent things like codes or flags, which may be used to control the behaviour of an object or system.
Value Types range over a domain of data vales and where the name of the value type loosely defines the data values of roles played by that value type, within the population of fact types. An example fact type follows, but first we provide an example value type.
Value types in object-role modeling are drawn as round rectangles with a dashed line and the name of the value type within the dashed rounded rectangle, as in Figure 7.1 below.
An example Value Type
The value type, Name, above, loosely defines the data values of roles joined to that value type. For example, the ORM diagram below shows where a person (entity instance) of the Person entity type must have a first and last name, may have a middle name and where first, middle and last names are all of the value type, Name. The data values for those names are only loosely defined by the Name value type, and require an interpreter’s (e.g. your) understanding of what a name is, and what are example data values for name (e.g. 'Peter', or, 'Jenkins').
Three fact types with roles joined to a value type
Take the FactEngine online training course to learn more about Value Types in Object-Role Modeling.