本讲义主要涵盖了高级数据库系统中的对象行为说明,特别是面向对象数据库的操作分类、对象实例的构造与销毁、状态查询、状态转换,以及类型相关操作的声明与定义。这些内容构成了数据库系统中对象模型的核心部分。
面向对象数据库的操作被分为三大类:对象实例的构造与销毁、实例状态的查询和实例状态的转换。构造操作主要用于创建新的对象实例,它们可以是原始构造,通过特定类型的创建函数返回一个新对象,如matrix$create(i),或者是通过计算和已有实例的运算产生新实例,例如矩阵转置。销毁操作则是对对象实例的清理和释放资源。状态查询操作,也称为观测函数,用于获取对象的内部状态而不改变其状态,如查询矩阵的元素值或判断顶点是否为原点。而转换操作,又称mutators,会改变对象的内部状态,比如矩阵相加m1.add(m2),这类操作需确保不会破坏数据库的一致性。
在对象类型中,根据是否支持状态转换,可以将它们分为可转换和不可转换两种。可转换的对象类型至少包含一个转换操作,而不可转换的对象类型则不允许改变其状态。
类型相关操作的定义包括操作说明和操作定义两个部分。操作说明定义了操作的接口,包括操作名、参数列表和返回类型。操作定义则提供了具体实现,可以包含变量声明和操作体。例如,定义了一个名为Vertex的持久化类型,包含了translate、scale、rotate、distance、inOrigin等多个操作,并在implementation部分给出了translate操作的具体实现。
在实际使用中,类型相关操作的引用必须由该类型的实例(接受者对象)激活,通过"."进行调用。例如,定义了变量myVertex和translationVertex,可以使用myVertex.translate(t)来执行translate操作。
总结来说,本讲义详细介绍了面向对象数据库中的对象行为,包括对象的生命周期管理、状态查询和修改,以及类型相关操作的声明与执行机制。这些知识对于理解高级数据库系统中如何管理和操作数据对象至关重要。