返回首页
当前位置: 主页 > 航空资料 > 计算机 >

XML高级编程上(117)

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin 点击:
  
354使用XML 高级编程
下载
下载
第10章XML和数据库
X M L的未来与数据库技术是密不可分的。从存储在不同介质上的数据中自动生成X M L文档
的能力,从不同的数据存储交换信息的能力,将成为未来面向信息的I n t e r n e t的主要特点。动态
X M L文档将会增加,变得与X M L一样,被用于装载任何东西,从天气报告到货物定单,电影回
放到体育结果,从图像到声音。
这一章的目的是看一下数据库与X M L的关系。我们将从两方面来做这件事情。首先我们将
介绍如何使用数据库存储类似X M L的数据,然后我们将描述如何将X M L作为一种不同数据库之
间数据交换的方法。对这两个方法的界定不是勾勒得很清楚,但是第一个与存储X M L数据的新
系统的关系更加密切,第二个与遗留的系统关系更紧密—现有的数据库需要与遗留的系统交
换数据。最后我们将介绍一个例子。所以,这一章可以分成三个部分:
• 存储X M L。
• 将X M L用于交换。
• 图书目录的例子。
在存储的部分,我们将看几个用于存储X M L的方法,并且考查一下为什么一个简单的文件
系统对我们想要建立精细和复杂系统不是很适合。我们将看到文件系统的局限是什么,为什么
我们需要超越X M L文档,并且哪一种类型的软件包将是最适合存储X M L。
在我们考虑用来保存X M L的理想的软件时,可能意识到不是每件事情都是必需的(要看你
想要做些什么),但是我们至少可以建立起一套需求和想法,这样在评测产品时做到心中有数。
在交换部分,我们将看一下数据是如何在不同的存储服务器间通信的,通过使用X M L作为
一种中间格式。尽管使用X M L作为一种从一个数据库取出数据放入另一个数据库的方法是意义
重大的一步—例如,从关系型数据库管理系统到一个面向对象数据库管理系统,或者从O r a c l e
到S y b a s e—我们会看到对于X M L的结构仍然要加以考虑。
了解了存储X M L的理想方法,以及从现有数据提取信息作为X M L的最好方法之后,我们将
通过图书目录例子举例说明我们的一些想法。
那么,让我们首先看看围绕X M L存储的一些问题。
10.1 存储XML
让我们从X M L的存储开始,看看有哪些可用的方法。我们首先从总体上讨论存储的有关问
题,然后继续阐述为什么要使用数据库而不使用磁盘文件。
10.1.1 持续性问题
为了保证到目前为止你在本书中遇到的X M L文档能够被再次使用,它们应该保存在某种存
储介质上—通常是文件系统。将信息保存起来留作以后使用称为持续性,而且它也是指在一
个程序结束运行后使信息仍然可用的操作。例如,你可能很高兴地用一个字处理软件来写一封
信,但是如果你关掉计算机或退出程序,就会丢掉信。持续化信件意味着将其保存为以后使用。
到目前为止,在这本书中我们对X M L的经验是可以使用普通的文件系统中的文档保持X M L
的持续性。保存这些文档的方式与存储字处理文档或电子表格的方法相同—都保存为文件。
因为它们是X M L,你可以使用众多专门的X M L编辑工具中的某一个来编辑它们。然而,不像
Microsoft Wo r d文档或声音文件,X M L也是普通的文本文件,以你也可以使用文本编辑器来编辑
它们。
这种技术有许多合适的应用。仍然以我们的图书目录为例,可以看到如果只有少量的出版
商,而且每个出版商仅拥有几本书和几位作者,那么文档不会很大。同样,如果文档中的信息
只被一、两个人使用—例如C D中收集的X M L文件,我相信你可能已经将它们扔在你的P C中
的某个地方了—那么,单个文件已经就足够了。
1. 文件系统的限制
在某些方面,基于文件的方法很好。然而,对于关键性的应用,这个文件系统的方法就不
是太好了。我们将在这里小节一下这种方法的一些局限并且建立一个我们想实现的列表。
(1) 大小
第一个局限是文档大小。如果在我们的这本书的目录列表中有2 0个出版商,每一个出版商
有2 0 0本书和5 0个作者会怎么样?我们所传递的X M L文件将变得非常不实用。不仅仅是因为它太
大了,而且如果你想维护文档的不同部分也变得难于操纵。
• 我们想处理巨大的文档,并且想检查同其他部分分离的部分文档。
(2) 并发性
正如我们可能想在文档不同部分间快速和简单地移动一样,我们也可能想让不同的人在不
同的时间更新不同的部分。也许图书的编辑负责增加书名目和作者,经理考虑出版商。在一个
文件系统中只有一个单一文档,在一个时间只能有一个人可以处理信息。如果一个编辑需要增
加新的书目,同时会计想更新作者的信息,一个人不得不等着其他人完成。的确,也可能两个
人试图在同一时刻编辑同一文件,并且其中一个人所作的改变会完全丢失。
• 我们想允许许多人在同一时刻处理同一文档。
(3) 做这项工作的合适工具
也可能是这种情况,一个X M L编辑器可能不是处理一个文档不同部分的合适工具。我们可
能让会计部门来维护作者信息,而不被文档的其他部分所牵扯,对于他们来说所选择的工具可
能是一个简单的表格。这个表格可能提供其他特性,如查找电话号码或电话拨号。另一方面,
维护书的列表工具可能需要包含书自身的草稿文档。
• 我们想使用最适合处理数据的工具来维护文档的各个部分。
(4) 版本
一个经常考虑的重要问题是控制同一文档的不同版本。
• 我们想能够记录一个文档不同版本的轨迹。
(5) 安全
356使用XML 高级编程
下载
使用不同的工具处理文档的不同部分,并且允许不同的用户在同一时刻处理文档的不同部
分引发出安全问题。
• 我们想控制一个文档的某一部分只有某人可以查看或修改。
(6) 综合性:集中和重复
也存在对数据的集中和重复的问题。会计部门可能已经有一个作者的数据库,用于处理皇
室的支付。我们需要重复所有这些信息吗,当需要在目录中生成作者列表时,或者我们应该能
 
中国航空网 www.aero.cn
民航翻译 www.aviation.cn
本文链接地址:XML高级编程上(117)
 
------分隔线----------------------------