博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Unix爱好者家园

卓越源代码  
   sdccf.cublog.cn
关于作者  
姓名:sdccf
职业:chinapost
年龄:36
位置:sd
个性介绍:

我的分类  




DB2 9 应用开发(733 考试)认证指南,第 8 部分: 高级编程(6)

用户定义的数据类型、并发性考虑因素等等

developerWorks



分布式工作单元和联邦数据库环境

什么是分布式工作单元?

远程工作单元 (remote unit of work,RUOW)允许用户或程序为工作单元更新或读取在远程位置上的数据。在一个工作单元里只能访问一个数据库。RUOW 的特点是:

  • 每个工作单元支持多个请求(SQL 语句)。
  • 每个工作单元支持多个游标。
  • 每个工作单元只能访问一个数据库。
  • 应用程序要么提交工作单元,要么回滚工作单元。在某些错误情况下,数据库服务器可能回滚工作单元。

分布式工作单元 (distributed unit of work,DUOW)也称为多站点更新(multi-site update),它在一个工作单元里使用多个数据库。DUOW 的特点是:

  • 每个工作单元更新多个数据库。
  • 应用程序控制工作的分布,并发起提交。
  • 每个工作单元可能有多个请求。
  • 在多个数据库服务器之间协调提交。




回页首


如何使用 DUOW?

分布式工作单元在查询和应用程序中提供了许多可能性。首先,可以查询多个数据库,而不限于一个数据库。实际上,不只可以访问 DB2 数据库。通过 Websphere Federated Server 使用联邦环境,可以用单一查询同时访问和更新 DB2、Informix 和 Oracle 表。

联邦环境包含对一个或多个远程数据源及其特征的引用。“昵称(nickname)” 是数据对象在联邦系统中的本地别名。这个昵称用来引用特定数据源中的对象。

我们来看一个示例,它将在 Websphere Federated Server 中创建和使用一个昵称。首先,需要创建一个称为 FARAWAYTABLE 的昵称,它引用的对象驻留在称为 ORA 的 Oracle 数据源中。这个数据源包含对象 USER1.DATATABLE1。一旦创建了昵称,就可以将它作为常规的(本地)数据库表来对待。应该注意,在执行下面代码清单中的 CREATE NICKNAME 语句之前,必须执行许多其他语句(这里未显示)来设置联邦环境;这些语句定义联邦环境中数据源的名称和位置、安全设置和其他配置参数。

CREATE NICKNAME farAwayTable FOR ora.user1.datatable1

SELECT * FROM ora.user1.datatable1 
{this will fail since you have to refer to the table by its nickname}

SELECT * FROM farAwayTable
{this will return the results from the table}

SELECT *
FROM farawaytable, dept
WHERE dept.id = farawayTable.id
{this joins the two tables together and returns the result set}

INSERT INTO farawayTable
 VALUES (SELECT * from dept)
{this inserts all the data from the dept table into the farAwayTable}

查询不必知道它所引用的对象是本地数据库的一部分,还是完全属于另一个数据服务器。即使移动了底层对象,也不必修改应用程序。这称作位置透明性(location transparency)。

图 4 说明了用于联邦的潜在的源和目标。


图 4. 联邦数据源
联邦数据源

联邦还可以用于访问非关系型的数据源,例如文本或 XML 文件。为此,必须创建一个 “包装器(wrapper)”,用来说明如何在其中的数据源上执行 SELECTUPDATEDELETEINSERT 语句。一旦创建了包装器,就可以将该数据源当作本地表来对待。科学社区已发现该技术对于处理平面文件中的 DNA 信息极其有用。





回页首


使用 DUOW

使用 DUOW 有许多优点:

  • 可以轻松地访问多个数据源。
  • 极大地减小了应用程序复杂性。
  • 向应用程序提供对多个 RDBMS 的读/写能力。

同时也有一些缺点:

  • 需要维护多个数据库。
  • 由于要与多个系统进行交互,所以错误处理更加复杂。
  • 远程系统可能挂起,导致 SQL 要花很长时间来响应。
  • 大量数据的网络传输时间可能减慢查询的速度。
  • 由于延迟而引起的远程和本地系统的锁定并发性问题可能导致问题。

DUOW 和联邦常常用于金融和制药领域,从而在一个简单的程序中协调多个数据源。通过使用 DUOW,可以编写一个 SQL 语句来返回并聚合来自多个源的数据。此外,如果修改了底层的数据源,就只需更改其昵称,而不必修改整个数据访问应用程序。

以下是一些适合使用 DUOW 的特定领域:

  • 组合来自多个数据库的报表。
  • 组合来自多个 RDBMS 的数据。
  • 将数据从一个 RDBMS 移动到另一个 RDBMS。
  • 在 SQL 语句中使用非关系型的数据源。

 发表于: 2008-05-31,修改于: 2008-05-31 23:45 已浏览545次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.3821

京ICP证041476号