转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
JasmineKBMS系统的实现         ★★★★

JasmineKBMS系统的实现

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1115 更新时间:2009/4/22 23:21:45
""

Jasmine

""

用户查询

知识库

 

                                     

 

 

 

 

 

       (执行)                  (解释器)

   应用程序在三个阶段被翻译成C程序,这三个阶段是:查询图生成、存取方案生成和代码生成。第一个阶段,从用户查询到生成一个查询图,并且将查询图转化为根据使用用户定义的对象模型的一个更有效的查询图。第二个阶段根据查询图生成一系列关系运算和一个最优的方案,这个阶段使用规则库优化技术,最后一个阶段C代码被生成C编译器。

   (1)、查询图生成

这个阶段参照对象模型,将查询图与用户查询相关联。这个查询图是一个对象模型的子图,这个对象模型注解有对象和条件信息。在这个阶段,包含不完整的知识访问的用户查询被转换为一个更有效的形式。在Jasmine中,用户根据具体化通用类而不是这个具体类来形成一个查询。根据归类原理,用户能用条件来具体化一个非叶节点类,如果给定的条件与一些归类条件相匹配,那么非叶节点类被具体化成一些符合归类条件的组件成员。

(2)、访问方案生成

这个阶段以直接模式方式将查询图翻译成对象运算。翻译规则构建在查询语义学基础上。通过使用对象模型信息如统计数据、访问方法、类到关系的映射,对象运算别转化为扩展关系运算。对象表达式是不同处理的,这依赖于它是否包含有过程属性。

4、单值存取访问和对象缓冲

   与面向集合的访问一样,单值存取访问也被编译成C程序,编译时需要连接运行期支持库。

  第一次访问一个对象时,会从二级存储器取出对象到页面缓冲区。这样对象就被缓冲存放在活动对象表(AOT)中。实际上AOT是一个内部哈希表。AOT有一个OID键和入口。该入口含有一个指向内部实例结构的指针TID和几个更新标志位。一个实例的内部结构与一个元组类似,这使参考其它对象和修改变得容易。当一个事务结束时,具有更新标志的对象从AOT中转存到页面缓冲区和二级存储器。用户可以通过说明AOT大小来控制AOT中的冲突处理。为了更加有效地存储空间,对象可以从AOT中删除,但OID组和TID组仍直接从数据库中取出,这些对象先前从内存中已经丢失。我们将单值存取访问对象表达式翻译成基于AOT的访问。例如对象表达式 obj.attr变量obj具有AOT的指针。首先,检查AOT入口的更新标志位,如果标志指出这个对象已经被删除了,则发生错误。如果一个对象从内存中清除是为了进行空间的管理,那么这个对象会通过TID直接从二级存储器中取出。其它情况下系统会从由AOT指针指向的内部实例结构中取attr,对象表达式返回这个值。如果这个属性域含有一个参考对象,即另一个OID。系统通过哈希表在AOT中查找具有这个OID的对象。若没有,再通过AOT中缓冲存放的OID或TID到二级存储器中查找。这样对象表达式的值是一个指向参考对象的入口指针,它将成为attr属性的值。一般对象表达式obj.attr-1.iattr-n被递归的解释。对象变量具有一个指向AOT入口的指针,不是延迟访问的OID。由于避免了基于哈希表的搜索,因此对象存取速度得到了提高。对于基于连接的访问比如超媒体应用,这一点很好。

    一般来说,缓冲区和对象存取模式直接相关。页面缓冲具有适合相同类的不同实例存取的结构。AOT,对象缓冲区具有适用与不同类的相关实例的存取结构。高级应用例如CAD具有这两种模式。就就需要双缓冲策略,包括页面缓冲和对象缓冲,而不仅仅是一个单一缓冲策略,它会包含不必要的对象,也会降低内存利用率。然而,双缓冲方法使得同样一个对象以不同的格式同时出现在不同的缓冲区中,因此我们不得不维护说明同一个实体的两个对象的内部一致性。

5、解释器

   系统为程序的高效运行提供了编译器,为应用的快速开发和处理特殊的查询提供了解释器。编译器将查询语句翻译成扩展的关系操作符。解释器将查询语句翻译为扩展的操作符并执行。考虑到实用性,解释器只能执行面向集合的存取,查询的结果送到由一个编译好的程序引用的集合变量。用户可以在一个集成的环境里使用解释器和编译好的程序。由于程序存在与实例中,所以他们可以在一个面向查询中交互访问。程序可以在动态编译之后相互激活,编译器和解释器共享代码,解释器 编译解析器分析输入的查询语句。解释器使用运行时支持库提供的功能产生中间代码。

   

     本文叙述了一个知识库管理系统KBMS---Jasmine,重点谈论了对象管理子系统。

 

上一页  [1] [2] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台