|
登录注册 |
☦ 上海交通大学论坛 > 数据库 > 浏览当前帖子 | 手机版 关闭左侧栏 |
基于XML的数据库总体分析[3] |
【返回本版】 【发表帖子】 【回复帖子】 | 浏览量 4062 回帖数 0 |
股约 等级 ★ 楼主 发表于 2011/7/10 2:46:20 编 辑 |
||
2 表格模型:许多中间件软件包用表格模型在XML文档和关系数据库之间传递 数据。它把XML文档表示为一个单一的表格或者是表格的集合。这样,一个XML 文档的结构可以用如下的形式表示: <database> <table> <row> <column1>...</column1> <column2>...</column2> ... </row> ... </table> ... </database> 这里关键字"talbe"在把数据从数据库传递到XML文档的时候,表示一个 单一的结果集,把数据从XML文档传递到数据库的时候,表示表示一个单一的 表格或者视图。但是,当结果集合不只一个的时候,或者当XML文档包括多个 复杂嵌套的时候,这种传递方式就不能适应了。 2 数据专用的对象模型:把一个XML文档表示为由数据对象构成的树,每 一个元素类型和对象相对应。主要在面向对象和层次数据库中使用,通过传 统的关系-对象模型也可以映射到关系数据库中。注意这种模型并不是文档对 象模型(DOM)。比如,销售订单文档可以被看成一个对象树,其中包括五个 类:Orders, SalesOrder, Customer, Line, 和Part。如下所示: 当把一个XML文档看成是一个以数据为中心的对象树的时候,元素不一定 和对象相对应,比如,一个元素只包含PCDATA,它能够被当成一个属性,它 包括一个单一的,标量值。 实际上在XML和数据库之间进行数据转化的时候,需要考虑两个过程:一 个是从数据库模式中产生DTD,另外一个是根据DTD生成数据库模式 从一个DTD中生成一个关系模式的步骤如下: 1. 对每一个元素,产生一个表和一个主键列。 2. 对每一个有混合内容的元素,产生一个独立的表格,用来存储PCDATA, 并通过父表的主键和父表相联。 3. 对元素类型中的每一个单一值的属性,对具有只有PCDATA内容的子元 素(该子元素按顺序出现),产生一个单独的列,如果子元素类型或者值是 可以选择的话,该列就应该可以允许为NULL类型。 4. 对有多个值的属性和可以出现多次的子元素(该子元素PCDATA)的话, 需要创建一个单独的表来存储这些值,并通过父表的主键和父表相联。 5. 对每一个包含元素或者混合内容的子元素来说,通过父表的主键把 父元素和子元素联接起来。 从一个关系数据库模式构建DTD步骤如下: 1. 对每一个表,创建一个元素。 2. 对表中的每一列,创建一个属性或者是一个只有PCDATA 内容的子元素。 3. 根据表中的每一主键/外键关系,创建该表元素的子元素。 |
1 |
论坛帮助 会员认证删帖申请 联系我们 |