次の方法で共有


Visual Studio のデータベース機能のアーキテクチャの概要

Visual Studio でデータベース開発者向けに用意されているツールおよび機能の多くは、アプリケーション開発チームの他のメンバー向けに用意されているツールおよび機能と同じです。 たとえば、ソフトウェア開発者がソース コードに対して使用しているバージョン管理システムおよびその他のライフ サイクル ツールと同じものを、データベースに対して使用できます。 Visual Studio のアーキテクチャは Visual Studio Team Foundation Server と緊密に統合されているため、データベース開発のプロセスを簡単に管理でき、また、アプリケーションの他の要素を開発するメンバーとの連携を強化できます。

Visual Studio でのデータベース開発支援機能の詳細については、「データベースの変更の管理」を参照してください。

Visual Studio の統合

Visual Studio のコア アーキテクチャは Visual Studio Team Foundation Server と緊密に統合されているうえ、インターフェイスもコンポーネント間で一貫しています。 データベース プロジェクト、サーバー プロジェクト、およびデータ層アプリケーション プロジェクトを操作する方法の多くは、Visual Studio でその他の種類のプロジェクトを操作する方法と同じです。 [新しいプロジェクト] ダイアログ ボックスおよび [プロジェクト アイテムの追加] ダイアログ ボックスには、データベース固有のテンプレートが表示されます。 さらに、データベース配置のために特別に設計されたアクション (ビルドや配置など) を実行したり、設定 (ターゲット データベース接続やデータベース照合順序など) を構成したりできます。

データベース プロジェクトは、既存の種類のプロジェクトのピアとしてソリューション エクスプローラーに表示されます。 MSBuild を使用して、これらのプロジェクトのバージョン管理、プロジェクト項目の追加および削除、ビルドを実行できます。

アーキテクチャの構成

Visual Studio には、次のアーキテクチャ領域があります。

  • データベース プロジェクト

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

各データベース プロジェクトは、データベースのオフライン表現で、Visual Studio ソリューションの構造内にあります。 変更は、ビルドしてデータベース プロジェクトに配置し、Microsoft SQL Server 2005 または Microsoft SQL Server 2008 のアクティブ インスタンスに反映させる必要があります。

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

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

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

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

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

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

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

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

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

  • ビルドの検証
    この機能には、データベース プロジェクト内のオブジェクトの構造と関係の検証、配置前スクリプトおよび配置後スクリプトの構文の検証、およびそれらの結果のレポートが含まれます。

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

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

  • データベース スキーマの比較
    2 つのデータベース スキーマを比較して、それらがデータベース プロジェクトの現在のバージョンに存在するのか、データベース プロジェクトのビルド時に作成されたコンパイル済みの .dbschema ファイルの以前のバージョンに由来するのか、1 つ以上のアクティブなデータベース上に存在するのかを識別する機能が用意されています。 また、ターゲット データベースの構造をソース データベースの構造に一致させる場合に必要となるスクリプトを生成することもできます。 スキーマの比較は、Visual Studio Premium および Visual Studio Ultimate でのみ使用できます。

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

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

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

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

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

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

参照

処理手順

チュートリアル : 隔離されたデータベース開発環境の作成

チュートリアル : 分離開発環境のベースライン設定

チュートリアル: 分離開発環境でデータベースの開発を繰り返し実行する

概念

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

Visual Studio のデータベース機能の拡張