SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2005 Team Systemを使ってみよう

Visual Studio 2005 Team Edition for Database Professionalで行うDB開発

Visual Studio 2005 Team Systemを使ってみよう - 第5回


  • X ポスト
  • このエントリーをはてなブックマークに追加

単体テストによるデータベースの検証

 データベースの単体テストは、データベースのストアドプロシージャ、関数、トリガの単体テストを作成および実行する機能です。これは、Visual Studio Team Edition for Software Developers(およびSoftware Testers)が持っているC#やVB.NETで作成したメソッドの単体テストを作成および実行する機能と似たような機能を提供します(VSTDの単体テスト機能については、本シリーズの第3回「単体テストからパフォーマンス分析まで、VSTDでシステム開発を自動化しよう」をご覧ください)。

 通常、ストアドプロシージャなどのテストを行う場合には、VSTDの単体テストのような機能を利用して、コネクションを設定し、ストアドプロシージャを実行し、結果を検証する単体テストメソッドをC#などで作成して実行しますが、VSDPの単体テスト機能を利用することでこの手間を軽減することができます。実際に、AdventureWorksデータベースに含まれるストアドプロシージャに対してデータベース単体テストを生成した画面が次の図8です。

図8 データベース単体テストの作成
図8 データベース単体テストの作成

 図8のようにストアドプロシージャなどを実行するためのSQL文、およびその実行結果を確認するための条件を設定した単体テストが作成されます。この単体テストもVisual Studioのテストプロジェクトの1つとして作成されるため、通常の単体テスト同様に、テストビューやテストマネージャを利用してテストの管理を行ったり、実行したりといったことが可能です(図9)。

図9 データベース単体テストの管理と実行
図9 データベース単体テストの管理と実行

 図9は実際にテストビューやテストマネージャにデータベース単体テストが表示され、さらに実行するとVSTDの単体テスト同様にテスト結果ウィンドウにテスト中やテスト後の状態が表示されていることを示しています。

データベースのリファクタリング

 Visual StudioでC#を使用している場合、さまざまなリファクタリング機能がサポートされています。Visual Basicの場合でも名前の変更がサポートされています。データベースのリファクタリングは、データベース内のさまざまなオブジェクトに対して、Visual Basicにあるような名前の変更リファクタリングを行う機能です。実際にあるテーブルの列を選択し、名前の変更を実施して、変更前プレビューを確認すると次の図10のようになります。

図10 データベースリファクタリングのプレビュー
図10 データベースリファクタリングのプレビュー

 図10のように名前の変更を行おうとした際に、同一データベースプロジェクト内に含まれるストアドプロシージャやリレーションがあるテーブルの影響する場所を確認しながら、すべてに変更を適用することができます。従来はデータベースの名前変更はほとんどが手作業などにより行われていましたが、この機能によって大きく効率をあげることができると思います。

 しかし、このリファクタリング機能はソリューション内にあるアプリケーション開発用プロジェクトなどとは関連付けることができないため、アプリケーション内に直接埋め込まれたSQL文などは依然として検索と置換などによって修正する必要があります。このため、VSDPを利用してデータベースに関するものを効率よく管理、開発するためには、アプリケーションにSQLを埋め込むよりもストアドプロシージャを利用した方が、より効果的であるとも言えます。

まとめ

 今回はVSDPがもつデータベース開発のためのさまざまな機能についてみてきました。これらの機能について簡単にポイントをまとめておきます。

  • データベースの作成と編集
    • データベーススキーマを新規に作成することも既存のデータベースからインポートして生成することもできる
    • 標準ではSQL Server 2000およびSQL Server 2005にしか対応しない
    • 作成したスキーマはSQL Serverに配置できる
  • データジェネレータによるデータの生成
    • スキーマに合わせてデータを生成できる
    • 正規表現ジェネレータでデータをある程度制限可能
    • 業務上整合性をもったデータはデータバインドジェネレータで生成可能
  • データベースの比較
    • データベーススキーマの比較とデータそのものの比較が可能
    • 比較結果からターゲットを更新することが可能
  • 単体テストによるデータベースの検証
    • ストアドプロシージャ、関数、トリガの単体テストを作成、実行可能
    • 作成したテストは、テストビュー、テストマネージャで管理可能
  • データベースのリファクタリング
    • 名前の変更のみをサポート
    • データベースプロジェクト内の依存関係のみを修正可能

 VSDPは、さまざまな機能が既存のデータベースありきの方が利用しやすかったり、そうでなければ機能そのものの利用価値がなかったりするケースがあり、運用データベースの変更に焦点を当てて語られることが多い製品です。しかし、データベースの開発は開発プロジェクトの初期の段階から始まり、運用後も変更や修正が発生するものだと思います(本来はあまりよくありませんが)。VSDPを利用することで開発の初期から継続的に変更を追跡できるため、むしろそのような利用の方がよいのではないかと思います。

 また、データベーススキーマとデータ生成計画を使うことで、個々の開発者が単体テストを行う際に、全員が簡単に自分の端末などの閉じた世界で、同じスキーマとデータのデータベースを利用してテストを行うといった利用方法も考えられます。更に、データベーススキーマの構成管理やデータベースの単体テストを次の回で紹介するVisual Studio 2005 Team Foundation Serverと組み合わせることで変更の追跡やストアドプロシージャのバグトラッキングなどを行うこともできるようになります。このように、VSTSの枠組みの中でVSDPを利用することでさまざまなことが行えると思います。今回は、VSDPが持つデータベース開発のための機能の概要を紹介しましたが、これらが導入のための検討材料になればと思います。

 次回は、VSTSのサーバ製品であるVisual Studio 2005 Team Foundation Serverについて、構成管理やビルド、作業項目管理などの機能を紹介します。

参考資料

  1. Visual Studio 2005 Team System ホームページ
  2. MSDN Library - Visual Studio Team Systemドキュメント

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2005 Team Systemを使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1724 2008/09/04 12:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング