4. 模式演变的不变性

  面向对象模式演变的五个不变性已经从面向对象数据库管理系统ORION的数据模型中反映出来。综述如下:

  (1) 类格的不变性。类格是有一个根相连的有向无环图(DAG),该DAG图只有一个根,称为系统定义的类OBJECT。该图是连通图,不存在孤岛结点。由根出发可到达每个结点。该DAG图中的每个结点都有唯一的名字,指向任一结点的边都有不同的标号。

  (2) 不同名字的不变性。一个类的所有实例变量,无论是定义的,或是继承下来的,都有不同的名字。类似的,一个类的所有方法,无论是定义的或是继承的,也都必须有不同的名字。

  (3) 不同标识来源的不变性。一个类的所有实例变量和方法要区分来源。

  (4) 完全继承的不变性。在不引起名字和标识冲突时,一个类从它的每个超类中继承所有的实例变量和方法。换句话说,假如两个实例变量有不同的来源,但在两个不同的超类中有相同的名字,至少要继承其中的一个。假如两个实例变量在两个不同的超级类中有相同的来源,只能继承它们当中的一个。

  (5) 域一致的不变性。假如类C的实例变量V2是从C的一个超类的实例变量V1继承来的,V2的域要么与V1的域相同,或者是V1的一个子域。