打印本文 打印本文 关闭窗口 关闭窗口
JasmineKBMS系统的实现
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1114  更新时间:2009/4/22 23:21:45  文章录入:mintao  责任编辑:mintao
 

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编译器和链接

执行期支持库

目标代码

"" 

 

 


                           (编译)

Jasmine

目标代码

知识库

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口