新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Oracle, SQL Server与XML,XML在数据挖掘中的应用, PMML.
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - 高级XML应用『 XML 与 数据库 』 → 基于Dietz编码在关系数据库中存储和查询XML文档 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7712 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 基于Dietz编码在关系数据库中存储和查询XML文档 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Prentice2000 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:33
      积分:288
      门派:XML.ORG.CN
      注册:2005/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Prentice2000发送一个短消息 把Prentice2000加入好友 查看Prentice2000的个人资料 搜索Prentice2000在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Prentice2000的博客楼主
    发贴心情 基于Dietz编码在关系数据库中存储和查询XML文档

    我的毕业设计就是这个题目,现在已经完成了。
    我把我的设计都放在我的BLOG里了
    http://blog.sina.com.cn/u/1406570134
    欢迎大家光临

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/11 22:03:00
     
     Prentice2000 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:33
      积分:288
      门派:XML.ORG.CN
      注册:2005/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Prentice2000发送一个短消息 把Prentice2000加入好友 查看Prentice2000的个人资料 搜索Prentice2000在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Prentice2000的博客2
    发贴心情 
    在XML文档中的元素存在有父子关系,因此就需要对元素进行编码来反映这些父子关系,并将这些编码也要保存在关系表中。这里使用对元素进行Dietz编码来反映元素之间的父子关系。
        XPath 针对 XML 文档建立了一套数据模型。在该模型中,每个 XML 文档都对应一棵有序树。整棵树共包括七种类型的结点。考虑在数据库中存储元素结点,文本结点和属性结点,因此就需要在数据库建立3个关系分别存储这3种类型的结点。
    Dietz编码规则
        Dietz编码是P.F. Dietz提出的。它的编码规则是XML文档可以表示为一个树型结构,树T中的每一个结点被赋予一个先序遍历序号和后续遍历序号的二元组<pre,post>。由于树T中的一个祖先结点u在先序遍历(后序遍历)中必然出现在它的后裔结点v之前(之后),因此,结点u和v是祖先/后裔关系,当且仅当pre(u)<post(v)∩post(v)<pre(u)。因此,树T中的任意两个结点之间的祖先/后裔关系的检测(即包含检测)能够在常数时间内被计算(即两次比较计算)。对于该编码方案,pre或post均可以作为结点的惟一标识。

        一个XML文档树的先序遍历等价于它的文档顺序,即如果对文本形式的XML文档进行顺序存取,则一个元素被访问的顺序就是它们的先序遍历的序号;反之,XML文档的文本能够以先序遍历它的文档树的形式进行重构。

    产生的关系模式

    Document(DocumentID,DocumentName)

    Element(DocumentID,ElementPre,ElementPost,TagName,ParentPre,ParentPost)

    Attribute(DocumentID,AttributeID,ElementPre,ElementPost,AttributeName,AttributeValue)

    Text(DocumentID,TextID,ElementPre,ElementPost,TextContent)

        表Document存储的是数据库中保存的XML文档的文件名,该表的主键为文档标号(DocumentID)。表Element存储的是XML文档中的元素,属性ElementPre和ElementPost分别表示元素的先序和后序编码,由于XML文档中元素最多有一个父元素,因此属性ParentPre和ParentPost分别表示父元素的先序和后序编码,属性TagName代表元素的标记名称,该表的主键为DocumentID,ElementPre,ElementPost。表Attribute存储的是XML文档中属性结点,属性AttributeID表示每个XML文档中属性编号,根据XPath数据模型中对于属性结点的描述,表中还要保存该属性所从属的元素信息即需要保存元素的先序和后序编码。表Text存储的是XML文档中的文本结点,表中的属性分别表示文本编号,父元素的先序和后序编码,文本内容。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/12 20:53:00
     
     Prentice2000 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:33
      积分:288
      门派:XML.ORG.CN
      注册:2005/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Prentice2000发送一个短消息 把Prentice2000加入好友 查看Prentice2000的个人资料 搜索Prentice2000在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Prentice2000的博客3
    发贴心情 
    XPath快速定位
    对于一个XPath查询来说,除了包含关系,如祖先/后裔关系、双亲/孩子关系,还有文档位置关系,如左兄弟/右兄弟关系(preceding-sibling/following-sibling)、之前/之后关系(preceding/following)关系。
        通过对XML文档进行Dietz编码可以实现对XPath快速定位[4]。XPath查询一共有13个查询轴,其中有4个是最基本的,分别是祖先、后裔、之前、之后,对于XML文档树中任意给定的上下文结点v,4个基本轴给出了该XML文档树的一种互不相交的剖分,即XML文档树的结点集合T被剖分成由4个互不相交的结点子集以及结点v自身构成:v/ancestor∪v/descendant∪v/preceeding∪v/following∪{v}

           因此,对于每一个XPath定位步的计算实际上是计算一次集合集T的剖分,对于一个给定的上下文结点v,能够快速的确定4个基本轴的剖分。

    如下图所示,表示的是结点g的剖分情况

    g/ancestor={a,f}

    g/following={i,j,k}

    g/preceding={b,c,d,e}

    g/descendant={h}

    g/ancestor-or-self= g/ancestor∪{g}

    g/descendant-or-self= g/descendant∪{g}

    由于在关系模式Element中存储了元素的Dietz编码以及该元素父元素的DIetz编码,通过XPath快速定位的方法就可以将XPath转化为SQL
    在我的毕业设计中已经实现了在关系数据库中存储XML,将存储好的文档导出(即关系数据转化为XML),XPath转化为SQL

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/12 20:58:00
     
     Prentice2000 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:33
      积分:288
      门派:XML.ORG.CN
      注册:2005/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Prentice2000发送一个短消息 把Prentice2000加入好友 查看Prentice2000的个人资料 搜索Prentice2000在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看Prentice2000的博客4
    发贴心情 
    在我的BLOG中有详细的介绍,欢迎大家光临
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/12 20:59:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 数据库 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/30 10:15:08

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms