xml数据库:XML和数据库(2)来源: 发布时间:星期三, 2008年9月24日 浏览:50次 评论:0
值的列,新建一个子元素。
例如,下面的过程(经简化)说明了如何从一个DTD生成一个关系型结构: 对于每种包含元素或者混合内容的元素类型,新建一个表格和一个主键字段。 对于每个包含混合内容的元素类型,创建一个单独的表格,其中存放未析数据,通过父元素主键链接到父表格。 对于此元素类型的每个单值属性和只包含未析数据内容、只出现一次的子元素,在该表格中创建一个字段。如果元素类型或者属性是可选的,可以让设置该字段为空值。 对于每个多值属性和多次出现的子元素,创建一个单独的表格来存储数值,并且通过父元素主键链接到父表格。 对每个有元素或者混合内容的子元素,通过父元素主键将父元素表格和子元素表格相连接。 下面的过程(经简化)说明了如何从一个关系型的结构生成一个DTD: 对于每个表格,新建一个元素; 对于表格中的每个字段,新建一个属性或者是只包含未析数据的子元素; 对于每个表格字段中提供主键的主键/外键的关系都新建一个子元素。 不幸的是,这些过程还存在着一些缺陷。例如,DTD中没有方法预先准确地规定数据类型或者字段长度。 因为任何的预先定义(例如通过读取一个示例文档)在读取其它“类型”的文档或者其他文档中包含有超过字长内容的文档时就会产生错误。(长久之策是使用XML schema文档的数据类型。)简单来说,当从一关系型结构生成DTD时,是没有办法预先判断子元素“应该”出现的顺序或者字段(如数据库内部的行标识)是否该进行完全转换。 在以上两种情况中都可能产生命名的冲突。 尽管有这样那样的缺陷,但是这些方法仍然能够很好地奠定在关系型结构和DTD之间互相转换的起点。 0
相关文章
读者评论
发表评论 |