チュートリアル : データ生成計画の作成と実行
このチュートリアルでは、データ生成計画を作成および実行し、ランダムに生成されたデータをテスト データベースに入力します。 最初にデータベース プロジェクトを作成し、隔離されたテスト データベースにそれを配置します。 隔離されたデータベースを使用すると、実行用のデータやデータベースに影響を与えずにデータ生成をテストできます。
前提条件
このチュートリアルを実行するための要件は次のとおりです。
Visual Studio Team System Database Edition
SQL Server 2005 または SQL Server 2000
Northwind データベースがインストールされたデータベース サーバーへのアクセス権
データベース プロジェクトの作成
最初に、データベース プロジェクトを作成し、Northwind データベースからスキーマをインポートします。
メモ : |
---|
チーム環境では、データベース プロジェクトの作業を行うために、ソース コード管理システムから既存のプロジェクトをチェックアウトできます。 詳細については、「チーム データベース開発の開始」を参照してください。 |
データベース プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[プロジェクトの種類] ボックスの一覧の [データベース プロジェクト] ノードを展開し、[SQL Server 2005] または [SQL Server 2000] をクリックします。
[テンプレート] ボックスの一覧の [SQL Server 2005 データベース プロジェクト] または [SQL Server 2000 データベース プロジェクト] をクリックします。
[名前] ボックスに「WalkthroughDataGenerator」と入力し、[OK] をクリックします。
空の WalkthroughDataGenerator プロジェクトを含むソリューションが作成されます。 これは自分用のデータベース プロジェクトです。 このデータベース プロジェクトの作業中に、他のユーザーがこのデータベース プロジェクトにアクセスすることはできません。
ソリューション エクスプローラまたはスキーマ ビューで、[WalkthroughDataGenerator] をクリックします。
[プロジェクト] メニューの [データベースのオブジェクトと設定のインポート] をクリックします。
メモ : [WalkthroughDataGenerator] を右クリックし、ソリューション エクスプローラまたはスキーマ ビューで [データベースのオブジェクトと設定のインポート] をクリックすることもできます。
[データベースのインポート ウィザード] ダイアログ ボックスが表示されます。
[ソース データベース接続] ボックスの一覧で、既存の Northwind データベースに対応する接続をクリックします。
重要 : データベースに接続していない場合は、最初に [新しい接続] をクリックしてデータベースへの接続を作成する必要があります。 詳細については、「方法 : データベース接続を作成する」を参照してください。
[開始] をクリックします。
スキーマがインポートされると、データベースのオブジェクトに対応するプロジェクト項目がソリューション エクスプローラおよびスキーマ ビューに表示されます。
メモ : スキーマをインポートするためにデータベースに接続していても、この時点では接続が切断され、オフラインでの作業になります。
スキーマがインポートされたら、[完了] をクリックします。
サンドボックスへの配置
次に、プロジェクトを新しいデータベースに配置します。 これにより、Northwind スキーマは持つがデータを持たないデータベースが作成されます。 このデータベースは隔離された環境 (サンドボックス) であり、このデータベース内でデータベースの開発およびテストを行うことができます。
データベース プロジェクトをビルドするには
ソリューション エクスプローラで、WalkthroughDataGenerator データベース プロジェクトをクリックします。
[プロジェクト] メニューの [WalkthroughDataGenerator のプロパティ] をクリックします。
プロジェクトのプロパティが表示されます。
[配置] タブをクリックします。
[配置動作] ボックスの一覧の [配置スクリプト (sql) を作成してデータベースに配置します] をクリックします。
[ターゲット データベースの設定] の [編集] をクリックして [接続のプロパティ] ダイアログ ボックスを表示します。
作業するデータベースの接続プロパティを設定し、[OK] をクリックします。
[ターゲット接続] ボックスに正しい接続文字列が入力されます。
注意 : 新しいデータベースは、テスト サーバー、開発サーバー、またはローカル コンピュータに作成する必要があります。 運用サーバーは使用しないでください。
[ターゲット データベース名] ボックスに「NorthwindDataGenerator」と入力します。
[ファイル] メニューの [すべてを保存] をクリックします。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
先ほど設定したプロジェクト プロパティに基づいて、配置スクリプトがビルドされます。 ビルドの状態が [出力] ウィンドウに表示され、最後の行に "ビルド: 1 正常終了または最新の状態" と表示されます。
データベース プロジェクトを配置するには
ソリューション エクスプローラで、WalkthroughDataGenerator データベース プロジェクトをクリックします。
[ビルド] メニューの [ProjectName の配置] をクリックします。 ソリューション エクスプローラでプロジェクトを右クリックし、[配置] をクリックすることもできます。
注意 : この配置は、テスト サーバー、開発サーバー、またはローカル コンピュータに対して実行する必要があります。 運用サーバーは使用しないでください。
データベース プロジェクトが新しいデータベースに配置されます。 配置の状態が [出力] ウィンドウに表示され、最後の行に "配置に成功しました" と表示されます。
データ生成計画の作成
次に、データ生成計画を作成します。 データ生成計画には、データ入力先のテーブルと列に関する情報が含まれています。 詳細については、「方法 : データ生成計画を作成する」を参照してください。
データ生成計画を作成するには
ソリューション エクスプローラで、[Data Generation Plans] ノードを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
カテゴリ ペインで、[データ生成計画] をクリックします。
テンプレート ペインで、[データ生成計画] をクリックします。
[名前] ボックスに「Products.dgen」と入力します。
[追加] をクリックします。
データ生成計画が作成されます。 データ生成計画および [データ生成プレビュー] ウィンドウが表示されます。 データ生成計画ウィンドウは水平に 2 つのペインに分割されています。 上部のペインには、データベース プロジェクト スキーマで定義されたテーブルが示されます。 下部のペインには、上部のペインで強調表示されているテーブルの列の詳細が表示されます。
メモ : [データ生成プレビュー] ウィンドウが開いていない場合は、[データ] メニューの [データ生成] をポイントし、ウィンドウ名をクリックして開くことができます。 既定では、[データ生成プレビュー] ウィンドウは、データ生成計画ウィンドウの下部にタブ付きでドッキングされます。 ビューを展開するには、ウィンドウをクリックし、[ウィンドウ] メニューの [タブ付きドキュメント] をクリックします。 タイトル バーを右クリックし、[タブ付きドキュメント] をクリックする方法もあります。
Products.dgen デザイナで、すべてのテーブルのチェック ボックスをオフにします。
メモ : [データ生成にすべてのテーブルを含める] コマンドおよび [データ生成からすべてのテーブルを除外] コマンドを使用して、すべてのテーブルのチェック ボックスをオンまたはオフにできます。 データ生成計画ウィンドウの任意の行を右クリックするか、[データ] メニューの [データ ジェネレータ] をポイントすると、これらのコマンドにアクセスできます。
Products.dgen デザイナで、Products テーブルのチェック ボックスをオンにします。
Categories テーブルと Suppliers テーブルのチェック ボックスも自動的に選択されます。 Products テーブルには Categories テーブルおよび Suppliers テーブルへの外部キーが含まれているため、Products テーブルにデータを入力するには他の 2 つのテーブルにデータを入力する必要があります。 詳細については、「方法 : データ生成用のテーブルを指定する」を参照してください。
[ファイル] メニューの [すべてを保存] をクリックします。
データ生成の詳細の指定
次に、列へのデータ入力方法の詳細を指定します。 詳細については、「列のデータ生成の詳細の指定」を参照してください。
データ生成の詳細を指定するには
次の手順を実行して、生成するデータの行数を設定します。
Products.dgen デザイナで、Products テーブルの行をクリックします。
[関連テーブル] 列をクリックし、ドロップダウン矢印をクリックして、Categories テーブルを選択します。
[関連テーブルに対する比率] 列をクリックし、「10:1」と入力します。
これは、生成される 1 つのカテゴリごとに 10 個の製品を生成することを意味します。 詳細については、「方法 : 生成する行数を指定する」を参照してください。
次の手順を実行して、生成するデータの NULL 行の数を設定します。
Products.dgen デザイナで、Categories テーブルの行をクリックします。
列の詳細ペインの [説明] 列の行をクリックします。
[プロパティ] ウィンドウで、"NULL の割合" プロパティを 10 に設定します。
これは、[説明] 列に生成されるデータの 10% に NULL が含まれることを意味します。 [データ生成プレビュー] ウィンドウを開くと、[説明] 列にいくつかの null 値が含まれていることを確認できます。
次の手順を実行して、生成されるデータのテキストを設定します。
Products.dgen デザイナで、Products テーブルの行をクリックします。
列の詳細ペインの [ProductName] 列の行をクリックします。
[ジェネレータ] 列をクリックし、ドロップダウン矢印をクリックして、正規表現データ ジェネレータを指定します。
[プロパティ] ウィンドウで、"式" プロパティを次のように設定します。
(Gala|Fuji|Braeburn|Granny Smith|Red Delicious) Apples
これは、[ProductName] 列に生成されるデータにりんごの種類名だけが含まれることを意味します。 [データ生成プレビュー] ウィンドウを開くと、[ProductName] 列にランダムに生成されたりんごの名前が含まれていることを確認できます。 詳細については、「正規表現ジェネレータ」を参照してください。
[ファイル] メニューの [すべてを保存] をクリックします。
データ生成計画の実行
最後に、データ生成計画を実行します。 データの生成後に、別のツールを使用してデータベースにログオンし、新しいデータを確認できます。
データ生成計画を実行するには
ソリューション エクスプローラで Products.dgen をクリックします。
メモ : また、データ生成計画も開いている必要があります。 計画が開いていない場合は、最初に開いてください。
[データ] メニューの [データ ジェネレータ] をポイントし、[データの生成] をクリックします。
[データベースへの接続] ダイアログ ボックスが表示されます。
[データ生成接続情報] ボックスの一覧で、NorthwindDataGenerator データベースをクリックし、[OK] をクリックします。
新しい行を挿入する前にテーブルの内容を消去するかどうか確認するメッセージが表示された場合、[はい] をクリックします。
データが生成されます。 [作成] ウィンドウの状態列で、データ生成の状態が更新されます。 ステータス バーには、全テーブルのデータ生成の概要が表示されます。
(省略可能) 別のツールを使用して、データベースにログオンします。 この手順では、Database Edition に用意されている Transact-SQL (T-SQL) エディタを使用することもできます。 詳細については、「Transact-SQL エディタを使用したデータベース スクリプトおよびオブジェクトの編集」を参照してください。 次のクエリを実行して、新しいデータを表示します。
use NorthwindDataGenerator select * from Suppliers select * from Categories select * from Products
Products テーブルに対し、Categories テーブルの 10 倍の行が生成されたことを確認します。 Categories テーブルの [説明] 列に NULL 値が含まれていることを確認します。 Products テーブルの [ProductName] 列に "<type> Apples" という形式のデータだけが含まれていることを確認します。 種類が正規表現ジェネレータの式プロパティで指定した種類であることを確認します。
参照
概念
データ ジェネレータを使用してデータベースのテスト データを生成する
カスタム データ ジェネレータで独自のテスト データを生成する