Presents: ObjectRoleModeling.com Thursday, September 09, 2010
  Search
Register Login
Web Log
 
 
  Web Log Entries  
 
Oct 7

Posted by: Scot Becker
10/7/2004 

On the "Ref Mode" tab of the "Database Properties" sheet for an object type, you may have noticed the "Type" drop down list. This list is enabled if the selected object type is an entity type and has a simple (internal) reference mode.

For example, consider the fact types "Person(SSN) has height of Length(inches)" and "Person(SSN) was born on Date(dd-mm-yyyy)". The three object types of interest are entity types and have a simple (internal) reference mode. As such, we can choose one of the following reference mode types:

  • Identification (Default): Indicates that the reference mode is used to identify the object type
  • Measurement: Indicates that the reference mode is used in a measurement
  • Formatting: Indicates that the reference mode specifies the format of the object instances
  • No Reference Mode: Indicates that the object type has no simple (internal) reference mode (the object type may be co-referenced, the result of a nested predicate, one who’s reference mode has yet to be assigned, or a value type). Note that if you choose this option, it will clear out any reference mode you have supplied in the "Reference" text box.

As luck would have it, each of the object types in my sample fact types has a distinctly different reference mode type and together they comprise first three in the above list. "SSN" is an identification scheme for a person, "inches" is a unit of measurement for length, and "dd-mm-yyyy" is a format specification for a date (for this example, assume the underlying data type is not datetime or any other similar data type but is a formatted character string).

The main impact of selecting a reference mode type is upon verbalization of the reference mode details (i.e. in the verbalizer window or in an object type report). The verbalizations of the three object types (respectively) are:

  • "Every Person is identified by one distinct SSN"
  • "Every Length value is measured in inches"
  • "Every Date value is recorded as 'dd-mm-yyyy'"

Now let’s consider the verbalization for entity types with no reference mode, value types, co-referenced entity types, and object types as a result of a nested predicate. Given the fact "Room has Room Number()" where "Room" is an entity type with no reference mode and "Room Number" is a value type, they will verbalize (respectively) as the following:

  • "Room has no clear identification scheme"
  • "Room Number is a value object type"

If we now add the fact type "Room is in Building(nbr)" and add an external uniqueness constraint across the Room Number and Building Roles (and declare that uniqueness constraint as primary), we have co-referenced Room and thus it now has a reference mode. This reference mode is verbalized (somewhat awkwardly) as "Room is primarily identified by the constraint: For each Room Number r and Building b there is at most one Room that has Room Number r and is in Building b." Note that if we don’t declare the uniqueness constraint primary, it will read as "Room can be identified by..." instead of "Room is primarily identified by...."

Given the fact type "Person(SSN) is enrolled in Course(nbr)" and this fact type is nested as "Enrollment", we have now created a nested (a.k.a. objectified) fact type who’s reference mode is the combination of Person and Course. However, the verbalization of this reference mode is a little vague: "Enrollment is an alias for the nested fact type 'Person is enrolled in Course'".

Tags:

Bookmark and Share
 

Note: To comment on a blog post, you must be logged in.

  Search Web Log  
 
 
  Subscribe Minimize  
 
Subscribe
 
  Categories  
   
  Archive  
   
  Blog Roll  
   
  Syndication  
   
 
© 2003 - 2009 Orthogonal Software Corporation. All rights reserved. Terms Of Use Privacy Statement