▼SQL Server 2005は,.NET Frameworkを統合した開発環境を備える。.NET Frameworkの開発ノウハウによってSQL Server 2005のストアド・プロシージャやトリガーなどのオブジェクトを開発できるようになる。
▼.NET Frameworkとの統合による最大のメリットは,SQL Server 2005アプリケーションの開発がクライアントからサーバーまで一貫した方法で可能になる点だ。安全性や処理速度の向上も期待できる。
最終回は,開発環境に焦点を当てよう。SQL Server 2005では,新しいアプローチとして,.NET Framework*を統合するという選択肢を採用した。これにより開発者は,.NET Frameworkのノウハウを使ってSQL Server 2005のアプリケーションを開発できる。SQL Server 2005と同時期に出荷される開発ツールの新版Visual Studio 2005と組み合わせると,生産性が最大化する。
プログラミング・モデルが一貫
.NET Frameworkとの統合による最大のメリットは,SQL Server 2005用アプリケーションの開発に一貫性が増すことである(図1[拡大表示])。これまでSQL Serverのアプリケーションを開発するには,2つの手段を併せて使う必要があった。1つはストアド・プロシージャ*やトリガーなどに使うTransact-SQL(T-SQL)。もう1つはユーザー・インターフェースとなるWindowsアプリケーションやWebアプリケーションの開発に使うVisual Studioだ。
SQL Server 2005では.NET Frameworkとの統合で,データベース上のプログラムであるストアド・プロシージャ,トリガー,ユーザー定義関数,ユーザー定義型などを.NET Frameworkでサポートされている言語(Visual Basic .NET,Visual C#など)でも開発できるようになる。
クライアントからサーバーまで一貫したプログラミング・モデルで作業を進められるメリットは大きい。複数の異なる知識ではなく,得意とする言語を活用できることで,開発生産性の向上を図れる。
さらに,Visual Basic .NETやC#などの開発言語を活用すると,ストアド・プロシージャなどでも,より複雑なロジックや,より計算タスクに適したコードを記述しやすくなる。Visual Basic .NETやC#には,カプセル化,継承,ポリモーフィズムなど,オブジェクト指向*の機能も用意されており,関連するコードにおけるクラスや名前空間を容易に体系化できる。大規模なアプリケーションでは,大量のコードを作成するが,コード資産をより簡単に体系化・管理可能にすることで,汎用性が高まるはずだ。プロジェクト管理もより効率的になる。
統合によって得られるものは多い
SQL Server 2005における.NET Frameworkとの統合は,正確には「SQL Server 2005に共通言語ランタイム(CLR)が統合されている」という構成である(図2[拡大表示])。そのため,この機能を「SQL CLR」と呼ぶことがある。このように統合すると,CLRの特徴を最大限に生かせる。利点は以下のようなものである。
・セキュリティの強化SQL Server 2005のストアド・プロシージャやトリガーがマネージ・コードとして実装され,CLR環境で実行できるため,これまでのバージョンのSQL Serverで使用できた拡張ストアド・プロシージャなどに比べて安全性が高まる。これは,.NET Framework上のアプリケーションが持つメリットと同等である。
・プログラミング・モデルの強化
.NET Frameworkが提供するクラス・ライブラリを利用できるため,T-SQLで実装していたものと比較して機能が豊富になる。つまりサーバー・オブジェクト内で実現可能な要素が増える。前述のように,このときクライアント側のプログラミングと同じ知識を活用可能だ。
・ユーザー定義型と集計が利用可能
SQL Serverのストレージ機能とクエリー機能を拡張する「ユーザー定義型」と「集計」という2つのデータベース・オブジェクトの構築が可能になる。
・性能とスケーラビリティの向上
すべてのケースには当てはまらないが,.NETのマネージ・コードは,実行前にネイティブ・コードにコンパイルされて動作するので,性能やスケーラビリティが向上する。
・統合開発環境の利用
ストアド・プロシージャやトリガーの開発にもVisual Studio 2005の統合開発環境を利用できる。データベース・オブジェクトの開発からスクリプトの開発・デバッグなどまでが,中間層のプログラムやクライアント・アプリケーションと同じようにシームレスに作業できる。
マネージ・コードは,大量の計算や複雑な実行ロジックの管理を,T-SQLよりもはるかに効果的に処理できるというのも利点だ。.NET Frameworkのクラス・ライブラリに用意されている文字列処理や正規表現などの機能を使うと,これまで以上に開発が容易になる。
さらに,マネージ・コードの利点の1つに,タイプ・セーフティがある。これはマネージ・コードを実行する前に,コードを安全に実行できることがCLRによって確認される仕組みである。例えば,書き込まれていないメモリーが読み取られないことが保証される。
VSと組み合わせれば利用は簡単
では,ここまで紹介してきたSQL CLRを実際に利用していくことにしよう。
必要なものは,SQL Server 2005と統合開発環境であるVisual Studio 2005である。ここでは,Visual Studio 2005 Beta 2日本語版とSQL Server 2005 June Community Technology Previewを使用した。
最初に,SQL CLRを有効化する。最近のマイクロソフト製品には,Secure by Defaultの概念が導入されている。あらかじめツールで設定しなければ利用できない。
SQL Server 2005の管理ツールには[Configuration Tool]というメニュー・グループがある。この中の[SQL Server Surface Area Configuration]を選択してツールを起動しよう(図3[拡大表示]a)。
ツールが起動したら[Surface Area Configuration for Features]というメニューを選択する。すると,指定されたサーバー内の様々な機能の有効化/無効化を設定できる。今回利用するSQL CLRの機能は,[Database Engine]ツリーの中にある[CLR Integration]にある。チェック・ボックスをチェックすることで,SQL CLRの機能が有効化される(図3b)。
SQL Serverプロジェクトを選択
いよいよ実際の開発作業を体験してみる。Visual Studio 2005のセットアップが完了したら,統合開発環境(IDE)を起動しよう。[ファイル]メニューから[新規作成]−[プロジェクト]を選択する(図4[拡大表示]a)。このダイアログ・ボックスの内容は,Visual Studio 2005の環境設定によって多少異なるので注意してほしい。
今回は開発言語に,Visual Basic .NETを選び,[プロジェクトの種類]というツリーから[SQL Serverプロジェクト]を選択した(図4b)。プロジェクト名などは任意に入力する。
プロジェクトの新規作成を開始すると,まずデータベースへの接続情報の入力が求められる(図4c)。ここでは,ローカル・マシンのSQL Server 2005上の「pubs」データベースを指定している。次に,作成されるプログラムのデバッグを有効にするか/しないかを選ぶ画面が出る(図4d)。ここでは[Yes]を選択した。
西谷 亮
マイクロソフト |