ストアード・プロシージャー

ストアドプロシージャは、データベース情報を照会・操作するSQLの利点と、データ処理、トランザクションロジック、アプリケーションの分岐動作を処理する手続き型プログラミング言語の利点を組み合わせたものです。

たとえば、顧客情報、インベントリー、販売記録を含むデータベースがある場合には、通常、インベントリー内の品目の販売を処理するアプリケーションもあります。 そのアプリケーションは、注文要求を受け取ると、データベースを照会して、インベントリー内でそのタイプの品目がどれだけ利用可能かを判別し、以下のようなアクションを取るように設計されているとします。
  • 利用可能な在庫が注文数より少ない場合、利用可能な数に対して要求を処理し、この買い付けを完了するために在庫注文を増やすように注文管理者に通知します。
  • 利用可能な在庫が注文数より多い場合、注文を処理し、現在の在庫の減少についてデータベースを更新します。
  • 在庫が製造中止の場合、注文要求を保存し、該当品目が今後も入手できないというメッセージを返します。 また、関連品目や代用品目の在庫を照会し、代替品目を報告することもできます。

このようなアプリケーションは、Netezza Performance Serverデータベースにアクセスしてこれらのタスクを実行するサードパーティのビジネス・アプリケーションで管理できますが、Netezza Performance Serverストアド・プロシージャを使用して、このアプリケーションをNetezza Performance Serverデータベースのオブジェクトとしてカプセル化することもできます。 SQL は、ホストのデータベース情報にアクセスおよび更新するための機能を提供し、プロシージャー型言語は、if-then-else 分岐およびアプリケーション処理のロジックを提供します。

アプリケーションはNetezza Performance Server・ホスト上にあるため、アプリケーション・クライアント・システムとNetezza Performance Server・ホスト間のネットワーク時間を回避することで、アプリケーションのパフォーマンスは「オンサイト」の位置から恩恵を受けることができます。 アプリケーション自体も保守しやすくなります。アプリケーションは1カ所(Netezza Performance Server)にしかないため、バージョン管理とアップデートは1カ所で行うだけで、すべてのユーザーのアプリケーションを最新の状態に保つことができます。

Netezza Performance Serverストアドプロシージャを使用すると、セキュリティとアクセスの利点も利用できます。 ストアード・プロシージャーは、プロシージャーを作成したユーザーの資格情報またはプロシージャーを実行するユーザーの資格情報に従って実行するように定義することができます。 プロシージャーは、さまざまな基本表およびビューに含まれる情報のアクセスを管理します。 基本となる表またはビューへの明示的なアクセス権をユーザーに与えることなく、ストアード・プロシージャーを実行する権限をユーザーに付与することができます。