|
登录注册 |
☦ 上海交通大学论坛 > 数据库 > 浏览当前帖子 | 手机版 关闭左侧栏 |
基于XML的数据库总体分析[2] |
【返回本版】 【发表帖子】 【回复帖子】 | 浏览量 4322 回帖数 0 |
caoyin 等级 ☆ 楼主 发表于 2011/7/11 18:14:12 编 辑 |
||
为了存储或提取数据,你可以使用数据库和中间件,或者你可以使用XML服务器, 或者是基于XML的Web服务器。为了存储文档,你需要一个内容管理系统或者是可 持久化的DOM实现。可以在数据库或者是XML文档中发现大量基于数据为中心的文 档。这样我们就需要工具把数据从数据库转化成XML文档,或者把一个XML文档转 换到数据库中。同时需要注意的是,当把数据存储到数据库中的时候,需要抛弃 一个文档的很多信息,比如它的名称和DTD,它的物理结构,比如实体定义和使 用,一个节点下元素的位置排列,二进制数据的存储方式等等。同样,当从数据 库中提取数据的时候,产生的XML文档通常不包含CDATA或者是实体使用的说明, 而且节点下元素的排列位置只和数据库中记录的顺序位置一致。实际上一个XML 文档存储到数据库中,再由该数据库生成此XML文档,这前后两个文档格式几乎 不可能完全一样。 为了在数据库和XML文档之间传递数据,必须在文档结构和数据库结构之间 建立映射,这种映射可以有两个分类:模板驱动和模型驱动。 1.基于模板驱动的映射:需要在一个模板中嵌入命令,并用数据传输中间 件进行处理。比如,考虑下面的模板: <?xml version="1.0"?> <FlightInfo> <Intro>The following flights have available seats:</Intro> <SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights </SelectStmt> <Conclude>We hope one of these meets your needs</Conclude> </FlightInfo> 注意其中嵌入了一个SELECT语句。当用数据传输中间件进行处理的时候,每 一个SELECT语句都会被它的结果所代替,用XML格式化形式表现为: <?xml version="1.0"?> <FlightInfo> <Intro>The following flights have available seats:</Intro> <Flights> <Row> <Airline>ACME</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, 1998 13:43</Depart> <Arrive>Dec 13, 1998 01:21</Arrive> </Row> ... </Flights> <Conclude>We hope one of these meets your needs</Conclude> </FlightInfo> 基于模板驱动的映射可以是相当灵活的,比如,一些产品允许你把结果集放 到XML文档的任何位置,同时可以对SELECT语句设置参数,并且可以使用for循环 语句和if条件语句等。值得注意的是,当前基于模板驱动的映射只能应用于在关 系数据库和XML文档之间传递数据。 基于模型驱动的映射:也就是说把数据从数据库传送到XML文档是用一个 具体的模型实现的,这样,XSL可以被结合到基于模型映射的产品上。在XML文档 中,两种模型是很常见的:表格模型(table model)和数据专用对象模型 (data-specific object model)。 To be continued. |
1 |
论坛帮助 会员认证删帖申请 联系我们 |