Database Edition 的结构概述

更新:2007 年 11 月

Visual Studio Team System Database Edition 为数据库开发人员提供了许多工具、特性和功能,它们与 Visual Studio Team System 为应用程序开发团队内的其他成员提供的工具、特性和功能相同。例如,软件开发人员用于源代码的版本控制系统及其他生命周期工具同样可用于您的数据库。由于 Database Edition 的体系结构与 Visual Studio Team System 紧密集成,因此您可以更加轻松地管理数据库开发过程,同时增强与开发应用程序其他方面的人员的协调。

有关 Database Edition 功能的更多信息,请参见管理数据库更改

Visual Studio 集成

不仅 Team Edition for Database Professionals 的核心体系结构与 Visual Studio Team System 的其余部分紧密集成,而且不同组件的界面也保持一致。在 Visual Studio 中,您处理数据库项目的方式在诸多方面与处理其他类型项目的方式相同。特定于数据库的模板显示在“新建项目”和“添加项目项”对话框中。此外,您可以执行专为数据库开发而设计的操作(例如生成和部署)以及配置专为数据库开发而设计设置(例如目标数据库连接和数据库排序规则)。

数据库项目在“解决方案资源管理器”中显示为现有项目类型的同级项。您可以将这些项目置于版本控制下,添加和移除项目项,以及使用 MSBuild 生成这些数据库项目。

体系结构组成

Database Edition 的体系结构包含以下方面:

  • 数据库项目

  • 设计时验证数据库

  • 数据库生命周期基础结构

每个数据库项目都是某个数据库的脱机表示形式,并存在于一个 Visual Studio 解决方案的结构中。对数据库项目的更改必须通过生成和部署才能在 Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 的活动实例中生效。

设计数据库是 SQL Server 的一个本地实例,用于执行数据库项目的设计时验证。

数据库生命周期基础结构

数据库生命周期基础结构在数据库项目与设计数据库之间提供了多种服务。此基础结构包含任何数据库项目都必需的基础功能。这些功能统称为数据库项目基础。在此基础上生成的功能称为数据库项目功能。

数据库项目基础

数据库项目基础包含以下核心功能:

  • 项目和项目项分析
    数据库项目基础将对数据库项目和诸如表、视图和存储过程等数据库项目项进行分析。通过执行上述分析,它将从组成数据库项目的脚本文件中提取出关于数据库对象的信息。例如,当您从现有数据库脚本导入数据库对象时,系统将执行此功能。数据库项目由 Transact-SQL (T-SQL) 脚本的集合组成。数据库项目系统会对这些脚本进行解释,以便您可以将它们作为逻辑架构对象与之交互。

  • 导入数据库架构
    通过使用导入数据库架构这一功能,可以将现有数据库放入到 Database Edition 中,并将其置于版本控制下。即使处于数据库在版本控制下管理的环境中,活动数据库服务器上仍然会发生更改而导致不得不将更改体现到数据库项目中。此时,您可以使用架构比较功能将更改从数据库服务器导入到正在进行开发的数据库项目中。

  • 跟踪数据库对象之间的依赖项
    数据库项目系统会自动跟踪数据库对象之间的依赖项。通过跟踪对象之间的依赖项,您可以确保生成和部署正确的对象。如果您对产品引入了一项会导致工作中断的更改,在首次保存该更改时便会发现它是一项会导致工作中断的更改。通常,在试图生成、部署或运行数据库单元测试时才会发现会导致工作中断的更改。数据库重构使用这些依赖项确定所需的更改,数据生成可以将依赖关系作为数据生成计划的组成部分显示给您。

  • 数据库重构
    数据库重构确定数据库对象之间的依赖项,并使用该信息在整个数据库以及单元测试项目之间准确传播更改。

  • 为新的部署和现有部署创建生成脚本
    生成脚本用于创建数据库或更新现有数据库以与数据库项目中的架构相匹配。生成脚本由预先部署脚本、数据库对象创建脚本和后期部署脚本组成。如果您在生成时部署到现有数据库,会将数据库项目与目标数据库当前的架构进行比较。然后生成一个更新脚本,该脚本混合使用 ALTER、CREATE 和 DROP 语句来更新目标数据库。

  • 验证生成
    此功能包含对预先部署脚本、创建或更新数据库对象的脚本以及后期部署脚本的生成步骤的验证,并将以上验证的结果报告给您。

数据库项目功能

除了为数据库项目提供上述的核心服务之外,还在数据库项目基础之上构建了其他功能。这些功能包括:

  • 比较数据库架构
    此功能用于比较两个数据库的架构,无论它们位于数据库项目的当前版本中、存储在版本控制中的早期版本中还是一个或多个活动数据库中。您还可以生成用于使目标数据库与源数据库匹配所需的脚本。

  • 比较数据库数据
    此功能用于比较两个数据库中的数据,前提是活动数据库的架构相匹配。您还可以生成用于使目标数据库与源数据库匹配所需的脚本。

  • 数据库单元测试
    自动为存储过程或函数生成单元测试,并支持手动创建由任何有效 Transact-SQL 组成的单元测试。通过使用此服务,您可以验证在其他位置引入的更改不会导致您的工作中断。作为单元测试的一部分,您可以自动生成和部署数据库,并生成可重复的测试数据以建立一致的起始状态。此服务还包含一个公共 API,可以用于编写自定义断言来为单元测试添加可重用的验证逻辑。

  • 生成数据
    此功能用于使用真实测试数据填充数据库,由于可能包含机密信息,所生成的测试数据并非完全是生产数据的副本。还可以创建自定义数据生成器。此服务还包含一个公共 API,用于编写自定义数据生成器以与 CLR 数据类型、用户定义的类型及用户定义的数据类型配合使用,或将自定义数据生成算法用于内置类型。

  • 创作和执行数据库脚本
    提供一个 Transact-SQL 编辑器,您可以在其中创建、分析和执行数据库脚本,使用方法与查询分析器或 SQL Server Management Studio 的使用方法类似。此编辑器同样用于编辑数据库项目中的脚本。由于是同一个编辑器,所以无论您处理脱机数据库项目还是对活动的数据库服务器直接执行脚本,编辑器的用户界面都是一致的

命令行支持

某些定期执行的操作需要能够作为自动化过程的一部分运行。为支持此方案,您可以从命令行生成、部署数据库项目以及运行单元测试,其中可以包括生成代表性、可预测的测试数据。

请参见

概念

管理数据库更改

Database Edition 中的扩展性

Database Edition 术语概述

如何实现 - Database Edition

Database Edition 术语概述

其他资源

介绍性演练