ICDロゴ

ストアド・プロシージャ (stored procedure)

最終更新日: 2004/01/26

 リレーショナル データベース システム(RDBMS)を使用したクライアント サーバ システムにおいて、データベースに対する検索や更新処理など、一連の手続きをプログラムとして記述し、1回の処理でそれら複数の手続きを実行可能にするためのしくみ。またはこのしくみに従って記述され、サーバ側に格納されているプログラム コード。

 原始的なクライアント サーバ システムでは、データの検索や更新など、クライアント側からサーバ側に対し、データベースの処理を逐次送信して実行していた。たとえば、レコードの検索要求を出して、結果のレコードを受け取り、データを変更して、今度はレコードの更新要求を出して1レコードの処理を完了する。そしてこの操作を必要なすべてのレコードに対して繰り返す。一般的なデータベース処理では、このように目的のレコードを検索して、その内容を更新するなど、決まりきった一連の手続きが実行されることが多い。このため、典型的な一連のデータベース処理をストアード プロシージャとしてサーバ側で記述・格納しておき、クライアント側からは、それらのプログラムを実行するだけで、一連の手続きを実行できるようにした。これにより、クライアント−サーバ間のネットワーク トラフィックが減少し、ネットワークにかかる負荷が軽減されると同時に、処理も高速になる。また、データベース自身と、一連の手続きがサーバ側だけで完結しているので、データベースやプログラムのメンテナンスが比較的容易という長所もある(ストアード プロシージャを使用しない方式では、データベースの構成が変わったときには、全クライアントの問い合わせプログラムを更新しなければならない)。

 伝統的なストアード プロシージャでは、SQLで記述した一連のデータベース処理をコンパイルし、サーバ側に保存しておく。ただし、ストアード プロシージャの具体的な記述方法などは、データベース製品によってまちまちで、データベース ソフトウェアを変更するときには、それに合わせてストアード プロシージャも変更しなければならない(ストアード プロシージャは、特定のデータベース製品に依存している)。これに対し最近では、汎用性の高いJava言語などを利用可能にし、こうした問題を解消しようとするデータベース製品もある。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ