Every object or protocol class,
,
is associated with a delete rule consisting of the following components:
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
;
entails deleting y 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.
is a superclass, then instances deleted from
must be also deleted from (propagated to) all subclasses of
.
is protocol class, then deleting an instance x
from
can have the following effect:
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;
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
;
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
;
entails deleting y 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.