next up previous contents
Next: Update Rules Up: Update Rules Previous: Insert Rules

Delete Rules

Every object or protocol class, , is associated with a delete rule consisting of the following components:

  1. For every object or protocol class that has a simple attribute A associated with a value class involving , if the A value for an instance y of is instance x of and the delete rule specified for A is

    1. restricted (the default), then if x is one of the A values for y then x cannot be deleted from ;

    2. cascades, then deleting x from entails deleting y from ;

    3. nullifies, then deleting x from entails nullifying the A value of y if this value consists only of x and A has a minimum cardinality of 0, or removing x from the set of A values for y if the number of remaining A values for y is greater or equal to the minimum cardinality of A.

    For tuple attributes the component delete rules for are similar to the above. Note that the delete-rule refers applies to each component attribute.

  2. If is a superclass, then instances deleted from must be also deleted from (propagated to) all subclasses of .

  3. If is protocol class, then deleting an instance x from can have the following effect:

    1. for every object class involved in the value class of an input attribute of , A, if the A value of x is object y of then the InputFor value of y is turned to null;

    2. for every object class involved in the value class of an output attribute of , A, if the A value of x is object y of and the delete rule specified for system attribute OutputOf of is

      1. nullifies, then OutputOf value of y is turned to null;
      2. cascades (the default), then y is deleted from ;

    3. for every (generic, subprotocol, predecessor, or successor) protocol class related to , if the SucProt (or GenProt, SucProt, PreProt) attribute value of includes x for an instance y of , and the delete rule specified for SubProt (or GenProt, SucProt, PreProt) attribute of is

      1. restricted, then x cannot be deleted before y is deleted from ;
      2. cascades, then deleting x from entails deleting y from ;
      3. nullifies (the default), then deleting x from entails removing x from the SubProt (or GenProt, SucProt, PreProt) value of y, or turning this value to null if it consists only of x.


next up previous contents
Next: Update Rules Up: Update Rules Previous: Insert Rules