Database Edition のアーキテクチャの概要

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、または Microsoft SQL Server 2008 のアクティブ インスタンスに変更を反映するには、変更をビルドしてデータベース プロジェクトに配置する必要があります。

データベース ライフ サイクル インフラストラクチャ

データベース ライフ サイクル インフラストラクチャでは、データベース プロジェクトとデータベースの論理表現 (モデル) との間にさまざまなサービスが用意されています。 このインフラストラクチャには、データベース プロジェクトで必要な基本機能が含まれています。 これらの機能をまとめてデータベース プロジェクト基盤と呼びます。 この基盤の上に構築される機能を、データベース プロジェクト機能と呼びます。

データベース プロジェクト基盤

データベース プロジェクト基盤には、次の中心的な機能が含まれます。

  • プロジェクトとプロジェクト項目の解析
    この基盤では、データベース プロジェクト、およびテーブル、ビュー、ストアド プロシージャなどのデータベース プロジェクト項目が解析されます。 これにより、データベース オブジェクトに関する情報が、データベース プロジェクトを構成するスクリプト ファイルから抽出されます。 たとえば、既存のデータベース スクリプトからデータベース オブジェクトをインポートする場合、この機能が適用されます。 データベース プロジェクトは、Transact-SQL (T-SQL) スクリプトの集合で構成されます。 データベース プロジェクト システムは、これらのスクリプトを解釈し、論理スキーマ オブジェクトとしてそれらと対話できるようにします。

  • データベース スキーマのインポート
    データベース スキーマのインポートを使用して、既存のデータベースを Database Edition に取り込み、バージョン管理できます。 データベースがバージョン管理されている環境でも、データベース プロジェクトに取り込む必要のある変更がアクティブなデータベース サーバーで発生する場合があります。 スキーマ比較を使用すると、データベース サーバーから開発中のデータベース プロジェクトに変更をインポートできます。

  • データベース オブジェクト間の依存関係の追跡
    データベース プロジェクト システムは、データベース オブジェクト間の依存関係を自動的に追跡します。 オブジェクト間の依存関係が追跡されるので、正しいオブジェクトをビルドおよび配置できます。 互換性に影響する変更を製品に取り込んだ場合、変更を最初に保存するときに、それが互換性に影響する変更であることがわかります。 通常は、データベース単体テストをビルド、配置、または実行するときに、互換性に影響する変更が検出されます。 データベース リファクタリングは、これらの依存関係を使用して必要な変更を特定します。またデータ生成では、データ生成計画の一部として依存関係を示すことができます。

  • データベース リファクタリング
    データベース リファクタリングは、データベース オブジェクト間の依存関係を識別し、その情報を使用して、データベースおよび単体テスト プロジェクト全体に変更を正確に反映させます。

  • 新規および既存の配置に対するビルド スクリプトの作成
    ビルド スクリプトは、データベースを作成するために、または既存のデータベースを更新してデータベース プロジェクトのスキーマと一致させるために使用されます。 ビルド スクリプトは、配置前スクリプト、データベース オブジェクト作成スクリプト、および配置後スクリプトで構成されます。 配置時に既存のデータベースに配置を行うと、データベース プロジェクトがターゲット データベースの現在のスキーマと比較されます。 ALTER、CREATE、および DROP の各ステートメントが混在した、ターゲット データベースを更新するための更新スクリプトが生成されます。

  • ビルドの検証
    この機能には、配置前スクリプト、データベース オブジェクトを作成または更新するスクリプト、および配置後スクリプトのビルド手順の検証、およびそれらの結果のレポートが含まれます。

データベース プロジェクトの機能

データベース プロジェクトで使用できる中心的なサービスの他に、追加の機能がデータベース プロジェクト基盤と共に構築されています。次のような機能があります。

  • データベース スキーマの比較
    2 つのデータベース スキーマを比較して、それらがデータベース プロジェクトの現在のバージョンのものか、バージョン管理に保存されているデータベース プロジェクトの以前のバージョンのものか、1 つ以上のアクティブなデータベースのものかを識別する機能が用意されています。 また、ターゲット データベースをソース データベースに一致させる場合に必要となるスクリプトを生成することもできます。

  • データベース データの比較
    一致するスキーマを持つアクティブなデータベースが 2 つある場合、それらのデータベースのデータを比較する機能を使用できます。 また、ターゲット データベースをソース データベースに一致させる場合に必要となるスクリプトを生成することもできます。

  • データベース単体テスト
    ストアド プロシージャまたは関数用の単体テストを自動的に生成できます。また、有効な Transact-SQL で構成される単体テストの手動作成がサポートされています。 このサービスを使用すると、別の場所で行った変更で機能が破損していないかどうか検証できます。 単体テストの一部として、データベースを自動的にビルドおよび配置し、再現できるテスト データを生成して、同一の開始状態を設定できます。 またこのサービスに含まれるパブリック API を使用すると、再使用できる検証ロジックを単体テストに追加するためのカスタム アサートを記述できます。

  • データの生成
    単なる実稼働データのコピーではない、現実的なテスト データをデータベースに設定する機能を使用できます (実稼働データには、機密情報が含まれている恐れがあります)。 また、カスタム データ ジェネレータを作成することもできます。 このサービスに含まれるパブリック API を使用すると、CLR データ型、ユーザー定義型、およびユーザー定義データ型で使用するカスタム データ ジェネレータを記述することも、組み込み型用のカスタム データ生成アルゴリズムを使用することもできます。

  • データベース スクリプトの作成と実行
    データベース スクリプトを作成、分析、および実行できる Transact-SQL エディタを使用できます。使用方法は、クエリ アナライザまたは SQL Server Management Studio とほぼ同じです。 このエディタは、データベース プロジェクトでスクリプトを変更するときに使用するエディタと同じです。 同じエディタなので、オフラインのデータベース プロジェクトを操作する場合も、オンラインのデータベース サーバーに対してスクリプトを直接実行する場合も、同じユーザー インターフェイスを使用できます。

コマンド ラインのサポート

定期的に実行するアクティビティの一部は、自動処理の一部として実行する必要があります。 このシナリオをサポートするために、コマンド ラインからデータベース プロジェクトをビルドし、配置し、単体テストを実行できます。コマンド ラインには、代表的でわかりやすいテスト データの生成を含めることができます。

参照

概念

データベースの変更の管理

Database Edition の機能の拡張

Database Edition の用語の概要

Database Edition の用語の概要

その他の技術情報

入門編チュートリアル

Database Edition での操作方法