专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »开发平台-工具 » xml数据库:XML和数据库(2) »正文

xml数据库:XML和数据库(2)

来源: 发布时间:星期三, 2008年9月24日 浏览:50次 评论:0
值的列,新建一个子元素。
      
  例如,下面的过程(经简化)说明了如何从一个DTD生成一个关系型结构:
     
  对于每种包含元素或者混合内容的元素类型,新建一个表格和一个主键字段。 
  
  对于每个包含混合内容的元素类型,创建一个单独的表格,其中存放未析数据,通过父元素主键链接到父表格。 
  
  对于此元素类型的每个单值属性和只包含未析数据内容、只出现一次的子元素,在该表格中创建一个字段。如果元素类型或者属性是可选的,可以让设置该字段为空值。 
  
  对于每个多值属性和多次出现的子元素,创建一个单独的表格来存储数值,并且通过父元素主键链接到父表格。 
    
  对每个有元素或者混合内容的子元素,通过父元素主键将父元素表格和子元素表格相连接。 
   
  下面的过程(经简化)说明了如何从一个关系型的结构生成一个DTD:
    
  对于每个表格,新建一个元素; 
    
  对于表格中的每个字段,新建一个属性或者是只包含未析数据的子元素; 
     
  对于每个表格字段中提供主键的主键/外键的关系都新建一个子元素。 
   
  不幸的是,这些过程还存在着一些缺陷。例如,DTD中没有方法预先准确地规定数据类型或者字段长度。
  

  因为任何的预先定义(例如通过读取一个示例文档)在读取其它“类型”的文档或者其他文档中包含有超过字长内容的文档时就会产生错误。(长久之策是使用XML schema文档的数据类型。)简单来说,当从一关系型结构生成DTD时,是没有办法预先判断子元素“应该”出现的顺序或者字段(如数据库内部的行标识)是否该进行完全转换。 
  
  在以上两种情况中都可能产生命名的冲突。
     
  尽管有这样那样的缺陷,但是这些方法仍然能够很好地奠定在关系型结构和DTD之间互相转换的起点。

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: