MS SQL SERVER2005 XML 最佳实践,MS SQL SERVER2005 XML 最佳实践
【 tulaoshi.com - SQLServer 】
SQL Server 2005 为 XML 数据处理提供了广泛支持。可以将 XML 值以本机方式存储在 xml 数据类型列中,后者可以根据 XML 架构的集合进行类型化,也可以保持非类型化状态。可以对 XML 列创建索引。此外,通过使用 XQuery 和 XML DML 可支持精细的数据操作。XML DML 是针对数据修改的扩展。SQL Server 2000 和 SQLXML Web 版本提供了强大的 XML 数据管理功能。这些功能着重于关系数据和 XML 数据之间的映射。可以使用带批注的 XSD (AXSD) 来定义关系数据的 XML 视图,以提供以 XML 为中心的方法,该方法支持对 XML 数据执行大容量数据加载、查询和更新功能。Transact-SQL 扩展提供了一个以 SQL 为中心的方法,以便使用 FOR XML 将关系查询结果映射到 XML,以及使用 OPENXML 从 XML 生成关系视图。这些支持已在 SQL Server 2005 中进行了扩展。结合新添加的本机 XML 支持,SQL Server 2005 提供了一个强大的平台,以针对半结构化和非结构化数据管理开发功能丰富的应用程序。
本主题提供了 SQL Server 2005 中的 XML 数据建模和使用准则,包含下列两个部分:
数据建模
可以通过使用本机 xml 数据类型和拆分到表中的 XML,以多种方式在 SQL Server 2005 中存储 XML 数据。本主题提供了为对 XML 数据进行建模做出适当选择的准则。另外,还介绍了对 XML 数据创建索引、属性提升和 XML 实例的类型化。
使用
本部分讨论了与使用相关的主题,例如将 XML 数据加载到服务器和查询编译中的类型推理。本部分还解释和区分了密切相关的功能,并就如何适当使用这些功能提出了建议。这些均通过示例进行了说明。
数据建模
本部分概述了应使用 SQL Server 2005 中的 XML 功能的理由,另外还提供了在本机 XML 存储和 XML 视图技术之间进行选择的准则,并给出了数据建模建议。
关系或 XML 数据模型
如果您的数据是高度结构化的,具有已知架构,则对于数据存储,关系模型可能最适用。SQL Server 提供了您可能需要的必要功能和工具。另一方面,如果结构是半结构化或非结构化的或者未知的,则必须考虑对这类数据进行建模。
如果您需要一个与平台无关的模型,以便通过使用结构和语义标记来确保数据的可移植性,则 XML 是一个不错的选择。此外,下列情况下,适于做此选择:
您的数据为稀疏数据,或您不了解数据的结构,或数据结构将来可能会有重大变化。
您的数据体现的是包容层次结构而不是在实体间的引用,并且可能是递归数据。
您的数据本身具有顺序性。
您希望基于数据的结构查询数据或更新部分数据。
如果上述条件均不满足,则应使用关系数据模型。例如,如果数据为 XML 格式,但应用程序只是使用数据库来存储和检索数据,则只需要 [n]varchar(max) 列。将数据存储在 XML 列中还有其他好处,包括让引擎确定数据格式是否正确或有效,以及支持对 XML 数据进行精细查询和更新。
在 SQL Server 2005 中存储 XML 数据的理由
下面是一些使用 SQL Server 2005 中的本机 XML 功能而不是在文件系统中管理 XML 数据的理由:
您希望以一种高效的事务处理方式来共享、查询和修改 XML 数据。精细的数据访问对于您的应用程序而言很重要。例如,您可能需要提取 XML 文档中的某些部分,或者您可能需要插入新的部分而不是替换整个文档。
您有关系数据和 XML 数据,希望在应用程序中进行关系数据和 XML 数据之间的互操作。
您需要语言支持,以便对于跨域应用程序可以进行查询和数据修改。
您希望服务器能够保证数据格式正确,并能够视情况根据 XML 架构来验证您的数据。
您希望对 XML 数据创建索引以实现高效的查询处理和良好的可伸缩性,并使用一流查询优化器。
您希望对 XML 数据进行 SOAP、ADO.NET 和 OLE DB 访问。
您希望使用数据库服务器的管理功能来管理 XML 数据。例如,这可能是备份、恢复和复制。
如果上述条件均不满足,最好将数据存储为非 XML 大型对象类型,如 [n]varchar(max) 或 varbinary(max)。
XML 存储选项
SQL Server 2005 中的 XML 存储选项包括:
采用 xml 数据类型的本机存储
数据以保留数据的 XML 内容的内部表示形式进行存储,XML 内容包括包容层次结构、文档顺序、元素和属性值等。具体来说,就是保留 XML 数据的 InfoSet 内容。有关 InfoSet 的详细信息,请访问 http://www.w3.org/TR/xml-infoset。InfoSet 内容并不是文本 XML 的精确副本,因为其中未保留下列信息:无关紧要的空格、属性顺序、命名空间前缀和 XML 声明。
对于类型化的 xml 数据类型(即绑定到 XML 架构的 xml 数据类型),后架构验证 InfoSet (PSVI) 将类型信息添加到 InfoSet,并以内部表示形式进行编码。这会显著提高分析速度。有关详细信息,请参阅 ht
来源:http://www.tulaoshi.com/n/20160129/1496371.html
看过《MS SQL SERVER2005 XML 最佳实践》的人还看了以下文章 更多>>