Jasmine 系统的实现
用户 数据管理 对象管理 应用软件 知识库1、Jasmine系统的总体结构
用户
数据管理
对象管理
应用软件
知识库
Jasmine是个由数据管理子系统和对象管理子系统组成的层次结构系统。数据管理系统用来有效的存储和访问辅存上的对象。数据管理系统为嵌套关系、元组和页提供操作接口,它是关系数据库的扩展XRDB。而
对象管理系统为这个可扩展的数
据库系统提供对象模型和语言接
口,语言接口包括语言编译器、
执行期支持库、语言解释器。
我这所要介绍的是对象管理
子系统。
2、对象存储结构
在Jasmine中类与实例的存储结构
不相同,对象到关系的转换是通过系统
完成的,有关转换的信息也存储在类中。
(1)、通过利用关系来存储实例
根据元组的实例和域的属性,所有参照类自身的实例存储在关系中。多值属性存储在多值域中,这是最简单的嵌套关系的形式。另一种方法,通过分离关系实现多值属性将引起额外的开销。我们在分离关系中存储一个超类自身的实例和超类的子类的实例。如果我们实例化或释放一个类的自身的实例,我们不必到它的超类或子类中去修改任何地方,从而使我们可以有效率地修改对象。
固定长度的字符串和数字存储在固长域中,变长字符串和数字存储在变长域中。而就参考属性,我们仅将对象标志号(OID)存储在固长域中,这实现了非簇聚化的复杂对象。非簇聚化的复杂对象是CAD应用软件所需要的,在CAD应用软件中复杂对象是自底向上创建的,这样组件对象就可以被重用。当然,用户可以逻辑上对非簇聚化的复杂对象强制实行复杂对象的完整性。具体实现可以通过“after” demon 为整个对象的实例化方法来实例化各个组件对象,也可以增加”befor” demon为整体对象的销毁方法来销毁各组件对象。在属性中,作为关系对象,我们充分使用嵌套关系,将关系对象与内部嵌套关系和他们内部关系域的属性相关联。相应的,关系对象的组件对象不可能脱离他们的整体对象而存在。簇聚化复杂对象通过关系对象来实现,能逻辑上和物理上以单元形式来管理。
OID属性与一个域相关联,但这个类的属性和通用属性不被存储在实例关系中,这是为了增加空间的效率。一个OID由一个知识库ID号、一个类号和一个实例ID号组成,OID能独自地直接传递给知识库和类信息。根据用户说明,系统在队列、B树和哈希关系中选择用来存储实例。
(2)、用关系来存储类
因为class是CLASS的实例,我们将所有的classes存储在一个关系中,这样有助于有效地访问类对象。然而,类有异种结构,所以我们必须设计一个模式,用来在一个关系中有效地存储类对象。根本上,我们有类对象与一个元组(tuple)相关联。属性分类,如枚举和过程属性,这对所有类是通用的,并且属性有一组固定的侧面(facet),我们在内部关系域中在不同的内部关系和facet中存储枚举和过程属性。
3、面向集合的访问支持
面向集合访问和单值访问都被编译以早绑定并减少执行期费用,然而,一个交互式查询需要解释器来处理而不是编译器。Jasmine编译器是用一个C编译器来实现的,在Jasmine/c中写的应用程序被预编译成C 程序,产生的C 程序被编译并链接上执行期支持库。预处理被用来达到最优轻便性和C 编译器的代码优化目的。
应用软件 预编译 C 程序 C编译器和链接 执行期支持库 目标代码
预编译
C 程序
C编译器和链接
执行期支持库
目标代码
(编译)
Jasmine 目标代码 知识库
Jasmine
[1] [2] 下一页
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18