Semantic Object Model
References
- E.F.Codd, "Extending the Relational Model to Capture More Meaning," ACM Transactions on Database Systems, December 1976, pp. 397-424
- Michael Hammer and Dennis McLeod, "Database Description with SDM: A Semantic Database Model," ACM Transactions on Database Systems, September 1981, pp. 351-386.
- Semantic objects (meaningful entities?) are modeled to match the technical representation of a system more closely to the conceptual view
- A semantic object is a representation of some identifiable thing in the user's work environment. It is a named collection of properties that sufficiently describes a distinct identity.
- An object class has a name that distinguishes it from other classes
- An object consists of a set of attributes which is a sufficient description
- Objects (instances) represent distinct identities
Attributes
- Attributes represent characteristics that the users need in order to do their work
- Simple attributes
have a single value
- Group attributes
are composites of other attributes (e.g. address consists of street and city)
- Semantic object attribute
establishes a relationship between one semantic object and another
- Cardinality: minimum (usually 0 or 1) and maximum (usually 1 or N) is written as minimum.maximum
- Paired Attributes: If Object A has a relationship with Object B, then B has a relationship with Object A.
Object Instances
- A specific object of a semantic object class
- Object identifier is one or more object attributes that the users employ to identify object instances (e.g. customerID, CustomerName)
- Attribute domain is a description of an attribute's possible values
Semantic Object Views
- Portion of an object that is visible to a particular application (e.g. report) is called the semantic object view or simply the view
- A view consists of the name of the object plus a list of all of the attributes visible from that view
Types of Objects
- Simple Object
is a semantic object that contains only single-valued, nonobject attributes
- Composite Object
is a semantic object that contains one or more multivalued, nonobject attributes. (e.g. LineItem of a sales receipt is a group attribute of cardinality 1.N, not modeled as an independent semantic object)
- Compound Object
contains at least one object attribute, may consists of one or many objects
- Hybrid Object
is a combination of objects of two types of objects, e.g. one multivalued group attribute that includes a semantic object attribute
- Association Object
relates two or more objects and stores data that is peculiar to that relationship
- Parent/Subtype Object
has an important characteristic called inheritance. A subtype acquires or inherits all of the attributes of its parent.
- Archetype/Version Object
produces other semantic objects that represent versions, releases, or editions of the archetype
Similarities and Differences between Semantic Object and OOP
- Both model data and relationships among data
- Both encapsulate structure
- Both provide for object inheritance
- Semantic objects are used to model data structures that people use in business, commerce and other administrative applications
- OOP provides for the definition of methods and for method inheritance and polymorphism in computer programs which SOM don't have