検索
連載

Oracleにも“SQL CLR”と同じ開発生産性を!.NETでOracleアプリを作ろう(4)(1/4 ページ)

本記事では、Oracleが提供する.NETプラットフォーム開発向けのミドルウェアやツールを使って、.NET環境でOracleアプリケーション開発を効率的に行うためのノウハウを解説する。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 Oracle Database 10g Release 2では、データベースのストアド・プロシージャ/ファンクション(以下、ストアド・プロシージャ)を.NET準拠言語であるVB.NETやC#で作成できるようになりました。これらの.NET準拠言語で作成されたストアド・プロシージャを「.NETストアド・プロシージャ」と呼びます。そして、これを実現するのがOracle Database Extensions for .NET(以下、ODE.NET)です。SQL Server 2005では、SQL CLRという機能が追加されていますが、これと同等の機能になります。

.NETストアド・プロシージャのメリット

 .NETストアド・プロシージャの開発は当然Visual Studio .NET(以下、VS.NET)で行いますし、ビルドした.NETアセンブリの配布もVS.NETからシームレスに行うことが可能です(図1)。

図1 .NETアセンブリのデプロイはウィザードに従うだけで可能
図1 .NETアセンブリのデプロイはウィザードに従うだけで可能

 Oracleデータベースのストアド・プロシージャとしては、PL/SQLと呼ばれるOracle独自の開発言語を使用するのが一般的です。PL/SQLはSQLトランザクション処理に特化した開発言語であるため、データアクセスがメインのロジックではPL/SQLで開発されたストアド・プロシージャが適しています。しかし、データ取得後の加工・計算、ローカルファイルの操作などが多い場合、.NETストアド・プロシージャを使用するメリットは十分にありますし、何より使い慣れた.NET準拠言語でストアド・プロシージャを作成できることには大きなメリットがあるといえるでしょう。

メモ:PL/SQLでの開発もVS.NETで行うことが可能です。詳しくは、本連載の第1〜3回をご覧ください。

 .NETストアド・プロシージャに限りませんが、アプリケーションではなく、ストアド・プロシージャとして、ロジックをデータベース・サーバに実装することのメリットは以下のようなものになります。

  • データベース・アプリケーション・ロジックの集中化
  • メンテナンス性の向上
  • セキュリティの強化
  • 特にクライアント/サーバ・アプリケーションにおけるネットワークオーバーヘッドの削減

 すべてのロジックをアプリケーション側で実装するのではなく、データベース・サーバに集約することで、パフォーマンスの向上やセキュリティの強化を図ることが可能となります。さらにODE.NETによって、ストアド・プロシージャの開発は.NET準拠言語で行えます。これによって、アプリケーションの開発とストアド・プロシージャの開発を同じ言語でできるようになり、開発者の作業効率を上げることが可能となりました。

ODE.NETのアーキテクチャ

 ODE.NETは図2のようなアーキテクチャにより動作します。

図2 ODE.NETのアーキテクチャ
図2 ODE.NETのアーキテクチャ

 Oracleデータベースでは以前から、Cなどで作成されたプロシージャを外部プロシージャとしてデータベースから実行することが可能でしたが、Oracle Database 10g Release 2からは、外部プロシージャとして動作するCLRのホスト機能を提供することで.NET準拠言語を使用して作成されたプロシージャの実行を可能としています。

 また、.NET準拠言語以外のCやJavaなどの外部プロシージャでは、データベースにデプロイするために、LIBRARYの作成や呼び出しの窓口となるPL/SQLラッパーを手動で準備する必要がありました。しかし、.NET準拠言語で作成された.NETアセンブリは、VS.NETから簡単にOracleデータベースにデプロイすることが可能であり、それを呼び出すPL/SQLラッパーも自動的に作成されます。

 作成された.NETストアド・プロシージャは、通常のストアド・プロシージャと同様に、SQL文内や、.NETアプリケーションから呼び出すことが可能となります。(次ページへ続く)

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る