ABSTRACT

The Unisys Semantic Information Manager (SIM) is an object-oriented database management system that supports the usual 0-0 structures classes, subclasses, object-reference attributes but does not have user-defined methods [JAG88]. It has its own languages for object definition and manipulation. SIM provides for general constraint rules in a schema. These are conditions that must be true at all times. They are general expressions and can include aggregate functions, quantifiers, and references to multiple objects. Examples are: VERIFY salary-trend ON Employee: salary < salary OF manager ELSE "Employee must earn less than his manager" and VERIFY salary-range ON Project: MIN(salary of project-employee) > ELSE "Salaries must not be widely spread" SIM recognizes rules that might be violated by an update, either by explicit changes to attributes or by implied changes. The generated code for the update finds the perspectives of these rules and calls stored queries that check the rules. For example, salary-trend could be violated by a change in someone's salary or a change in the Employee- Manager relationship. If someone's salary changes, the constraint must be checked for that Employee, and, if the Employee has subordinates, for each subordinate also. Because a constraint can involve several objects, and an update can affect several objects, constraint checks must, in general, be deferred until all objects of the update have been changed. If the constraint fails, the update is rolled back and the caller is notified. In some cases the parser can determine that the rule or some of its clauses are or are not violated, and the parser can simplify or eliminate the rule checking code. For example, Salary-trend does not have to be checked when an Employee is deleted, but salary-range does. Simple constraints can be checked against constant assignments. SIM also has structural constraints, such as required attributes, attribute types, and subranges, which are enforced by more specific mechanisms. [JAG88) Jagannathan, et al, SIM: A Database System Based on the Semantic Data Model, Proc. SIGMOD 1988.