正在加载图片...
·394 北京科技大学学报 1999年第4期 R length Classname class byte code 属性域 01 反指针域 … 正指针 02 图2对象虚拟空间管理图 classname表存放类名,class byte code表存 Teacher Student 放类的字节码O1和O2是对象,RV表存放实地 RV 址与虚拟地址的对照. 在Javastore之中对象中的引用是按实地址 (Javastore库中的地址)存放的,同时为了保正引 VV表I Associate Course 用完整性在对象的最后还有引用者对象表(反 VV RV 指针表).为了能在虚存之中引用正确的对象, 建立实地址和虚地址转换表RV表,访问类是 通过虚拟地址进行的,当需要访问一个引用对 VV表2 象时,通过RV表得到虚地址来访问对象.例如 Associate() 在图2中当O2引用01时,对象中的引用地址 是O1的实地址,通过RV表找到O1的虚拟地 址就可以访问对象O1了, 当需要插入一个对象时,先查找类名表和 图3关联集Teacher*Student*Course求值 类字节码表看是否此类已存在,若不存在则先 对象OID表,右边是与Teacher类关联的Student 将类名与字节码插入,然后在虚拟空间中分配 类对象,然后VV表1与Course表进行关联算 空间,插入对象并填写V表,同时建立反指针 子()运算生成VV表2.关联集的结果就是通过 保证引用完整性.此时V表中R为空,则访问 VV表的遍历来查询, 引用对象时按对象中的地址访问.若此类已存 当开始一个事务时,类名表,类字节表,对 在,则已存在则直接插对象,并填写RV表和反 象表,RV表被保存,事务结束时类名表,类字节 指针域.当要删除一个对象时,通过RV表找到 表,对象表被写入Javastore同时删除保留的现 对象,若反指针域都为空,则删除对象并删初类 场.如果事务中间流产则恢复现场.Javastore支 名与字节码表项,否则为保证引用完整性仅删 持事务嵌套, 除反指针. JAVA对象关系数据库的实现在client端需 对于AQL的解释最关键的是关联集的求 要JAVA反射的支持,通过JAVA反射功能来得 值,求值后的关联模式用VV表表示,图3显示 到对象的类型,属性与值,当对对象持久化时, 了求值过程, 对对象引用的对象进行遍历以使可达的都持久 图3表示了关联集Teacher*Student*Course 化,然后调用持久API写入Javastore之中.持久 的求值过程,首先由Teacher类的RV表与Stu~ API主要有openStore打开仓库,createStore创建 dent类的RV表进行关联算子()运算生成VV 仓库,addObject加入对象,exectuteAQL执行 表l,其中左边是与Student类关联的Teacher类 AQL语句,closeStore关闭仓库,deleteStore删除北 京 科 技 大 学 学 报 年 第 期 日 厂 酗 一、 日 属性域 反指针域 口 , 正指针 - 图 对象虚拟空间管理图 表存 放类名 , 表存 放类 的字 节 码 和 是 对 象 , 表 存放 实地 址 与虚拟地址 的对 照 在 之 中对象 中的引用 是 按 实地址 库 中的地址 存放 的 , 同时 为 了保 正 引 用 完整性在对象 的最 后 还有 引用者对 象表 反 指针 表 为 了能在虚存 之 中 引用 正确 的对象 , 建立 实地 址和 虚地址 转换表 表 访 问类 是 通过虚拟 地址进行 的 , 当需要访 问一个 引用 对 象 时 , 通过 表 得 到虚地 址来访 问对象 例 如 在 图 中 当 引用 时 , 对象 中 的引用 地址 是 的 实地址 , 通 过 表 找到 的虚 拟 地 址 就 可 以访 问对象 了 当需 要插 入 一 个对 象 时 , 先 查 找类名 表和 类字节码 表看 是 否 此类 己存 在 , 若 不 存在则 先 将类名 与字 节码插入 , 然 后 在 虚拟 空 间 中分 配 空 间 , 插入 对象 并 填 写 表 , 同 时建立 反 指 针 保证 引用 完整性 此 时 表 中 为空 , 则访 问 引用 对象 时按对象 中的地址 访 问 若 此类 已存 在 , 则 已 存在 则 直 接插对象 , 并 填 写 表 和 反 指针 域 当要 删 除一 个对 象 时 , 通 过 表 找到 对象 , 若反 指针域 都为 空 , 则删 除对 象 并删 初 类 名 与字节 码 表 项 , 否 则 为保证 引用 完整 性仅 删 除反 指针 对 于 的解 释 最 关键 的 是 关联 集 的 求 值 , 求值后 的关联模 式用 表 表 示 , 图 显 示 了求 值过 程 图 表 示 了关联集 的求值过 程 首先 由 类 的 表 与 类 的 表 进行 关联 算子 运算生 成 表 , 其 中左边 是 与 类 关 联 的 类 圈 关联集 求值 对 象 表 , 右边是 与 类关联 的 类对象 , 然后 表 与 表进行 关联算 子 运算生 成 表 关联集 的结果就是通过 表 的遍历 来查询 当开 始一 个事 务时 , 类名表 , 类字节 表 , 对 象表 , 表被保存 , 事务结束 时类名 表 , 类字节 表 , 对象表被写入 同时删 除保 留的现 场 如 果 事务中间流产则恢复现场 支 持事务嵌套 对象关系数据库 的实现在 端需 要 反 射 的支持 通 过 反射 功 能来得 到对象 的类型 , 属性与值 , 当对对象持久化 时 , 对 对象引用 的对象进行遍历 以使可达 的都持久 化 , 然后 调用 持久 妙 写入 之 中 持久 主 要 有 打 开 仓 库 , 创 建 仓 库 , 加 入对 象 , 执行 语 句 , 关 闭仓 库 , 删 除
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有