MS SQL SERVER2005 XML 最好实践
2008-04-02 10:42:30来源:互联网 阅读 ()
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)。
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: SQL各种写法的效率问题
下一篇: 将SQL Server表变成txt文档
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash