Share via


データ層アプリケーションの概要

データ層アプリケーション (DAC) とは、アプリケーションで使用される、テーブルやビューなどのすべての Microsoft SQL Server データベース オブジェクトおよびインスタンス オブジェクトを含むエンティティです。DAC を使用すると、データ層オブジェクトの開発、配置、および管理を個別のスクリプトやオブジェクトのセットとしてではなく、1 つのまとまりとして行うことができます。また、データ層の開発と、関連するアプリケーション コードの開発を密接に統合することが可能になります。さらに管理者は、システム リソースの使用状況をアプリケーション レベルで参照できます。DAC は、SQL Server 2008 R2 または SQL Azure に配置できます。

データ層アプリケーションの作成と配置

DAC を作成および配置するプロセスは、DAC に関連付けられているアプリケーションの実行可能ファイルを作成および配置するプロセスと連携して行われます。

  • データベース開発者は、データ層アプリケーション プロジェクトを Microsoft Visual Studio 2010 で作成します。データベース開発者はアプリケーション開発チームと協力して、アプリケーション コードが必要とするデータ層オブジェクトを設計し、オブジェクトの定義をデータ層アプリケーション プロジェクトに追加します。データベース開発者は、データベース エンジンまたは SQL Azure のインスタンスが DAC をホストするために満たす必要のある条件を指定するサーバー選択ポリシーも定義できます。

  • データ層オブジェクトをデータベース エンジンまたは SQL Azure のインスタンスに配置するため、データベース開発者は DAC プロジェクトをビルドします。DAC ビルド プロセスによって DAC パッケージが作成されます。このパッケージは、DAC 内のすべてのオブジェクトとポリシーを定義する XML ファイルです。

  • データベース開発者は、DAC パッケージを単体テストの目的で開発者に渡すか、品質保証テストの目的でテスト チームに渡します。アプリケーション開発者やテスト担当者は、DAC をデータベース エンジンのインスタンスに配置します。DAC がデータベース エンジンのインスタンスに配置されると、DAC 定義のコピーが msdb システム データベースに格納され、データベース オブジェクトを格納するためのユーザー データベースが作成されます。アプリケーションは、DAC に関連付けられているデータベースに接続します。DAC は、SQL Server 2008 R2 または SQL Azure を実行しているデータベース エンジンのインスタンスにのみ配置できます。

  • アプリケーションの開発が完了した時点で、開発チームは、そのアプリケーションを運用環境に配置するためのファイルをビルドします。アプリケーション開発者は、アプリケーション実行可能ファイルをビルドしてシステム管理者に渡し、運用アプリケーション サーバーへの配置を依頼します。データベース管理者は、DAC パッケージの最終バージョンをビルドしてデータベース管理者に渡し、運用環境で実行されているデータベース エンジンのインスタンスへの配置を依頼します。

  • 管理者は SQL Server Management Studio のデータ層アプリケーションの配置ウィザードを使用して、DAC を運用環境に配置します。管理者は決められた手順に従って、DAC に関連付けられたデータベースを監視および管理できます。一方、次に示すように DAC 自体から追加情報を入手することもできます。

    • SQL Server 2008 R2 のインストールとユーティリティ コントロール ポイントの作成を行った管理者は、Management Studio のユーティリティ エクスプローラーで追加情報を確認できます。ユーティリティ エクスプローラー[配置済みのデータ層アプリケーション] ノードには、アプリケーション レベルのリソース使用状況レポートが表示されます。このレポートにより、管理者はデータ層アプリケーションの状況を迅速に評価できます。

    • Management Studio オブジェクト エクスプローラー[データ層アプリケーション] ノードには、配置された各 DAC のプロパティが表示されます。

  • DAC をデータベース エンジンのインスタンスから削除するには、データ層アプリケーションの削除ウィザードを使用します。

ヒント

Visual Studio 2010 Service Pack 1 (SP1) には、DAC のアップグレードをサイド バイ サイドからインプレース アップグレードに変更し、DAC パッケージ ファイルの形式も変更する新しい DAC Framework 1.1 が含まれています。DAC Framework 1.1 は以前の DAC Framework 1.0 を使用して作成されたパッケージをサポートしていますが、DAC Framework 1.0 を引き続き実行しているクライアントでは、DAC Framework 1.1 を使用して作成された DAC パッケージを処理することはできません。SQL Server 2008 R2 のユーザーは、DAC Framework 1.1 Feature Pack のダウンロードを使用して DAC Framework 1.1 にアップグレードできます。

DAC の作成例の詳細については、「チュートリアル: 新しいデータ層アプリケーション プロジェクトの作成」を参照してください。

データ層アプリケーションへのオブジェクトのインポート

新しいアプリケーションで作業する場合は、DAC プロジェクト ユーザー インターフェイスを使用してデータ層オブジェクトを作成します。既存のアプリケーションのデータベース オブジェクトを使用し、データ層アプリケーション プロジェクトを作成して開発を進めるには、以下の方法があります。

  • 運用データベース管理者は、Management Studio のデータ層アプリケーションの抽出ウィザードを使用して、既存のデータベースのすべてのオブジェクトの定義を含む DAC パッケージを抽出できます。その後、データベース開発者は DAC パッケージを Visual Studio の DAC プロジェクトにインポートできます。DAC パッケージは、SQL Server 2008 R2、SQL Azure、SQL Server 2008、および SQL Server 2005 のデータベースから抽出できます。

  • データベース開発者は、データ層アプリケーション プロジェクトでオブジェクトのインポート ウィザードを使用して、オブジェクトをデータベースからインポートできます。

  • 既存のデータベースを作成するための Transact-SQL スクリプトが存在する場合、データベース開発者はそのスクリプトを DAC プロジェクトにインポートできます。

データ層アプリケーションの要素

DAC には次の要素が含まれます。

  • DAC の特性を定義するさまざまな DAC プロパティ。たとえば、各 DAC には、関連付けられているアプリケーションの名前やバージョン番号を表す、名前プロパティやバージョン プロパティがあります。

  • アプリケーションによって使用されるすべてのデータベース オブジェクトの定義。スキーマ、テーブル、ビュー、ストアド プロシージャなどが含まれます。SQL Server 2008 R2 では、すべての SQL Server オブジェクトを DAC で使用できるわけではありません。詳細については、「データ層アプリケーションでサポートされている機能」を参照してください。

  • ログインなどのインスタンス レベルのオブジェクトの定義。この定義はデータベース オブジェクトに関連付けられ、アプリケーションによって使用されます。

  • データベース エンジンのインスタンスが DAC をホストするために必要な前提条件を定義するサーバー選択ポリシー。このポリシーはサーバー選択ファセットを使用して定義され、インスタンスのエディションや既定の照合順序などの条件を評価するために使用できます。

  • データ生成計画。有効なテスト データの作成に使用されます。

  • 配置前または配置後のアクションを実装するスクリプト。

データ層アプリケーション パッケージ

DAC を配置する準備ができたら、その DAC をビルドして DAC パッケージを生成します。DAC パッケージは DAC の定義を含む XML ファイルです。DAC パッケージは、DAC を配置する際の単一ユニットです。通常、DAC パッケージのビルドは、関連付けられているアプリケーションの実行可能ファイルと関連して行われます。システム管理者が実行可能ファイルをアプリケーション層またはクライアント コンピューターに配置する時点で、データベース管理者は関連する DAC パッケージをデータベース エンジンまたは SQL Azure のインスタンスに配置します。

たとえば、開発チームが Finance という名前の 3 層アプリケーションを開発しているとします。このアプリケーションの Build 1.0.1.123 はすべての検証テストに合格し、運用環境に配置できる準備が整っています。アプリケーション開発者はバージョン 1.0.1.123 の Finance.exe ファイルを運用システム管理者に渡し、運用アプリケーション サーバーへの配置を依頼します。一方、データベース開発者はバージョン 1.0.1.123 の Finance.dacpac ファイルを運用データベース管理者に渡し、データベース エンジンの運用インスタンスへの配置を依頼します。

DAC パッケージは DAC の要素を定義する XML ファイルを含む zip ファイルです。DAC パッケージ ファイル スキーマの定義の詳細については、Microsoft SQL Server ファイル形式のドキュメントを参照してください。

データ層アプリケーション インスタンス

DAC をデータベース エンジンのインスタンスに配置すると、次のように DAC インスタンスが作成されます。

  • データベース エンジンのインスタンスに設定されている既定のデータベース プロパティを使用してデータベースが作成されます。新しいデータベースに、DAC で定義されたデータベース オブジェクトが作成されます。

  • DAC で定義されたすべてのインスタンスレベルのオブジェクト (ログインなど) が作成されます。

  • DAC インスタンスに関する元の DAC 定義とメタデータが、msdb システム データベース (SQL Azure では master データベース) に格納されます。

DAC インスタンスを配置した後は、それらのオブジェクトを操作したり、その DAC に基づいて作成されたデータベースにデータを追加したりできます。

関連項目

概念

データ層アプリケーション プロジェクトの作成

サーバー選択ポリシーの構成

データ層アプリケーション プロジェクトのビルド

データ層アプリケーション パッケージの配置

データ層アプリケーションのライフサイクル管理