对于M:N的关系类型,XSQL只提供有限的支持能力,实际是增加了联结关系。设A和B之间是一般的M:N的引用关系,要想通过引用属性来维持不同元组之间的引用关系,必须定义连接关系RAB: Create Table A( AID: String, ADATA: …) Create Table B( BID: String, BDATA: …) Create Table RAB( RID: String, RA: Reference (A), RB: Reference (B)) 复杂对象的操作涉及到整个复杂对象及其引用的子对象: 1) 删除一个根元组,要自动地删除它的直接的和间接的子元组。假如不把引用关系作为隐含的一致性控制目标,就可以不检查引用列指向的对象(元组)是否已被删除。 2) 提取一个复杂对象,允许提取一个复杂对象的某些元组子集,如提取某些指定的属性或属性值。提取元组层次上的有限层次,或从指定的构成关系中提取某些元组。 3) 存储一个复杂对象也允许存储某些有关的子集,相同的操作规则可用于复杂对象的拷贝、移动、封锁或读一个对象到内存。假如不能提供对复杂对象的交互查询,可以使用纯关系的概念一个元组一个元组的提取数据。 从上述的描述可知,XSQL扩展关系模型的出发点是对现有的关系模型进行扩充和修改,通过增加指针和相应的操作扩展到满足工程应用中复杂对象的数据库表达。这类模型也称关系和网状混合的数据模型。对这类混合模型,关键是要实现系统的操作和查询优化,这必须要了解复杂对象的结构,以便实现有效的操作处理。 |