「ストアドプロシージャ」と「ストアドプログラム」の違い

ストアドプロシージャは処理手順を指し、ストアドプログラムは手順を含むプログラム全般を指す包括的な用語です。

ストアドプロシージャ

ストアドプロシージャは、データベースサーバーに保存された処理手順です。SQLステートメントと制御文を組み合わせ、一連の操作を定義します。実行されるたびにネットワーク通信を削減でき、パフォーマンスと保守性が向上します。

例:ユーザー登録処理をストアドプロシージャで実装し、CALL登録処理で実行する。

ストアドプログラム

ストアドプログラムは、データベースに保存されるプログラムコード全般の総称です。ストアドプロシージャ、ストアドファンクション、トリガーなどを含む概念です。処理ロジックをサーバー側で実行する仕組みを指します。

例:データベースのストアドプログラムには、プロシージャとファンクションが含まれている。

両者の違い

ストアドプロシージャは特定の処理手順を指す具体的な実装形態であり、決まった操作フローを実行します。一方、ストアドプログラムはそれより広い概念で、プロシージャのほか関数やトリガーなど、サーバーに保存されるすべてのプログラムを含みます。技術文書ではプロシージャを指して「プログラム」と呼ぶこともあり、実務ではほぼ同義で使われることが多いです。

どちらを使うべき?判断のポイント

一般的には「ストアドプロシージャ」を使うほうが正確です。広い意味で手順を含むプログラム全般を指す場合のみ「ストアドプログラム」を使用します。迷ったら、より限定的で一般的なプロシージャの用語を選びましょう。

それぞれの語をさらに詳しく

語彙の星図で「ストアドプロシージャ」と「ストアドプログラム」のつながりを探索する →