日期:2013-02-12  浏览次数:20517 次

  关系或 XML 数据模型

  如果您的数据是高度结构化的,具有已知的架构,则关系模型可能对于数据存储最为无效。Microsoft SQL Server 提供了您可能需求的必要功用和工具。另一方面,如果结构是灵活的(半结构化和非结构化)或未知的,则必须适当地考虑如何对此类数据进行建模。

  如果您需求独立于平台的模型,以便确保使用结构化和语义标记的数据的可移植性,则 XML 是一种不错的选择。而且,如果满足下列某些属性,则它还是一种适当的选择:

  • 您的数据比较稀疏,或者您不了解数据的结构,或者数据的结构将来可能发生严重更改。

  • 您的数据表示容器层次结构(与实体中的援用绝对),并且可能是递归的。

  • 您的数据具有内在的顺序。

  • 您希望对数据进行查询,或者基于其结构更新部分数据。

  如果上述任一条件都不满足,则您应该使用关系数据模型。例如,如果您的数据是 XML 格式,但您的使用程序很少使用数据库来存储和检索数据,则 [n]varchar(max) 列就能满足您的全部需求。在 XML 列中存储数据可以带来其他好处 - 引擎将检查数据格式规范或者无效,并且支持对 XML 数据进行细粒度的查询和更新。

  在 SQL Server 2005 中存储 XML 数据的理由

  以下为一些使用 SQL Server 2005 中的原生 XML 功用而不是在文件系统中管理 XML 数据的理由:

  • 您希望使用数据库服务器的管理功用来管理 XML 数据(例如,备份、恢复和复制)。

  • 您希望以高效的方式和事务处理方式来共享、查询和修正 XML数据。细粒度的数据访问对于您的使用程序而言很重要。例如,您可能需求提取 XML 文档内部的某些节,或者您可能需求插入一个新节而不是替换整个文档。