在引用关系中,要处理的问题有: 1) 一个元组可由多个元组引用。 2) 引用元组的存在性。即要引用的元组必须事先存在,而且一旦一个元组被其它元组所引用,无论该元组是否与引用它的元组在同一个数据库中,被引用的元组就不能被删除。只有不被引用的元组才能被删除。为了标明一个元组是否被其它元组所引用,最简单的方法是在元组中增加一个引用次数列。引用次数列的初始值为零,每增加一次引用,次数加一,每删除一次引用,次数减一。只有引用次数等于零的元组才可以被删除。 3) 避免循环递归引用。但是,有时元组的递归引用是难于避免的。要解决这种情况下元组的删除只能允许引用的元组可为空值。 4) 假如允许引用的元组为空值,就可以删除正在被引用的元组,但必须确保被删除元组的标识符不变,且不可再用。 XSQL支持引用属性的能力是很有限的。例如,XSQL能提取具有父子关系结构的整个复杂对象,但对于包含引用属性关系的对象,需要通过纯关系模型的联结重新构造。 |