Updategram 和 Diffgram
日期:2007年7月19日 作者: 查看:[大字体 中字体 小字体]-
企业领域中的开发工作正日益变为更加利用 Internet 的功能和互操作性。重点已经从开发传统的客户端/服务器应用程序(需要严格定义用于交换数据的数据结构和协议)转向了开发使用 XML 的 Web 应用程序。 与传统的客户端/服务器应用程序一样,Web 应用程序也通过 LAN 或 WAN 在不同的逻辑实体之间交换数据。但是,Web 应用程序使用公共 Internet 和 XML,而不使用专用连接和二进制数据格式。在需要访问和更新存储在关系数据库(如 SQLServer)中的数据方面,大多数 Web 应用程序也和客户端/服务器应用程序相似。Web 应用程序必须从 SQL Server 获取 XML 查询结果,并使用 XML 格式的数据更新 SQL Server。Microsoft 已经通过在 SQL Server 2000、XML for SQL Server 2000 (SQLXML) 和 .NET 框架中实现许多技术满足了这些要求。(有关这些技术的概述,请参阅 2002 年 4 月的“Selecting XML Technologies for Queries and Updates”,InstantDoc ID 24342。)这些技术为构建各种 Web 应用程序提供了坚实的基础。但是,经过证明,处理数据库更新总是比较困难。
Microsoft 提供了几个用来更新数据库的选项,包括 OpenXML、XML Bulk Load、updategram 和 Diffgram。我们已经在以前的专栏中研究了 OpenXML 和 XML Bulk Load;现在,该介绍 updategram 和 Diffgram 了。用来快速构建实际 Web 应用程序方案的每种技术都有很大的缺陷。在这些应用程序方案中,数据从某个 Web 应用程序进行请求、在客户端位置进行远程修改,随后返回到该 Web 应用程序,以便所做的修改可以存储在数据库中。在这些方案中,对于 Web 应用程序有三个隐含要求。第一个是对开放式更新的需求。由于客户端和服务器之间的 Internet 连接是异步的、短暂的并且有可能是不可靠的,因此 Web 应用程序需要进行开放式更新。如果没有开放式更新,则由于在超时之前仍有许多锁,应用程序和数据库性能会迅速降低。第二个要求是,客户端不需要(而且不应当预知)数据库结构。第三个要求是,客户端需要一种方法来传送对数据进行的更改(包括并发信息),以便克服多个客户端对服务器进行的竞争更新。Updategram 和 Diffgram 是相似的技术,它们都在不同程度上支持这三个要求。因此,假设您正在构建 Web 应用程序,那么应当使用哪种技术?
Updategram
updategram 是一种 XML 文档,它描述对 XML 查询结果进行的更改。结合使用 updategram 和任何 SQLXML Web 版本,可以对数据库进行开放式更新。Updategram 还支持更新数据库中与 XML 中的分层关系相对应的一个或多个表。例如,可以将嵌套在 XML 定单元素中的定单项插入到数据库的 Order 和 LineItem 表中。尽管 updategram 会尝试满足更新数据的三个要求,但是它们在以下几个方面存在缺陷。
首先,ADO、SQL Server、SQLXML 或对象模型(如 XML 文档对象模型 (DOM))不支持 updategram。这种缺陷会从三个方面降低 updategram 的有用性。第一,因为 ADO 和 DOM 不支持生成 updategram,所以您必须实现一个直接生成 updategram 语法的客户端代码。更糟糕的是,这项艰巨的任务不能在项目之间进行缩放;每当您希望生成一个 updategram 时,都必须实现该逻辑。第二,在将数据存储到数据库中之前,Web 应用程序通常需要使用业务逻辑来检验和验证数据。同样,您需要用一个对象模型来表达该业务逻辑(因为该技术使用开放式更新),以便确认在从数据库检索数据之后和尝试更新数据之前之间的这段时间内,数据未发生变化。第三,对象模型在理想情况下可使您能够以一种一致的方式来访问更新的数据和原始值。但是,您也需要实现一个代码,该代码除了执行业务逻辑和并发检查,还要解释 updategram 语法。
Updategram 还有一个缺陷,就是无法调用存储过程来执行数据库更新。因此,通过使用存储过程而实现的业务逻辑、约束和引用完整性都呈现为无用状态。
updategram 用来表达数据集更改的方式可能会造成另一个问题。这些更改是用 XML 而不是关系数据库表达的。尽管用这种方式表达所做的更改通常大有裨益(这是因为它向客户端隐藏了数据库的详细信息),但是它还可能排除某些数据,而在将所做的更改提交到数据库中之前,您可能需要这些数据来验证所做的更改或执行业务逻辑。
最后,updategram 通常的应用方式也存在缺陷。因为 updategram 最适于进行批处理,所以,如果 SQL Server 能够按照它处理 T-SQL UPDATE 语句的方式来处理 updategram 的话,updategram 则会生成最高效的结果。但是,当前的 SQLXML 实现在中间层处理 updategram,并生成由 SQL Server 执行的 SQL 语句,而不是直接处理 updategram。因此,尽管 updategram 从表面看非常适合在 Web 应用程序中更新数据,并且有可能适合一组范围较窄的情形,但是,其缺点限制了对它们的广泛应用。
- [1] [2] [3] 下一页
-
- Updategram 和 Diffgram 相关文章:
- ·Updategram 和 Diffgram
- Updategram 和 Diffgram 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·精妙SQL语句收集
- ·SQLPLUS命令的使用大全
- ·收集的host文件网站黑名单
- ·数据库连接字符串大全
- ·SQL Server 练习题
- ·SQL中CASE的用法
- ·认识VF--Visual FoxPro 漫谈
- ·什么是SQL注入法攻击
- ·一道褒贬不一的SQL考试题
- ·学习SQL语句之SQL语句大全
- ·SQL数据库高级教程:SQL UNION 和 UNION ALL
- ·SQL Server不存在或访问被拒绝 问题的解决
- ·SQLSERVER中,数据库同步的实现
- ·MS-SQL开发常用汇总和t-sql技巧集锦
- ·MySQL管理工具SQLyog最新6.1下载
- ·“SQL Server不存在或访问被拒绝”问题的解决
- ·MySQL数据库学习手册之MySQL客户工具和API
- ·学习SQL SERVER的存储过程-之一认识存储过程语法
- ·如何删除数据库中的冗余数据(翻译)
- ·数据库物理设计经验谈
特别推荐
- ·什么是SQL注入法攻击
- ·用SQL语句删除重复记录的四种方法
- ·数据库查询优化
- ·MySQL常见错误问答!
- ·MySQL从后门进企业市场
- ·精妙SQL语句收集
- ·如何在WinNT/2K/XP下启动纯DOS
- ·自己动手做一个SQL解释器
- ·SQL SERVER实用技巧
- ·动态创建MSSQL数据库表存储过程
- ·数据库的分页问题
- ·DM分区软件使用详解
- ·对ADSL接入方式铜缆可用线对率分析
- ·收集的host文件网站黑名单
- ·修复SQL Server 2000数据库之实战经验
- ·实用的存储过程之一
- ·IIS5 ISAPI Extension Back Door
- ·MySQL中文参考手册7(MySQL存取权限系统)grant设置密码password
- ·Sql server 如何得到汉字的声母
- ·数据库物理设计经验谈
